docker使用Dockerfile构建镜像

    docker获取镜像,除了docker pull,docker load之外还可以通过自定义Dockerfile的方式通过命令docker build 来构建新镜像。通过这种方式可以很自由的定义想要安装的镜像,想要安装的软件,配置环境变量,更改配置文件等一切人为操作。先介绍Dockerfile中一些常见的语法:

  • FROM:来源,可以是本地已经安装的镜像,也可以是docker hub仓库中的镜像
  • MAINTAINER:维护者信息,一般输入个人邮箱
  • COPY|ADD:拷贝/添加本地文件文件夹到操作系统镜像容器中,这个很方便用户配置安装软件,不过COPY只是拷贝,而ADD不仅是拷贝,如果是压缩文件,它默认会解压,所以无须人工进行tar或者unzip命令来解压,强行解压还会报错,提示解压原始文件不存在。
  • WORKDIR:切换工作空间,类似于linux/dos命令的cd
  • RUN:运行linux命令,后面紧跟的是linux命令
  • ENV:设置环境变量
  • CMD:容器启动时执行的命令,有多个命令的话只会执行最后一个,该指令与ENTRYPOINT功能类似。

    通过Dockerfile构建的镜像是一个二次镜像,加工过的,在这个镜像里面,我们需要一个原始镜像,也就是FROM指定的镜像,在后面,我们可以进行拷贝文件,执行linux命令,暴露端口,最后还必须指定容器启动之后运行的命令CMD或者ENTRYPOINT,否则,构建镜像可能不会报错,但是一通过docker run,我们的镜像就是Exit状态。

    简单的示例:这个示例中,我们通过拷贝已经编译好的redis安装目录到centos7-ansible原始镜像中,构建一个redis的docker服务镜像。

    1、准备Dockerfile文件

    

    2、在Dockfile文件所在的目录,我们只需要存放Dockfile文件和redis.tar.gz压缩文件即可。 

    3、最后构建镜像的命令 docker build -t tagname:version . 。最后的一个点表示当前目录,这个参数必须指定一个目录,默认情况下就是当前目录,docker命令运行后, 会默认找到当前文件夹下的Dockerfile,Dockerfile中配置的关于ADD命令都是相对于这个目录。

    

    4、利用我们构建的镜像来启动一个docker服务。

      

    镜像启动正常,会显示Up状态,这时候,我们可以通过docker exec -it redis /bin/bash进入容器查看或者使用redis服务。 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

luffy5459

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值