本地镜像管理:

build       从Dockerfile文件构建镜像
history     显示镜像的历史
images      管理镜像
import      从tarball导入内容以创建文件系统镜像
load        从tar存档或STDIN加载镜像
rmi         删除一个或多个镜像
save        将一个或多个镜像保存到tar存档 
tag         Create a tag TARGET_IMAGE that refers to SOURCE_IMAGE

build

用法:	docker build [OPTIONS] PATH | URL | -

从Dockerfile文件构建镜像

Options:
      --add-host list           添加自定义主机到IP的映射(host:ip)
      --build-arg list          设置构建时变量
      --cache-from strings      视为缓存源的镜像
      --cgroup-parent string    容器的可选父cgroup
      --compress                使用gzip压缩构建上下文
      --cpu-period int          限制CPU CFS(完全公平的调度程序)期限
      --cpu-quota int           限制CPU CFS(完全公平的调度程序)配额
  -c, --cpu-shares int          CPU shares (relative weight)
      --cpuset-cpus string      允许执行的CPU (0-3, 0,1)
      --cpuset-mems string      允许执行的MEM (0-3, 0,1)
      --disable-content-trust   跳过镜像验证 (default true)
  -f, --file string             Dockerfile的名称(默认为“ PATH / Dockerfile”)
      --force-rm                总是删除中间容器
      --iidfile string          将镜像ID写入文件
      --isolation string        集装箱隔离技术
      --label list              设置镜像的元数据
  -m, --memory bytes            内存限制
      --memory-swap bytes       交换限制等于内存加交换:“-1”以启用无限交换
      --network string          在构建期间为RUN指令设置联网模式(默认 "default")
      --no-cache                构建映像时不要使用缓存
      --pull                    始终尝试提取镜像的较新版本
  -q, --quiet                   禁止生成输出并在成功时打印镜像ID
      --rm                      成功构建后删除中间容器 (默认 true)
      --security-opt strings    安全选项
      --shm-size bytes          /dev/shm的大小
  -t, --tag list                名称和“ name:tag”格式的标签(可选)
      --target string           设置要构建的目标构建阶段
      --ulimit ulimit           Ulimit选项 (默认 [])

实例:

使用URL github.com/creack/docker-firefox 的 Dockerfile 创建镜像

1
docker build github.com/creack/docker-firefox

Dockerfile处构建

1
docker build - < Dockerfile

使用当前目录的 Dockerfile 创建镜像,标签为 chemistryhuang/ubuntu:v1

1
docker build -t chemistryhuang/ubuntu:v1 . 

也可以通过 -f Dockerfile 文件的位置

1
docker build -f /path/to/a/Dockerfile .

history

用法:	docker history [OPTIONS] IMAGE

显示镜像的历史

Options:
      --format string   使用Go模板打印漂亮的镜像
  -H, --human           以人类可读的方式打印尺寸和日期 (默认 true)
      --no-trunc        不要截断输出
  -q, --quiet           仅显示数字ID

实例:

1
docker history --format "{{.ID}}: {{.CreatedSince}}"  ubuntu

images

用法:	docker images [OPTIONS] [REPOSITORY[:TAG]]

列出镜像

Options:
  -a, --all             显示所有镜像(默认隐藏中间镜像)
      --digests         显示摘要
  -f, --filter filter   根据提供的条件过滤输出
      --format string   使用Go模板打印漂亮的镜像
      --no-trunc        不要截断输出
  -q, --quiet           仅显示数字ID

docker images默认将显示所有镜像,它们的存储库和标签以及它们的大小。

实例:

1、列出最近创建镜像

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
## 命令
docker images

## 结果
REPOSITORY                         TAG                 IMAGE ID            CREATED             SIZE
nginx                              latest              2073e0bcb60e        8 days ago          127MB
php                                7-apache            4165e46dd82e        9 days ago          414MB
mysql                              latest              3a5e53f63281        3 weeks ago         465MB
redis                              latest              9b188f5fb1e6        5 weeks ago         98.2MB
mongo                              bionic              a0e2e64ac939        7 weeks ago         364MB
chemistryhuang/ubuntu-customized   latest              549b9b86cb8d        7 weeks ago         64.2MB
ubuntu                             latest              549b9b86cb8d        7 weeks ago         64.2MB
jupyter/datascience-notebook       latest              9e64f3a158ed        2 months ago        4.91GB
jupyter/scipy-notebook             latest              4b0e7c708aa5        2 months ago        3.35GB

