Docker学习之-使用 Dockerfile创建自定义镜像

介绍

Dockerfile 是创建docker 镜像的文本文件,通过一条条按顺序执行的指令,构建镜像,类似于 shell 脚本。

Dockerfile 指令

指令指令说明
FROM构建镜像依赖的基础镜像(FROM search表示从零开始构建)
MAINTAINER设置镜像作者
RUN编译镜像时运行的脚本
CMD设置镜像启动命令(多个指令只会执行最后一个)
LABEL设置镜像标签
EXPOSE镜像暴露的端口信息
ENV设置容器环境变量
ADD编译镜像时,添加文件到镜像(提前下载好,压缩包会自动解压)
COPY编译镜像时复制文件到镜像中
ENTRYPOINT设置容器入口程序
VOLUME设置容器挂载卷
USER设置运行RUN CMD ENTRYPOINT 的用户名
WORKDIR设置容器默认的工作目录

cmd:指令会被docker run 指令替换,entrypoint 是拼接指令

CMD ls 可使用 docker run 容器id ll 替换
ENTRYPOINT ls 会与docker run -al 拼接使用

构建过程

在这里插入图片描述

任务

  • 创建一个自定义 centos 镜像,安装 vim, ifconfig 指令(官网centos 没有这些命令),运行centos
  • 使用自定义容器,创建一个新的镜像
  • 创建Dockerfile 文件
FROM centos   #基于centos 创建
MAINTAINER guanzc  	#配置作者
RUN -y yum install vim 	#创建时运行的脚本
RUN -y yum install net-tools
ENV MYPATH  /usr/home   #定义环境变量
WORKDIR  $MYPATH  #指定默认工作目录
EXPOSE 80 #暴露端口
CMD  '/bin/bash'  

指令按顺序执行,指令必须大写

  • 执行命令
 docker build -f dockerfile -t guan-centos:1.0 .

文件默认名称为 Dockerfile ,不是默认名称加 -f
在这里插入图片描述
在这里插入图片描述
构建成功

  • 查看
docker images

在这里插入图片描述

  • 过程查看
 docker history e56e0c9de99b

在这里插入图片描述
每一指令都会生成一个新的镜像层

  • 运行自定义镜像,创建容器
docker run -it --name centos-9527 guan-cneots:1.0

在这里插入图片描述
运行成功

  • 使用容器创建一个镜像
docker commit -a 'guan custom cetos' \  # 作者
-m 'test dockerfile build images' \  # 信息
b34a34380c0b  \
centos-8-001:1.0

在这里插入图片描述

总结

整个流程演示了,使用自定义Dockerfile构建自己镜像,使用自定义镜像创建容器并运行。再次使用容器创建一个新的镜像。镜像和容器可以相互转变

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值