跟着尚硅谷系统学习Docker-【day05】
day05-20200717
p21.docker容器数据卷容器
就是活动硬盘上面挂载硬盘进行数据的传递。
【docker run -it --name dc01 fyr/centos】
【echo '123'>aa.txt】
【docker run -it --name dc02 --volumes-from dc01 fyr/centos】
【echo '123'>bb.txt】
【docker run -it --name dc03 --volumes-from dc01 fyr/centos】
【echo '123'>cc.txt】
dc02继承dc01,dc03继承dc01。
最后查看三个容器,发现数据实现了共享。
现在删除了dc01,dc02和dc03还可以实现数据共享吗?
可以的。
p22.dockerfile解析
dockerfile 是docker镜像得构建文件,是由一系列命令和参数构成的脚本。
构建三步骤:
第一步手动编写dockerfile
第二步文件编写好以后docker build 获得一个自定义得镜像
第三步docker run跑起来
类似于
maven build
jar
java -jar
p23.dockerfile构建过程解析
基础:
1、保留字指令必须是大些,切后面必须更上至少一个参数。
2、从上到下,顺序执行
3、#表示注释
4、每一个指令都会生成一个新的镜像层,并对镜像进行提交。
docker执行dockerfile的大致流程:
1、docker从基础镜像运行一个容器
2、执行一条指令并对容器做出修改
3、执行类似docker commit的操作提交一个新的镜像层
4、docker再基于刚提交的镜像运行一个新容器
5、执行dockerfile中的下一条指定直到所有的指令都执行完成。
从应用软件的角度来看,dockerfile、docker镜像与docker容器分别代表三个不同的阶段,
dockerfile是软件的原材料
docker镜像是软件的交付品
docker容器则可以认为是软件的运行态
dockerfile面向开发,docker镜像成为交付标准,docker容器则涉及部署与运维,三者缺一不可,合理充当docker体系的基石。
p24.dockerfile体系构建
【FROM】
基础镜像,新的镜像是基于哪个基础镜像的。
【MAINTAINER】
镜像维护的姓名和邮箱
【RUN】
构建镜像的过程中执行命令,shell脚本命令
【EXPOSE】
当前容器对外暴漏的端口
【WORKDIR】
指定在创建容器后,终端默认登录的进来工作目录,一个落脚点。
【EVN】
设置环境变量
【ADD】
添加文件或目录,与COPY功能相同,但是ADD强大一点儿,拷贝加上解压缩文件。
【COPY】
添加文件或目录
【VOLUME】
保存数据和数据持久化
【CMD】
指定一个容器启动时要运行的命令,写多个CMD命令,只会执行最后一个命令,前面的会被覆盖。
【ENTRYPOINT】
指定一个容器启动时要运行的命令,多个命令的话是追加,不会被覆盖。
【ONBUILD】
当构建一个被继承的dockerfile时运行命令,父镜像在被子继承后赴京向的onbuild被出发,类似于触发器。