DockerFile

  1. 必须是大写字母
  2. 从上往下顺序执行
  3. #代表注释
  4. 每一个指令都会提交一层

 

 

#继承自centos镜像
FROM centos
#容器的根目录下创建2个文件夹共享数据,inspect进入容器看挂载的目录映射的宿主机的目录
#这里是匿名挂载,一般在/var/lib/docker/下面找
VOLUME ["/dataVolumeContainer1","/dataVolumeContainer2"]
#输出
CMD echo "finished,---------------success"
#执行
CMD /bin/bash
#构建镜像,注意结尾的点后别忘记
docker build -f /mydocker/Dockerfile -t rt/centos .

#容器与容器间共享
#启动上面的新build的容器
#名字叫d1
docker run -it --name d1 rt/centos
#启动第二个名字叫d2
#--volumes-from代表数据卷来源于d1
#这样容器d1和d2就可以互相同步数据
docker run -it --name d2 --volumes-from d1 rt/centos
#再启动一个d3
#d2和d3都继承自d1,删除d1不会影响d2和d3之间的通讯
docker run -it --name d3 --volumes-from d1 rt/centos

#参数解释
FROM :基础镜像,当前新镜像是基于哪个镜像的
MAINTAINER:镜像维护者的姓名和邮箱地址
RUN:容器构建时需要运行的命令
EXPOSE:当前容器对外暴露出的端口
WORKDIR:指定在创建容器后,终端默认登陆的进来工作目录,一个落脚点
ENV:用来在构建镜像过程中设置环境变量
ADD:将宿主机目录下的文件拷贝进镜像且ADD命令会自动处理URL和解压tar压缩包=copy+解压缩
COPY:类似ADD,拷贝文件和目录到镜像中。
VOLUME:容器数据卷,用于数据保存和持久化工作
CMD:指定一个容器启动时要运行的命令,会被覆盖
ENTRYPOINT:指定一个容器启动时要运行的命令,会追加
ONBUILD:当构建一个被继承的Dockerfile时运行命令,父镜像在被子继承后父镜像的onbuild被触发

#示例
#基础镜像,当前新镜像是基于哪个镜像的
FROM centos
#镜像维护者的姓名和邮箱地址
MAINTAINER xxx@qq.com
#类似ADD,拷贝文件和目录到镜像中。
COPY a.txt /tmp/container.txt
#将宿主机目录下的文件拷贝进镜像且ADD命令会自动处理URL和解压tar压缩包=copy+解压缩
ADD b.tar.gz /tmp/
#容器构建时需要运行的命令
RUN yum -y install vim
#用来在构建镜像过程中设置环境变量
ENV MYPATH /tmp
#指定在创建容器后,终端默认登陆的进来工作目录,一个落脚点
WORKDIR $MYPATH
#当前容器对外暴露出的端口
EXPOSE 8080

#查看镜像生成历史,看官方的镜像是怎么一步一步生成的
docker history XXX

 

  1. CMD:指定一个容器启动时要运行的命令,会被覆盖
  2. ENTRYPOINT:指定一个容器启动时要运行的命令,会追加
  3. 两者的区别

 

#编写此dockerfile文件
FROM centos
CMD ["ls","-a"]

#build一下
docker build -f mydockerfile -t cmdtest .

#run一下会打印出目录来,相当于直接执行了ls -a
docker run cmdtest

#相当于执行-l就会报错
docker run cmdtest -l
#编写dockerfile文件
FROM centos
ENTRYPOINT ["ls","-a"]
#build一下
docker build -f mydockerfile -t entrycentos
#启动,会打印目录,执行ls -a
docker run entrycentos
#追加启动,输出待权限的文件目录,相当于执行ls -a -l
docker run entrycentos -l

 

 

 

 

 

 

 

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值