容器学习 -- 镜像制作

镜像制作:

  • docker commit 容器名称 镜像名称
  • dockerfile

方法一:docker commit

方法过程:

使用docker commit方法来制作镜像时,首先要先启动一个容器,然后在启动的容器中部署好所需要的服务和进程等,然后使用 docker commit 容器名 镜像名:版本(可以不带) 来制作出镜像,这样制作出来的镜像就会有容器中之前已经部署好的各种服务了;

缺点:
  1. 制作过程黑盒,对外不可见,其他人无法知道镜像的制作过程和特点, 时间久了可能会忘记镜像中的内容;

  2. 镜像一旦丢失或误删后,很难再复制出同样的镜像;

方法二:dcokerfile

dockerfile文件示例:
FROM centos:7

ADD entrypoint.sh /root  # entrypoint.sh 是从工作目录下的文件 /root 镜像目录

USER root  # 用root用户执行下方的指令

RUN yum install -y wget vim
RUN yum install -y vim wget
RUN yum install -y wget vim git
RUN yum install -y wget
RUN yum install -y openssh-server openssl
RUN yum install wget vim
RUN yum install git vim

USER jenkins  # 容器启动会读取最后一个user作为用户继续执行
WORKDIR /root  # 容器启动后的默认目录


ENTRYPOINT ["/bin/bash", "/root/entrypoint.sh"]  # 容器的启动命令,即容器启动后首先运行的命令 该条命令即把之前通过add命令复制到镜像中的entrypoint.sh文件通过/bin.bash执行;
dockerfile 指 令:
  • FROM (指定继承自哪个基础镜像)
  • RUN (运行shell命令)
  • ADD/COPY (复制文件,当复制的文件是压缩包时,add可以自动解压文件;而copy可以从另外的镜像中copy文件到临时镜像中; )
  • USER (指定运行用户)
  • ENTRYPOINT (指定容器启动命令)
  • ENV (指定环境变量)

更多指令介绍:百度安全验证

镜像制作指令:

docker build -t 镜像名称:版本(可以省略)  工作目录(读取dockerfile的目录)

设置好dockerfile文件后,执行上述命令来制作镜像;

当dockerfile文件就在当前目录下时,可以写做:dcoker build -t demo .

-f :当要读取的dockerfile文件不叫做dockerfile时,使用 -f + 文件名来指定读取文件,该指令很少使用,一般读取的文件名就叫做dockerfile

-t :指定镜像名称(版本)

注意点:

使用该方法创建镜像时,会将工作目录下的所有文件都发送到docker damon,所以当前目录下存在其他文件,尤其是大文件时会大大降低效率,因此dockerfile文件都会单独保留在某一目录下;

制作过程:

发送工作目录下的文件到docker damon

启动临时容器

在临时容器中运行指令

删除临时容器

镜像创建成功

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值