镜像管理
search
进行搜索查找存在镜像
从Docker Hub查找镜像:
(也可以直接去官方仓库查找,这样信息更直观完整)
docker search [imageName]
其它更多选项使用 —help查看
docker search --help
-f, --filter filter 列出收藏数不小于指定值的镜像
--format string 包括stars=100(收藏数不少于100的镜像),is-official=true(指定Docker官方发布的镜像)
--limit int 设置最多输出num条记录,默认25条
--no-trunc 不截断,显示完整的镜像描述
示例:
从官方docker库中查找starts等于100的nginx 镜像
docker search -f stars=100 is-official=true nginx
pull
从镜像窗口仓库中拉取镜像(拉取的镜像元信息存储在 /var/lib/docker/ 目录下)
docker pull [options] NAME[:TAG]
示例:
拉取nginx镜像
docker pull nginx
其他可选命令:
-a, --all-tags 拉取所有TAG镜像
--disable-content-trust 忽略镜像的校验,默认开启
--platform string Set platform if server is multi-platform capable
-q, --quiet Suppress verbose output
rmi
删除本地已存在的镜像
docker rmi [OPTIONS] IMAGE [IMAGE...]
其它可选参数
-f, --force 强制删除
--no-prune Do not delete untagged parents
示例:
docker rmi nginx
删除已启动过的镜像(不能删除正在启动过的镜像或者已存在进程中的镜像)
docker rmi test-1.0.2
>>> Error response from daemon: conflict: unable to remove repository reference "test-1.0.2" (must force) - container d5dfd3d998c1 is using its referenced image 77a65c8f375b
解决方案:
1、选删除容器记录 使用 docker rm [容器ID]
[root@Vue docker]# docker rm d5dfd3d998c1
d5dfd3d998c1
2、使用强制删除 使用docker rmi [imageName/tag]
[root@Vue docker]# docker rmi test-1.0.2 --force
Untagged: test-1.0.2:latest
Deleted: sha256:77a65c8f375bf70f85f78ee3edab229acec1ea64d94dee11e89896c5678e0c79
Deleted: sha256:3ee9e749ccbf55e79c26f6eb2bad6e182209815dd5510444a81e82c6aad2b374
tag
给镜像进行做标签将其进行分类
docker tag SOURCE_IMAGE[:TAG] TARGET_IMAGE[:TAG]
示例:
docker tag nginx nginx:v2
commit
从本地容器创建一个新的镜像
docker commit [OPTIONS] CONTAINER [REPOSITORY[:TAG]]
其它可选参数:
-a, --author string 提交的镜像作者
-c, --change list 使用Dockerfile指令来创建镜像
-m, --message string 提交时的说明信息
-p, --pause 在commit时将容器暂停
示例:
使用本地已存在的容器进行创建一个新的镜像,我们先来查看下本地已启动或者已在进程中的容器
docker ps /docker ps -a(该命令是用来查看本地存在的容器)
就用第一个容器,以gitlab/gitlab-runner:latest 容器进行创建一个新的镜像
docker commit d65d1b83ff30 gitlab-test
可以看到我们已经成功的创建了一个新的容器
save
将一个或多个镜像进行打包
docker save [OPTIONS] IMAGE [IMAGE...]
可选参数
-o, --output string 打包成tar包
进行打包nginx镜像
docker save nginx -o nginx.tar
load
从tar包中进行加载镜像,一般可用于离线安装镜像
docker load [OPTIONS]
可选参数
-i, --input string 从tar包中加载镜像
-q, --quiet 压缩输出信息
我们继续进行将打包好的nginx镜像将其加载到docker中
[root@Vue ~]# docker load -i nginx.tar
Loaded image: nginx:latest
Loaded image: nginx:v2
import
从归档文件中创建镜像
docker import [OPTIONS] file|URL|- [REPOSITORY[:TAG]]
可选参数
-c, --change list 应用docker 指令创建镜像;
-m, --message string 提交时的说明文字;
--platform string 如果服务器支持多平台,请设置平台
我们来将本地redis.tar包进行用于创建docker镜像
docker import redis-5.0.12.tar redis-import:v1
进行将redis-5.0.12.tar 包创建名为 redis-import:v1的镜像