哈尔滨专业做网站,海口的网站建设公司,学seo优化,传媒公司网站制作#x1f389;#x1f389;欢迎来到我的CSDN主页#xff01;#x1f389;#x1f389; #x1f3c5;我是平顶山大师#xff0c;一个在CSDN分享笔记的博主。#x1f4da;#x1f4da; #x1f31f;推荐给大家我的博客专栏《【Docker】centos中及自定义镜像#xff0c;… 欢迎来到我的CSDN主页 我是平顶山大师一个在CSDN分享笔记的博主。 推荐给大家我的博客专栏《【Docker】centos中及自定义镜像并且上传阿里云仓库可提供使用》 如果感觉还不错的话请给我关注加三连吧 Dockerfile构建镜像 Dockerfile 是一个文本格式的配置文件 用户可以使用 Dockerfile 来快速创建自定义的镜像另外使用Dockerfile去构建镜像好比使用pom去构建maven项目一样有异曲同工之妙 构建基础镜像 特点CentOSAlpine空间大小大约200MB左右大约5MB左右默认软件包bashcoreutils几件套busybox国际化组件支持优化掉了最简依赖不同软件包较完整尽量选择最简依赖glibc差异使用glibc使用musl 一基本结构
Dockerfile 由一行行命令语句组成并且支持以 # 开头的注释行。 一般的Dockerfile 分为四部分基础镜像信息、维护者信息、镜像操作指令和容器启动时执行指令。 指令描述FROM指定基础镜像所有操作都基于这个基础镜像。例如FROM ubuntu:18.04LABEL为镜像添加元数据及声明镜像的作者或者维护者的信息。RUN在镜像中运行命令这些命令会在新的层上创建新的镜像。例如RUN apt-get updateCMD提供容器默认的可执行程序可以包含可执行程序也可以省略如果省略则必须在运行时通过命令行指定。例如CMD [executable,param1,param2]EXPOSE声明运行时容器提供服务的网络端口。例如EXPOSE 8080ENV设置环境变量。例如ENV myNameJohn Doe myDogRex\ The\ DogADD 和 COPY将文件从 Docker 主机复制到 Docker 镜像中。ADD 有自动解压缩功能COPY 则更为直接明了。ENTRYPOINT配置容器启动后执行的命令并且不会被 docker run 提供的参数覆盖。VOLUME创建一个可以从本地主机或其他容器挂载的挂载点一般用来存放数据库和需要保存的数据等。WORKDIR设置工作目录所有后续的操作CMD、ENTRYPOINT、COPY 和 ADD都会在这个目录下进行。USER设置运行容器时的用户名或 UID。ONBUILD当构建一个被继承的 Dockerfile 时运行命令该指令添加到镜像中稍后触发。MAINTAINER用于声明镜像的作者或者维护者的信息它可以为使用者提供一种联系镜像创建者的方式。 二、自定义镜像
1. 基本镜像 进入虚拟机并且用MobaXterm这个工具连接 创建一个文件夹来存放创建后的镜像并且创建并编写 Dockerfile 文件。 进入文件夹cd soft/ 创建并编辑Dockerfile文件vim Dockerfile 文件名称不用改 #1.指定基础镜像并且必须是第一条指令
FROM centos
#2.指明该镜像的作者和其电子邮件
MAINTAINER LYA 3363700952qq.com
#3.在构建镜像时指定镜像的工作目录之后的命令都是基于此工作目录如果不存在则会创建目录
WORKDIR /test
#4.将文件从Docker主机复制到Docker镜像中
COPY spring.jar /test
~命令docker build -t spring:v1 . 查看镜像docker images 进入docker run -it spring:v1 查看容器是否存在 jar包 2. 进阶镜像 以上的镜像是不可以jar包中的项目运行的因为镜像中没有jdk配置。以下配置jdk可以运行jar包项目输入命令编辑Dockerfile文件vim Dockerfile 将原来的编写全部删除。 删除将以下编写的内容粘贴到Dockerfile文件中按Esc退出编辑模式输入 :wq 保存编写内容并且退出文件。 放入jkdjre的压缩。 2.2.1配置jkd镜像 创建镜像docker build -t spring:v2 . 进入容器docker run -it spring:v2 (这里会自动启动jar包) 2.2.2配置jre镜像 输入命令编辑Dockerfile文件vim Dockerfile 将原来的编写全部删除以下内容粘贴到Dockerfile文件中 #1.指定基础镜像并且必须是第一条指令
FROM centos
#2.指明该镜像的作者和其电子邮件
MAINTAINER LYA 3363700952qq.com
#3.在构建镜像时指定镜像的工作目录之后的命令都是基于此工作目录如果不存在则会创建目录
WORKDIR /test
#4.将文件从Docker主机jre包复制到Docker镜像中自动将jdk的压缩包进行解压
COPY spring.jar /test
ADD jre-8u391-linux-x64.tar.gz /test
#5.将jre解压后配置环境变量
ENV JAVA_HOME/test/jre1.8.0_391
ENV CLASSPATH.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
ENV PATH$JAVA_HOME/bin:$PATH
#6.容器启动时需要执行的命令(执行jar包)
CMD java -jar spring.jar 2.2.3减少储存空间 创建镜像docker build -t spring:v3 . 运行docker run -itd spring:v3 2.2.4jeanblanchard/alpine-glibc镜像 需要将储存控制到很少可以使用这个镜像jeanblanchard/alpine-glibc这个镜像所需的储存很少而通过这个镜像自定义出来的镜像也会少很多。 下载这个镜像docker pull jeanblanchard/alpine-glibc #1.指定基础镜像并且必须是第一条指令
FROM jeanblanchard/alpine-glibc
#2.指明该镜像的作者和其电子邮件
MAINTAINER LYA 3363700952qq.com
#3.在构建镜像时指定镜像的工作目录之后的命令都是基于此工作目录如果不存在则会创建目录
WORKDIR /test
#4.将文件从Docker主机jre包复制到Docker镜像中自动将jdk的压缩包进行解压
COPY spring.jar /test
ADD jre-8u391-linux-x64.tar.gz /test
#5.将jre解压后配置环境变量
ENV JAVA_HOME/test/jre1.8.0_391
ENV CLASSPATH.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
ENV PATH$JAVA_HOME/bin:$PATH
#6.容器启动时需要执行的命令(执行jar包)
CMD java -jar spring.jar 创建镜像docker build -t spring:v4 . docker run -itd --name s1 -p 8080:8080 spring:v4 三、镜像上传仓库 首先需要在我们的阿里云账号中开启镜像仓库点击用户左边的控制器点击容器镜像服务ACR点击实例列表在其中点击创建个人版本的企业版要米创建后需要设置密码。 容器镜像服务 (aliyun.com) 之后将以上的登入凭证复制粘贴到虚拟机中执行命令前面的$不用复制进去之后会镜像密码的输入是自己设置的容器镜像服务密码以下说明登入成功 第一个命令为登入第二个命令为绑定阿里云仓库第三个命令为上传推送到仓库 认真写博客的人见一个少一个 点赞支持⭐️ 收藏学习❤️ 关注不迷路~ 如有错漏请不吝指正~