Docker 命令整理(本地镜像管理)

Docker镜像管理指南
本文详细介绍Docker镜像管理的七大核心命令:images、rmi、tag、build、history、save与load、import,包括命令语法、选项说明及实用实例,帮助读者掌握Docker镜像的高效操作技巧。

1. images 

docker images : 列出本地镜像。

语法

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

OPTIONS说明:

  • -a :列出本地所有的镜像(含中间映像层,默认情况下,过滤掉中间映像层);

  • --digests :显示镜像的摘要信息;

  • -f :显示满足条件的镜像;

  • --format :指定返回值的模板文件;

  • --no-trunc :显示完整的镜像信息;

  • -q :只显示镜像ID。

实例

查看本地镜像列表。

runoob@runoob:~$ docker images
REPOSITORY              TAG                 IMAGE ID            CREATED             SIZE
mymysql                 v1                  37af1236adef        5 minutes ago       329 MB
runoob/ubuntu           v4                  1c06aa18edee        2 days ago          142.1 MB
<none>                  <none>              5c6e1090e771        2 days ago          165.9 MB
httpd                   latest              ed38aaffef30        11 days ago         195.1 MB
alpine                  latest              4e38e38c8ce0        2 weeks ago         4.799 MB
mongo                   3.2                 282fd552add6        3 weeks ago         336.1 MB
redis                   latest              4465e4bcad80        3 weeks ago         185.7 MB
php                     5.6-fpm             025041cd3aa5        3 weeks ago         456.3 MB
python                  3.5                 045767ddf24a        3 weeks ago         684.1 MB
...

列出本地镜像中REPOSITORY为ubuntu的镜像列表。

root@runoob:~# docker images  ubuntu
REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
ubuntu              14.04               90d5884b1ee0        9 weeks ago         188 MB
ubuntu              15.10               4e3b13c8a266        3 months ago        136.3 MB

2. rmi 

docker rmi : 删除本地一个或多个镜像。

语法

docker rmi [OPTIONS] IMAGE [IMAGE...]

OPTIONS说明:

  • -f :强制删除;

  • --no-prune :不移除该镜像的过程镜像,默认移除;

实例

强制删除本地镜像 runoob/ubuntu:v4。

root@runoob:~# docker rmi -f runoob/ubuntu:v4
Untagged: runoob/ubuntu:v4
Deleted: sha256:1c06aa18edee44230f93a90a7d88139235de12cd4c089d41eed8419b503072be
Deleted: sha256:85feb446e89a28d58ee7d80ea5ce367eebb7cec70f0ec18aa4faa874cbd97c73

3. tag 

docker tag : 标记本地镜像,将其归入某一仓库。

语法

docker tag [OPTIONS] IMAGE[:TAG] [REGISTRYHOST/][USERNAME/]NAME[:TAG]

实例

将镜像ubuntu:15.10标记为 runoob/ubuntu:v3 镜像。

root@runoob:~# docker tag ubuntu:15.10 runoob/ubuntu:v3
root@runoob:~# docker images   runoob/ubuntu:v3
REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
runoob/ubuntu       v3                  4e3b13c8a266        3 months ago        136.3 MB

4. build 

docker build 命令用于使用 Dockerfile 创建镜像。

语法

docker build [OPTIONS] PATH | URL | -

OPTIONS说明:

  • --build-arg=[] :设置镜像创建时的变量;

  • --cpu-shares :设置 cpu 使用权重;

  • --cpu-period :限制 CPU CFS周期;

  • --cpu-quota :限制 CPU CFS配额;

  • --cpuset-cpus :指定使用的CPU id;

  • --cpuset-mems :指定使用的内存 id;

  • --disable-content-trust :忽略校验,默认开启;

  • -f :指定要使用的Dockerfile路径;

  • --force-rm :设置镜像过程中删除中间容器;

  • --isolation :使用容器隔离技术;

  • --label=[] :设置镜像使用的元数据;

  • -m :设置内存最大值;

  • --memory-swap :设置Swap的最大值为内存+swap,"-1"表示不限swap;

  • --no-cache :创建镜像的过程不使用缓存;

  • --pull :尝试去更新镜像的新版本;

  • --quiet, -q :安静模式,成功后只输出镜像 ID;

  • --rm :设置镜像成功后删除中间容器;

  • --shm-size :设置/dev/shm的大小,默认值是64M;

  • --ulimit :Ulimit配置。

  • --tag, -t: 镜像的名字及标签,通常 name:tag 或者 name 格式;可以在一次构建中为一个镜像设置多个标签。

  • --network: 默认 default。在构建期间设置RUN指令的网络模式

实例

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

docker build -t runoob/ubuntu:v1 . 

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

docker build github.com/creack/docker-firefox

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

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

在 Docker 守护进程执行 Dockerfile 中的指令前,首先会对 Dockerfile 进行语法检查,有语法错误时会返回:

$ docker build -t test/myapp .
Sending build context to Docker daemon 2.048 kB
Error response from daemon: Unknown instruction: RUNCMD

5. history 

docker history : 查看指定镜像的创建历史。

语法

docker history [OPTIONS] IMAGE

OPTIONS说明:

  • -H :以可读的格式打印镜像大小和日期,默认为true;

  • --no-trunc :显示完整的提交记录;

  • -q :仅列出提交记录ID。

实例

查看本地镜像runoob/ubuntu:v3的创建历史。

