Dockerfile详解

一、dockerfile常用指令

FROM :指定base镜像,如果本地不存在会从远程仓库下载。  

MAINTAINER: 设置镜像的作者,比如用户邮箱等。 

COPY: 把文件从build context复制到镜像

ADD :用法与COPY类似,不同的是src可以是归档压缩文件,

文件会被自动解压到dest,也可以自动下载URL并拷贝到镜像

例如:在Dockerfile文件添加 ADD ------可自动解压nginx压缩包

 运行容器v3 发现nginx压缩包被自动解压为目录

ENV 设置环境变量,变量可以被后续的指令使用: 

EXPOSE 如果容器中运行应用服务,可以把服务端口暴露出去

VOLUME 申明数据卷 使容器和数据分离

例如:在Dockerfile 申明数据卷  并保存在/data

 然后构建新镜像v4

运行容器 发现/data目录被创建

 查看数据卷:docker volume ls

删除数据卷: docker  volume    rm    volume name

RUN 在容器中运行命令并创建新的镜像层,常用于安装软件包 

CMD 与 ENTRYPOINT 这两个指令都是用于设置容器启动后执行的命令,但CMD会被docker run后面的命令行覆盖,而ENTRYPOINT不会被忽略,一定会被执行。 docker run后面的参数可以传递给ENTRYPOINT指令当作参数。 Dockerfile中只能指定一个ENTRYPOINT,如果指定了很多,只有最后一个有效。

形式一:CMD  echo "hello word"

构建新镜像 并运行容器

 如果命令含有变量 形式一也很简单

 同样输出正确

形式二(官方):命令加上[  ]

这种形式如果命令含有变量  不能直接使用 需要改写

ENTRYPOINT ["/bin/sh", "-c", "echo hello, $hostname"]

才能正确运行

如果不含有变量  必须写成下图形式

 构建新镜像 并运行容器 结果正确!

 运行容器时 后面加上字符 就会发现CMD命令被覆盖掉了 ENTRYPOINT不会被覆盖

 二、利用Dockerfile安装nginx

1.发送nginx 压缩包到Docker目录

 2.编辑index.html:www.westos.org

3.导出centos7镜像

4.编辑Dockerfile文件

5.构建新镜像

6.运行容器

 7.测试是否安装成功

docker inspect demo 查看容器详细信息

从详细信息查找ip 并curl  看到nginx默认发布页 说明安装成功!

 此外  在详细信息还能看到镜像挂在地址

直接修改默认发布页面

 三、马里奥小游戏

1.导出马里奥镜像

 2.运行容器 挂在后台

 3.在浏览器出入ip  开始游戏

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值