Dockerfile精编细作(二)构建一个简单的镜像

Bash镜像说明

例如:CentOS的Dockerfile中FROM serach
dockerHub上几乎所有的镜像都是通过bash镜像中安装和配置需要的软件构建出来的
在这里插入图片描述

构建一个简单的镜像

构建一个centos镜像,并更改镜像时区,设置东八区
默认centos镜像运行容器时区如下
在这里插入图片描述

创建Dockerfile

  • 创建目录:mkdir -p /root/myCentOS/dockerFile

  • 进入创建好的目录:cd /root/myCentOS/dockerFile

  • 创建Dockerfile文件:touch Dockerfile
    在这里插入图片描述

  • 编辑Dockerfile:如下

    # 基于centos镜像,如果本机没有centos镜像则回去dockerhub上下载此镜像
    FROM centos
    # 作者
    MAINTAINER CodingAnHour
    #声明变量
    ENV MYPATH /usr/local
    # 设置工作目录
    WORKDIR $MYPATH
    #设置时区
    RUN /bin/cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime && echo ‘Asia/Shanghai’ >/etc/timezone
    # 对外暴漏端口 纯提示作用
    EXPOSE 80
    # 打开一个终端,输出success-------ok
    CMD echo $MYPATH
    CMD echo “success-------ok”
    CMD /bin/bash

    在这里插入图片描述

  • 运行Dockerfile:docker build -t mycentos:1.0 .

    • 默认情况构建是找当前目录Dockerfile文件构建,注意文件名

    • -t:-t让docker分配一个伪终端并绑定到容器的标准输入上

    • .:注意“.” 表示当前目录

    • 如果文件名字非“Dockerfile”,那么运行命令需要使用 -f 指定全路径

      docker build -t -f /root/myCentOS/dockerFile/DockerFile mycentos:1.0 .

      在这里插入图片描述

  • step共9步:因一共有9个关键字,就会对应有9个步骤,每步都会有一个新的镜像id和容器id

  • 运行镜像并进入容器工作目录中查看时间与宿主机时间是否在同一个时区,:docker run -it mycentos:1.0 /bin/bash
    在这里插入图片描述

  • 查看镜像构建历史:docker history 6ef27d686fbb

    • 此处id与build中镜像id一一对应
      在这里插入图片描述
  • missing:如上图中显示镜像失踪,是因为Dockerfile中可以有多个CMD命令,但是只有最后一个生效

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值