(四)docker命令—镜像管理命令
docker import 命令是一种从容器快照创建新镜像的灵活方法,适用于迁移、恢复和自定义。
1.Docker常用命令概述
1.2 镜像管理命令
还有许多其他Docker命令,如查看容器列表的docker ps,获取容器底层信息的docker inspect,显示容器进程的docker top,以及附上运行容器的docker attach等。同时,还有版本管理、镜像仓库管理、本地镜像管理等相关命令,如创建新镜像的docker commit,拉取和推送镜像的docker pull和docker push,搜索镜像的docker search等
1.2.1 docker search image_name 检索image
1.2.2 docker pull image_name 下载镜像
拉取过程优化
# 指定平台拉取
docker pull --platform linux/arm64 myregistry.com/app:1.0
# 仅下载元数据
docker pull --quiet myregistry.com/app:1.0
# 断点续传技巧
docker save myregistry.com/app:1.0 | pv | ssh user@host docker load
拉取策略对比
| 策略 | 命令示例 | 特点 |
|---|---|---|
| 默认拉取 | docker pull app:1.0 | 完整下载所有层 |
| 内容信任验证 | DOCKER_CONTENT_TRUST=1 | 校验签名防止篡改 |
| 增量更新 | docker pull app:latest | 仅下载变更层(复用缓存) |
1.2.3 docker push new_image_name发布docker镜像
推送全流程解析
# 认证私有仓库
docker login myregistry.com -u user -p password
# 标准推送操作
docker push myregistry.com/app:1.0
# 多架构镜像推送
docker buildx build --platform linux/amd64,linux/arm64 --push -t myregistry.com/app:1.0 .
安全推送实践
# 签名镜像(需配置Docker Content Trust)
export DOCKER_CONTENT_TRUST=1
docker push myregistry.com/app:1.0
# 漏洞扫描集成
docker scan myregistry.com/app:1.0
1.2.4 docker images 列出本地镜像
-a, --all=false Show all images;
--no-trunc=false Don't truncate output;
-q, --quiet=false Only show numeric IDs
1.2.5 docker rmi image_name 删除一个或者多个镜像
-f, --force=false Force;
--no-prune=false Do not delete untagged parents
1.2.6 docker history image_name 显示一个镜像的历史;
--no-trunc=false Don't truncate output;
-q, --quiet=false Only show numeric IDs
1.2.7 docker import:通过tar文件导入镜像
语法:
docker import [参数选项] file | URL | - [REPOSITORY[:TAG]]。
参数解释:
file|URL|-:输入文件的路径、本地文件或 URL,或者使用 - 从标准输入读取。
[REPOSITORY[:TAG]]:(可选)为导入的镜像指定仓库和标签。
-c, --change:在导入过程中应用 Dockerfile 指令,如 CMD、ENTRYPOINT、ENV 等。
-m, --message:为导入的镜像添加注释。
# 1、从本地 tar 文件导入镜像,并命名为 mynewimage:latest。
docker import mycontainer.tar mynewimage:latest
# 2、从 URL 导入镜像,并命名为 mynewimage:latest。
docker import http://example.com/mycontainer.tar mynewimage:latest
# 3、从标准输入导入镜像,这将通过管道从标准输入读取 tar 文件并导入镜像。
cat mycontainer.tar | docker import - mynewimage:latest
# 4、在导入过程中应用变更,这将从 mycontainer.tar 导入镜像,并在过程中设置环境变量 LANG 和命令 CMD。
docker import -c “ENV LANG=en_US.UTF-8” -c “CMD /bin/bash” mycontainer.tar mynewimage:latest
# ①导出容器快照:
# 创建并运行一个容器
docker run -d --name myContainer ubuntu:20.04 sleep 3600
# 导出容器快照
docker export myContainer -o myContainer.tar
# ②导入容器快照:
docker import myContainer.tar mynewimage:latest
# 运行导入的镜像
docker run -it mynewimage:latest /bin/bash
注意事项:
①docker import 创建的镜像不会保留原始镜像的历史和元数据。
②使用 -c 选项可以在导入过程中应用 Dockerfile 指令,从而自定义新镜像的配置。
③导入的 tar 文件必须是使用 docker export 创建的容器快照,或者是兼容的其他格式。
总结:
docker import 命令是一种从容器快照创建新镜像的灵活方法,适用于迁移、恢复和自定义 Docker 镜像的场景。通过使用 docker import,用户可以轻松地从容器快照生成新的镜像,并在导入过程中应用额外的配置。
1.2.8 docker load:加载已保存的tar镜像
docker load -i cuda-docker.tar
就将上方的cuda-docker.tar包导入到本机环境中,之后执行docker run命令就可以启动docker镜像
1.2.9 docker login 登录registry server
# 登陆registry server; -e, --email="" Email; -p, --password="" Password; -u, --username="" Username
$docker login
1.2.10 【重点】docker build构建Dockerfile 镜像
(1)语法命令
docker build [OPTIONS] PATH | URL | -
(2)构建上下文
构建上下文是构建过程中的目录或路径,Docker 会从中获取文件以及构建时所需的资源(包括 Dockerfile)。常见的构建上下文有
- 当前目录 (
.):指定当前目录作为构建上下文。 - 路径
PATH:指定本地路径,作为构建上下文。 - URL:也可以使用 Git 仓库的 URL,指定一个远程 URL ,作为构建上下文
-:表示从标准输入读取 Dockerfile。
docker build https://github.com/myrepo/myapp.git
(3)常用选项及详细说明
| 短参数 | 长参数 | 描述 | 示例 |
|---|---|---|---|
-t |
--tag |
|
|
-f |
--file |
|
|
--build-arg |
用于在构建过程中传递参数。可以在 Dockerfile 中使用这些构建参数 |
|
|
--no-cache |
|
|
|
--pull |
|
|
|
-q |
--quiet |
|
|
--target |
用于指定多阶段构建中的构建目标阶段(Stage)。这在使用多阶段构建时非常有用 |
|
|
--rm |
默认情况下,Docker 在构建完成后会删除中间容器。如果不想删除中间容器,可以通过 --rm=false 来保持它们 |
|
|
--squash |
这个选项在 Docker 1.13 后提供,允许合并镜像的多个层(Layer)为一个单一的层,以减少最终镜像的大小 |
|
|
--no-cache |
不使用缓存来构建镜像。每个步骤都会被强制执行,即使之前已成功完成 |
|
|
-o |
用于设置构建的输出位置,输出格式可以是 type=docker 或 type=tar。例如,可以将构建的内容保存为 tar 文件 |
|
|
-c |
用于设定构建的并行程度。通常用于通过并行处理来加速构建过程 |
|
|
1.3 系统管理命令
1.3.1 docker info:显示Docker系统信息
1.3.2 docker version:查看Docker版本信息
魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。
更多推荐



所有评论(0)