Dockerfile介绍
构建步骤:
1、编写一个dockerfile文件
2、docker build 构建一个镜像
3、docker run 运行一个镜像
4、docker push发布镜像(DockerHub、阿里云镜像仓库)
Dockerfile构建过程
基础知识:
1、每个保留关键字(指令)必须是大写字母
2、执行从上到下
3、#表示注释
4、每一个指令都会创建并提交一个新的镜像层,并提交!
dockerfile是面向开发的,我们以后要发布项目,做镜像,就需要编写dockerfile文件,这个文件十分简单!
Docker镜像逐渐成为企业交付的标准,必须要掌握!
步骤:开发,部署,运维…
Dockerfile:构建文件,定义了一切的步骤,源代码
DockerImages:通过Dockerfile构建生成的镜像,最终发布和运行的产品!
Docker容器:容器就是镜像运行起来提供服务的;
Dockerfile指令:
FROM #基础镜像
MAINTAINER #镜像是谁写的 姓名+邮箱
RUN #镜像构建的时候运行的命令
ADD #步骤,也就是添加的内容
WORKDIR #镜像工作目录
VOLUME #挂载的目录位置
EXPOSE #指定对外窗口
CMD #制定这个容器启动时候要运行的命令,只有最后一个会生效,可被替代
ENTRYPOINT # 制定这个容器启动时候要运行的命令,可以追加命令
ONBUILD #当构建一个被继承的镜像时候,会运行ONBULID指令
COPY #类似ADD,将文件拷贝到镜像中
ENV #构建的时候,设置环境变量
实战测试:
Docker Hub中99的镜像都是从这个基础镜像过来的FROM scratch,然后配置需要的软件;
1、创建一个自己的centos:
FROM centos
MAINTAINER LIUYANG<liuyang@yonyousj.com>
ENV MYPATH /usr/local
WORKDIR $MYPATH
RUN yum -y install vim
RUN yum -y install net-tools
EXPOSE 666
CMD echo $MYPATH
CMD /bin/bash
2、运行docker build
#此处注意:build的文件不要放在根目录
[root@liuyang dockerfile]# docker build -f first_dockerfile -t centos_dockerfile:1.1 .
3、运行自己的镜像,生成容器
[root@liuyang dockerfile]# docker run -it centos_dockerfile:1.2 /bin/bash
[root@5b0c78af5c93 local]# ls
bin etc games include lib lib64 libexec sbin share src
[root@5b0c78af5c93 local]# vim 666.txt
[root@5b0c78af5c93 local]# ls
666.txt bin etc games include lib lib64 libexec sbin share src
[root@5b0c78af5c93 local]# ifconfig
eth0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 172.17.0.12 netmask 255.255.0.0 broadcast 172.17.255.255
ether 02:42:ac:11:00:0c txqueuelen 0 (Ethernet)
RX packets 8 bytes 656 (656.0 B)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 0 bytes 0 (0.0 B)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
lo: flags=73<UP,LOOPBACK,RUNNING> mtu 65536
inet 127.0.0.1 netmask 255.0.0.0
loop txqueuelen 1000 (Local Loopback)
RX packets 0 bytes 0 (0.0 B)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 0 bytes 0 (0.0 B)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
[root@5b0c78af5c93 local]#
4、查看docker history 构建历史
docker history 镜像ID
[root@liuyang dockerfile]# docker history 2900faf7489f
IMAGE CREATED CREATED BY SIZE COMMENT
2900faf7489f 2 minutes ago /bin/sh -c #(nop) CMD ["/bin/sh"] 0B
a48457d6160f 17 minutes ago /bin/sh -c #(nop) EXPOSE 666 0B
4e1527066ca7 17 minutes ago /bin/sh -c yum -y install net-tools 23.3MB
8f39a2e69363 17 minutes ago /bin/sh -c yum -y install vim 58MB
0062e7d22856 18 minutes ago /bin/sh -c #(nop) WORKDIR /usr/local 0B
5a23524d576c 18 minutes ago /bin/sh -c #(nop) ENV MYPATH=/usr/local 0B
61693d326cbc 18 minutes ago /bin/sh -c #(nop) MAINTAINER LIUYANG<liuyan… 0B
300e315adb2f 3 months ago /bin/sh -c #(nop) CMD ["/bin/bash"] 0B
<missing> 3 months ago /bin/sh -c #(nop) LABEL org.label-schema.sc… 0B
<missing> 3 months ago /bin/sh -c #(nop) ADD file:bd7a2aed6ede423b7… 209MB
[root@liuyang dockerfile]#
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)