文章目录
- dockerfile构建过程
- 基础知识
- dockerfile 的指令
- 简单的dockerfile实验
- docker history
- CMD 和 ENTRYPOUNT的区别
- 举例:tomcat镜像
dockerfile构建过程
- 编写一个dockerfile文件
- docker build 构建成为一个镜像
- docker run 运行镜像
- docker push 发布镜像(DockerHub,阿里云镜像仓库!)
基础知识
- 每个保留关键字(指令)都是大写字母
- 执行的指令都是从上到下顺序执行
- #表示注释
- 每一个指令都是
dockerfile是面向开发的,我们以后要发布项目,做镜像,就需要编写dockerfile文件,这个文件十分简单!
docker镜像逐渐成为企业交付的标准,必须要掌握
步骤:开发,部署,上线运维
dockerfile:构建文件,定义了一切的步骤,源代码
dockerImages:通过dockerfile构建生成的镜像,最终发布和运行的产品。
docker容器:容器就是镜像运行起来提供服务
dockerfile 的指令
FROM
Maintainer
RUN
ADD
WORKDIR
VOLUME
EXPOSE
CMD
ENTRYPOINT
ONBUILD
COPY
ENV
简单的dockerfile实验
先写dockerfile文件
vim dockerfile
FROM centos:centos7.9.2009
MAINTAINER zhangyu<382108113@qq.com>
ENV MYPATH=/usr/local
WORKDIR $MYPATH
RUN yum -y install vim net-tools
EXPOSE 80
CMD echo $MYPATH
CMD echo "---end---"
CMD /bin/bash
在通过docker build 构建镜像
docker build -f dockerfile -t zhangyu:1.0 .
docker history
通过docker history可以回溯镜像的历史进程
docker history zhangyu:1.0
IMAGE CREATED CREATED BY SIZE COMMENT
8f8bc341af5a 23 minutes ago /bin/sh -c
f1a7a8bb5fca 23 minutes ago /bin/sh -c
02a932aaf6d3 23 minutes ago /bin/sh -c
bedc6a7febcd 23 minutes ago /bin/sh -c
fad4270f24e2 24 minutes ago /bin/sh -c yum -y install vim net-tools 222MB
4736a85480a5 25 minutes ago /bin/sh -c
7b18934ac163 25 minutes ago /bin/sh -c
13799dac25f0 25 minutes ago /bin/sh -c
eeb6ee3f44bd 7 months ago /bin/sh -c
<missing> 7 months ago /bin/sh -c
<missing> 7 months ago /bin/sh -c
CMD 和 ENTRYPOUNT的区别
CMD
ENTRYPOINT
CMD ["ls","-a"]
ENTRYPOINT["ls","-a"]
CMD测试
ENTRYPOINT测试
通过结果可以判断,通过entrypoint可以追加命令或者参数,而CMD则是有新的参数会直接覆盖原有参数
举例:tomcat镜像
-
准备镜像文件 tomcat压缩包,jdk的压缩包
-
编写dockerfile文件
官方命名文件名为Dockerfile
,目录下用此文件名可以不用加-f参数,直接可以指定调用
[root@devops-1 tomcat_dockerfile]
FROM centos:centos7.9.2009
MAINTAINER zhangyu<382108113@qq.com>
COPY README.TXT /usr/local/README.TXT
ADD apache-tomcat-9.0.62.tar.gz /usr/local/
ADD jdk-8u321-linux-x64.tar.gz /usr/local/
RUN yum -y install vim net-tools
ENV MYPATH=/usr/local/
WORKDIR $MYPATH
ENV JAVA_HOME=/usr/local/jdk1.8.0_321
ENV CLASSPATH=$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
ENV CATALINA_HOME=/usr/local/apache-tomcat-9.0.62
ENV CATALINA_BATH=/usr/local/apache-tomcat-9.0.62
ENV PATH=$PATH:$JAVA_HOME/bin:$CATALINA_HOME/lib:$CATALINA_HOME/bin
EXPOSE 8080
CMD /usr/local/apache-tomcat-9.0.62/bin/startup.sh && tail -f /var/log/lastlog
#docker build -t zhangyu . #通过docker build 命令构建镜像
[root@devops-1 tomcat_dockerfile]# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
zhangyu latest a4cdfaf729a7 4 minutes ago 807MB
centos centos7.9.2009 eeb6ee3f44bd 7 months ago 204MB
#运行镜像
[root@devops-1 tomcat_dockerfile]# docker run -d -P zhangyu
#查看镜像
[root@devops-1 tomcat_dockerfile]# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
3f01a38a3d3a zhangyu "/bin/sh -c '/usr/lo…" 3 minutes ago Up 3 minutes 0.0.0.0:49168->8080/tcp, :::49168->8080/tcp cranky_kilby
登录端口,服务正常启动
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)