局外人1

V1

2022/11/10阅读:21主题:默认主题

Docker篇-镜像管理

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 如果服务器是多平台的,则设置平台

-q, --quiet 抑制详细输出

rmi

删除本地已存在的镜像

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

其它可选参数

-f, --force 强制删除 --no-prune 不移除该镜像的过程镜像,默认移除

示例:

docker rmi nginx

删除已启动过的镜像(不能删除正在启动过的镜像或者已存在进程中的镜像)

docker rmi test-1.0.2
>>> Error response from daemon: conflict: unable to remove repository re
ference "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, --pausecommit时将容器暂停

示例:

使用本地已存在的容器进行创建一个新的镜像,我们先来查看下本地已启动或者已在进程中的容器

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的镜像

分类:

后端

标签:

后端

作者介绍

局外人1
V1