2、列出完整的镜像ID

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
## 命令
docker images --no-trunc

## 结果
REPOSITORY                         TAG                 IMAGE ID                                                                  CREATED             SIZE
nginx                              latest              sha256:2073e0bcb60ee98548d313ead5eacbfe16d9054f8800a32bedd859922a99a6e1   8 days ago          127MB
php                                7-apache            sha256:4165e46dd82e4985eaf4cd233cfefc913a8bf0cb953068c2789765e2899572f4   9 days ago          414MB
mysql                              latest              sha256:3a5e53f6328162f8d8bc70131658a721e8e7dcf7495f2fae7cfe4febdbcfefbb   3 weeks ago         465MB
redis                              latest              sha256:9b188f5fb1e6e1c7b10045585cb386892b2b4e1d31d62e3688c6fa8bf9fd32b5   5 weeks ago         98.2MB
mongo                              bionic              sha256:a0e2e64ac939a4f0c9b7aad9fee09f87f7d7f923f50ddcd9ed20f3f229b998f8   7 weeks ago         364MB
chemistryhuang/ubuntu-customized   latest              sha256:549b9b86cb8d75a2b668c21c50ee092716d070f129fd1493f95ab7e43767eab8   7 weeks ago         64.2MB
ubuntu                             latest              sha256:549b9b86cb8d75a2b668c21c50ee092716d070f129fd1493f95ab7e43767eab8   7 weeks ago         64.2MB
jupyter/datascience-notebook       latest              sha256:9e64f3a158ed1183f6a506876eb504e6853ba15fc47f6b6b79ac3d11ae3725e8   2 months ago        4.91GB
jupyter/scipy-notebook             latest              sha256:4b0e7c708aa5439abc5ccb6d9253e7378a76dbca41c27d0656b5e7d28d4b71fa   2 months ago        3.35GB

3、列出完整的镜像摘要

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
## 命令
docker images --digests

## 结果
REPOSITORY                         TAG                 DIGEST                                                                    IMAGE ID            CREATED             SIZE
nginx                              latest              sha256:ad5552c786f128e389a0263104ae39f3d3c7895579d45ae716f528185b36bc6f   2073e0bcb60e        8 days ago          127MB
php                                7-apache            sha256:5e7c666bf5fd7a10a11ab1be1bae8b625c68a2dfa1d600e9391d554af5056ac9   4165e46dd82e        9 days ago          414MB
mysql                              latest              sha256:f1df505c4c6e8eae599a0482e3bde3e761cd700c00cbc371a8161648a26817c0   3a5e53f63281        3 weeks ago         465MB
redis                              latest              sha256:90d44d431229683cadd75274e6fcb22c3e0396d149a8f8b7da9925021ee75c30   9b188f5fb1e6        5 weeks ago         98.2MB
mongo                              bionic              sha256:6ba3c15d697729516ad5df4ca8341afe370bbfc5cfa2a4bf200fe089057e8d2b   a0e2e64ac939        7 weeks ago         364MB
chemistryhuang/ubuntu-customized   latest              sha256:2695d3e10e69cc500a16eae6d6629c803c43ab075fa5ce60813a0fc49c47e859   549b9b86cb8d        7 weeks ago         64.2MB
ubuntu                             latest              sha256:250cc6f3f3ffc5cdaa9d8f4946ac79821aafb4d3afc93928f0de9336eba21aa4   549b9b86cb8d        7 weeks ago         64.2MB
jupyter/datascience-notebook       latest              sha256:18ef2702c6a25bd26b81e7b6dc831adb2bc294ae7bc9b011150b8f4573c41d4a   9e64f3a158ed        2 months ago        4.91GB
jupyter/scipy-notebook             latest              sha256:60b6dd2bf2347d260603d6609ddd97c3dd755f4c5e9fa8842a58855faf006328   4b0e7c708aa5        2 months ago        3.35GB

