Docker学习实践(五)

构建Docker镜像

构建Docker镜像有以下两种方法:

  • 使用docker commit命令。docker commit 构建镜像可以想象为是在往版本控制系统里提交变更。
  • 使用docker build命令和 Dockerfile 文件。

这里并不推荐使用docker commit来构建镜像,而应该使用更灵活、更强大的Dockerfile来构建Docker镜像。

创建DockerFile

Dockerfile由一系列指令和参数组成,基于DSL语法。每条指令都必须为大写字母,切后面要跟随一个参数。Dockerfile中的指令会按照顺序从上到下执行,每条指令都会创建一个新的镜像层并对镜像进行提交。Docker大体上按照如下流程执行Dockerfile中的指令:

  • Docker从基础镜像运行一个容器。
  • 执行第一条指令,对容器进行修改。
  • 执行类似docker commit的操作,提交一个新的镜像层。
  • Docker再基于刚提交的镜像运行一个新的容器。
  • 执行Dockerfile中的下一条命令,直到所有指令都执行完毕。

FROM:

每个Dockerfile的第一条指令都应该是FROM。FROM指令指定一个已经存在的镜像,后续指令都是将基于该镜像进行,这个镜像被称为基础镜像(base iamge)

MAINTAINER:

MAINTAINER指令,这条指令会告诉Docker该镜像的作者是谁,以及作者的邮箱地址。这有助于表示镜像的所有者和联系方式。

RUN:

RUN指令会在当前镜像中运行指定的命令。每条RUN指令都会创建一个新的镜像层,如果该指令执行成功,就会将此镜像层提交,之后继续执行Dockerfile中的下一个指令。

EXPOSE:

EXPOSE指令是告诉Docker该容器内的应用程序将会使用容器的指定端口。出于安全的原因,Docker并不会自动打开该端口,而是需要你在使用docker run运行容器时来指定需要打开哪些端口。

通常一个dockerfile的文件格式如下:

FROM    centos:6.7
MAINTAINER      Cruise "xxxx@163.com"
 
 
RUN     /bin/echo 'root:123456' |chpasswd
RUN     useradd five3
RUN     /bin/echo 'xxxx:123456' |chpasswd
RUN     /bin/echo -e "LANG=\"en_US.UTF-8\"" >/etc/default/local
EXPOSE  22
EXPOSE  80
CMD     /usr/sbin/sshd -D

最后执行docker build -t xxxx/centos:6.7 /path/to/dockerfile

-t :指定要创建的目标镜像名,注意名称只能是小写字母

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值