Dockerfile
Dockerfile介绍
Dockerfile:就是用来构建docker构建的文件,
通过这个脚本可以生成镜像,镜像是一层一层的,脚本是一个一个的命令,每个命令都是一层!
测试
1.创建一个dockerfile文件,名字可以随机,建议用dockerfile
2.然后写脚本,命令(大写) 参数
form centos volume["volume01","volume02"] CMD echo"----end----" CMD /bin/bash
3.启动脚本生成镜像
docker build -f dockerfile -t hj/centos .
4.启动一下自己写的容器
docker run -it hj/centos:1.0 /bin/bash
这两个就是代码中挂载的数据卷
5.查看容器信息
docker inspect 37452aac4ed1
实现容器之间的数据共享
1.先创建一个容器
docker run -it --name hj01 6cb756fe2d19
2.创建另一个容器
docker run -it --name hj02 --volumes-from hj01 6cb756fe2d19
--volumes-from 就相当于java中的子继承父
删除其中一个容器,另外容器中的文件还是存在的。
二、Dockerfile常用的指令
(1)FROM 指定基础镜像
(2)MAINTAINER 指定镜像的维护者信息,一般为邮箱
(3)RUN 镜像构建时需要执行的命令
(4)ADD 增加文件,会自动解压
(5)WORKDIR 设置当前工作目录
(6)VOLUME 挂载主机目录
(7)EXPOSE 暴露端口,注意这里指仅暴露容器的端口,并不会将容器端口与宿主机端口映射。也就是说在使用docker run的时候仍然需要继续使用-p进行端口映射,换言之,EXPOSE更多的作用在于给Dockerfile开发者提供开发端口的提示提示作用
(8)CMD 指定容器启动的时候需要执行的命令,注意CMD只有最后一个命令会生效
(9)ENTRYPOINT 指定容器启动时需要运行的命令,注意ENTRYPOINT命令可以追加命令,即如果有多条ENTRYPOINT命令会全部执行,这是ENTRYPOINT命令和CMD命令最大的区别
(10)ONBUILD 当构建一个被继承Dockerfile,这个时候就会运行ONBUILD指令
(11)COPY 类似ADD命令,将文件拷贝到镜像中
(12)ENV 构建的时候设置环境变量
实战测试