4、格式化输出

Placeholder Description
.ID Image ID
.Repository Image repository
.Tag Image tag
.Digest Image digest
.CreatedSince Elapsed time since the image was created
.CreatedAt Time when the image was created
.Size Image disk size
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
## 命令
docker images --format "table {{.ID}}\t{{.Repository}}\t{{.Tag}}"

## 结果
IMAGE ID            REPOSITORY                         TAG
2073e0bcb60e        nginx                              latest
4165e46dd82e        php                                7-apache
3a5e53f63281        mysql                              latest
9b188f5fb1e6        redis                              latest
a0e2e64ac939        mongo                              bionic
549b9b86cb8d        ubuntu                             latest
549b9b86cb8d        chemistryhuang/ubuntu-customized   latest
9e64f3a158ed        jupyter/datascience-notebook       latest
4b0e7c708aa5        jupyter/scipy-notebook             latest

import

用法:	docker import [OPTIONS] file|URL|- [REPOSITORY[:TAG]]

从tarball导入内容以创建文件系统镜像

Options:
  -c, --change list      将Dockerfile指令应用于创建的镜像
  -m, --message string   为导入的镜像设置提交消息

可以指定URL-(破折号)以直接从获取数据STDIN。所述 URL可指向含有一个文件系统的归档(的.tar,名为.tar.gz,.tgz的,.bzip,.tar.xz,或.txz)或所述多克尔主机上的单个文件。如果您指定档案,Docker会将其解压缩到相对于/ (根)的容器中。如果指定单个文件,则必须指定主机内的完整路径。要从远程位置导入,请指定以或协议URI开头的 。http://``https://

--change选项会将Dockerfile说明应用于创建的镜像。支持的Dockerfile指令: CMD| ENTRYPOINT| ENV| EXPOSE| ONBUILD| USER| VOLUME|WORKDIR

实例:

1、从本地文件导入

  • 通过管道和导入到docker STDIN

    1
    
    cat exampleimage.tgz | docker import - exampleimagelocal:new
    
  • 通过提交消息导入。

    1
    
    cat exampleimage.tgz | docker import --message "New image imported from tarball" - exampleimagelocal:new
    
  • 从本地档案导入docker。

    1
    
    docker import /path/to/myexampleimage.tgz
    

2、从本地目录导入

1
sudo tar -c . | docker import - exampleimagedir

3、使用新配置从本地目录导入

1
sudo tar -c . | docker import --change "ENV DEBUG true" - exampleimagedir

load

用法:	docker load [OPTIONS]

从tar存档或STDIN加载镜像

Options:
  -i, --input string   从tar存档文件而非STDIN中读取
  -q, --quiet          	抑制负载输出

从文件或STDIN中的tar存档(即使使用gzip,bzip2或xz压缩)中加载镜像或存储库。同时可还原镜像和标签。

实例:

docker load --input fedora.tar

rmi

用法:	docker rmi [OPTIONS] IMAGE [IMAGE...]

删除一个或多个镜像

Options:
  -f, --force      强制删除镜像
      --no-prune   不要删除未加标签的父镜像

从主机节点删除(并取消标记)一个或多个镜像。如果镜像具有多个标签,则将此命令与标签一起使用时,只会删除该标签。如果标签是镜像的唯一标签,则镜像和标签都将被删除。

使用该-f选项,可删除正在运行的容器的映像。

实例:

1
docker rmi ubuntu

save

用法:	docker save [OPTIONS] IMAGE [IMAGE...]

将一个或多个镜像保存到tar存档(默认情况下流式传输到STDOUT)

Options:
  -o, --output string   写入文件,而不是STDOU

实例:

1
2
3
4
## 备份一个镜像
docker save -o fedora-all.tar fedora
## 备份多个镜像
docker save -o ubuntu.tar ubuntu:lucid ubuntu:saucy

tag

用法:	docker tag SOURCE_IMAGE[:TAG] TARGET_IMAGE[:TAG]

Create a tag TARGET_IMAGE that refers to SOURCE_IMAGE

实例:

1
docker tag ubuntu:latest chemistryhuang/ubuntu-customized