Docker入门学习⑤----DockerFile构建镜像、发布镜像
程序员文章站
2022-03-29 22:48:29
...
⭐Docker File
dockerfile是用来构建docker镜像的文件。
构建步骤:
1.编写一个dockerfile文件
2.docker build构建成为一个镜像
3.docker run 运行镜像
4.docker push发布镜像(DockerHub)
DockerFile的构建过程
基础知识:
1.每个保留关键字(指令)必须是大写字母
2.执行从上到下顺序执行
3.每一个指令都会创建一个镜像层,并提交
Dockerfile是面向开发的。以后发布项目,做镜像,就需要编写dockerfile文件。Docker镜像逐渐成为企业交付的标准。
DockerFile指令
FROM # 基础镜像,一切从这里开始
MAINTAINER # 镜像是谁写的,姓名+邮箱
RUN # 镜像构建的时候需要运行的命令
ADD # 添加内容
WORKDIR # 设置当前工作目录
VOLUME # 挂在卷,挂载主机目录
EXPOSE # 暴露对外端口
CMD # 指定容器启动的时候要运行的命令,只有最后一个会生效,可被替代
ENTRYPOINT # 指定容器启动的时候要运行的命令,可以追加命令
ONBUILD # 当构建一个被继承DockerFile这个时候就会运行ONBUILD的指令
COPY # 类似ADD,将我们文件拷贝到镜像中
ENV # 构建的时候构建设置环境变量
实战测试
DockerHub中的镜像创建基本都是从基础镜像scratch过来的。
# 创建一个自己的centos镜像
# 1.编写dockerfile文件
[aaa@qq.com dockerfile]# vim mydockerfile-centos
[aaa@qq.com dockerfile]# cat mydockerfile-centos
FROM centos
MAINTAINER chenjiahe<aaa@qq.com>
ENV MYPATH /usr/local
WORKDIR $MYPATH
RUN yum -y intsall vim
RUN yum -y install net-tools
EXPOSE 80
CMD echo $MYPATH
CMD echo "构建完毕end"
CMD /bin/bash
# 2.通过文件构建镜像
# -f dockerfile文件 -t 镜像名:[tag]
docker build -f mydockerfile-centos -t mycentos .
官方的centos镜像没有vim,ifconfig等等功能,通过上面自己创建镜像增加了这些命令。
DockerFile制作tomcat镜像
1.准备镜像文件 tomcat压缩包 jdk压缩包
2.编写dockerfile文件,官方命名Dockerfile,build会自动寻找这个文件,就不需要-f制定了
[aaa@qq.com tomcat]# vim Dockerfile
FROM centos
MAINTAINER chenjiahe<aaa@qq.com>
COPY readme.txt /usr/local/readme.txt
ADD jdk-8u171-linux-x64.tar.gz /usr/local
ADD apache-tomcat-9.0.39.tar.gz /usr/local
RUN yum -y install vim
ENV MYPATH /usr/local
WORKDIR $MYPATH
ENV JAVA_HOME /usr/local/jdk1.8.0_17
ENV CLASSPATH $JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
ENV CATALINA_HOME /usr/local/apache-tomcat-9.0.39
ENV CATALINA_BASH /usr/local/apache-tomcat-9.0.39
ENV PATH $PATH:$JAVA_HOME/bin:$CATALINA_HOME/lib:$CATALINA_HOME/bin
EXPOSE 8080
CMD /usr/local/apache-tomcat-9.0.39/bin/startup.sh && tail -F /usr/local/apache-tomcat-9.0.39/b
in/logs/catalina.out
3.构建镜像
# 由于官方名字就是Dockerfile所以不用-f
docker build -t diytomcat .
发布自己的镜像
1.将镜像发布到DockerHub
需要注册自己的账号
# 1.登录
docker login -u 用户名
# 2.提交镜像
docker push 账号名/镜像名:[tag]
小结
这两张图基本包含了Docker的常用操作。