root@runoob:~# docker history runoob/ubuntu:v3
IMAGE             CREATED           CREATED BY                                      SIZE      COMMENT
4e3b13c8a266      3 months ago      /bin/sh -c #(nop) CMD ["/bin/bash"]             0 B                 
<missing>         3 months ago      /bin/sh -c sed -i 's/^#\s*\(deb.*universe\)$/   1.863 kB            
<missing>         3 months ago      /bin/sh -c set -xe   && echo '#!/bin/sh' > /u   701 B               
<missing>         3 months ago      /bin/sh -c #(nop) ADD file:43cb048516c6b80f22   136.3 MB

6. save 

docker save : 将指定镜像保存成 tar 归档文件。

语法

docker save [OPTIONS] IMAGE [IMAGE...]

OPTIONS 说明:

  • -o :输出到的文件。

实例

将镜像 runoob/ubuntu:v3 生成 my_ubuntu_v3.tar 文档

runoob@runoob:~$ docker save -o my_ubuntu_v3.tar runoob/ubuntu:v3
runoob@runoob:~$ ll my_ubuntu_v3.tar
-rw------- 1 runoob runoob 142102016 Jul 11 01:37 my_ubuntu_v3.ta

7. load 

docker load : 导入使用 docker save 命令导出的镜像。

语法

docker load [OPTIONS]

OPTIONS 说明:

  • -i :指定导出的文件。

  • -q :精简输出信息。

实例

导入镜像:

docker load -i ubuntu.tar
docker load < ubuntu.tar

8. import 

docker import : 从归档文件中创建镜像。

语法

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

OPTIONS说明:

  • -c :应用docker 指令创建镜像;

  • -m :提交时的说明文字;

实例

从镜像归档文件my_ubuntu_v3.tar创建镜像,命名为runoob/ubuntu:v4

runoob@runoob:~$ docker import  my_ubuntu_v3.tar runoob/ubuntu:v4  
sha256:63ce4a6d6bc3fabb95dbd6c561404a309b7bdfc4e21c1d59fe9fe4299cbfea39
runoob@runoob:~$ docker images runoob/ubuntu:v4
REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
runoob/ubuntu       v4                  63ce4a6d6bc3        20 seconds ago      142.1 MB
<think>好的,我现在需要回答用户关于Docker本地镜像存储位置的问题。首先,用户明确提到想查找Docker本地镜像的存储位置,我需要根据提供的引用信息来整理答案。 根据引用[1],在Linux系统中,默认的存储位置是`/var/lib/docker`,其中镜像存放在`images`目录下。而引用[3]提到通过`docker info`命令可以查看当前配置的存储目录,即Docker Root Dir的值。这可能是一个关键步骤,用户可以通过这个命令直接找到路径。 接下来,用户可能想知道如何修改这个存储位置。引用[3]和[4]详细说明了在Linux系统中停止Docker服务、迁移目录的步骤,比如使用rsync复制数据到新位置,然后修改Docker的配置。这里需要分步骤说明,确保用户能安全地迁移数据而不丢失。 另外,用户可能使用的是Windows系统,引用[5]提到通过WSL2来修改存储路径,涉及导出和导入子系统镜像。这部分需要单独说明,因为Windows的处理方式与Linux不同,步骤较为复杂,用户需要按照特定的命令操作。 需要注意的是,不同操作系统的路径差异,比如Linux和Windows的区别,以及修改存储位置时的注意事项,如确保Docker服务已停止,避免数据损坏。同时,要提醒用户在修改前备份数据,防止意外发生。 最后,生成相关问题需要考虑用户可能的后续需求,比如如何迁移已有镜像、查看镜像位置的其他方法,以及修改存储位置的必要性。这些问题可以帮助用户更全面地了解Docker存储管理。</think>### Docker本地镜像存储位置说明 Docker本地镜像的存储位置**因操作系统而异**,具体如下: --- #### 1. **Linux系统** - **默认存储路径**: Docker镜像默认存放在`/var/lib/docker`目录下[^1][^3]。 - 镜像文件:`/var/lib/docker/images` - 容器文件:`/var/lib/docker/containers` - **查看当前存储路径**: 运行命令 `docker info`,查找 `Docker Root Dir` 字段的值[^3]。 --- #### 2. **Windows系统** - **WSL2模式**: Windows版Docker使用WSL2子系统,镜像数据默认存储在WSL虚拟硬盘中。 - 默认路径: `\\wsl$\docker-desktop-data\version-pack-data\community\docker` - **修改存储位置**需通过WSL导出/导入实现(见引用[^5])。 --- #### 3. **修改存储位置的通用方法** - **步骤**: 1. **停止Docker服务**: ```bash systemctl stop docker # Linux ``` 2. **迁移数据**: 使用 `rsync` 或复制命令将 `/var/lib/docker` 内容迁移到新目录[^4]: ```bash sudo rsync -aP /var/lib/docker/ /new/docker/ ``` 3. **修改配置**: - Linux:编辑配置文件(如 `/etc/docker/daemon.json`),添加: ```json { "data-root": "/new/docker" } ``` - Windows:通过WSL命令重新指定路径。 4. **重启Docker服务**: ```bash systemctl start docker # Linux ``` --- #### 注意事项 - **数据备份**:修改路径前建议备份原目录,避免数据丢失[^4]。 - **权限问题**:确保新目录有足够的读写权限。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值