Docker Build

#Docker

1. 说明

  之前介绍过用 commit 的方式生成新的 Docker Image,今天介绍用 Build 方式做 image,Build 方式需要写一个配置文件,然后利用当前是已存在的 image,按照配置文件进行调整生成新的 image。

  相对来说,commit 方法更随意,我们用它将现场保存为 image,而 build image 生成的 image 更“干净”。

2. 基本操作

(1) 看当前环境

1
$ docker images

  看一下当前的 image,确定新的 image 是基于哪个 image,记下它的大版本号 (REPOSITORY) 和小版本号 (TAG)。

(2) 写配置文件 Dockerfile

1
$ vi Dockerfile

  写入以下内容,我这里是安装了一个新 python 包 pyecharts

1
2
FROM 基础大版本号:基础小版本号
RUN ["pip", "install", "pyecharts"]

(3) BUILD 新的 Docker image

1
$ docker build -t 新的大版本号: 新的小版本号 .

此时 docker 会从当前目录”.”中读取 Dockerfile,并按其设置建立新的 image

(4) 查看是否 BUILD 成功

1
$ docker images

3. Dockerfile 常用命令

  1. FROM: 制作 image 时依据的基本 image

  2. RUN:制作 image 时执行的命令,一般在 Dockerfile 中多次出现

  3. CMD:启动 docker 时执行的命令,在 Dockerfile 中只出现一次

  4. ENV:设置环境变量

  5. COPY:制作 image 时,将文件系统中的文件复制到 Docker 镜像中

  6. WORKDIR:设置工作目录

  7. EXPOSE:设置向外暴露的端口

  8. VOLUME:设置容器与外界映射的目录

4. 参考

(1) Docker 入门 02——Dockerfile 详解

http://www.cnblogs.com/sorex/p/6481407.html

看/sbin/init 由谁提供:

dpkg -L systemd-sysv | grep /sbin/init

此外,“初始化”仅仅是 systemd 一个符号链接:

$ ls -lthd /sbin/init

lrwxrwxrwx 1 root root 20 May 12 05:39 /sbin/init -> /lib/systemd/systemd