欢迎来到站长天空!

其它服务器

当前位置: 主页 > 服务器 > 其它服务器

Docker 容器中镜像导出/导入

时间:2025-12-04 17:30:03|栏目:其它服务器|点击:

目录
  • 【容器】镜像导出/导入
    • 导出
    • 导入
      • 带标签
      • 不带标签,后期修改
  • 【仓库】镜像导出/导入
    • 导出
    • 导入
    • 导入(完整命令)

 

创建一个简单的Docker镜像
利用docker ps -a命令查看要导出的镜像。

docker save 这表示它处理的是镜像,通常用于在不同的 Docker 主机之间迁移 Docker image,离线环境下安装 Docker image
docker export 主要处理的是容器本身,‌通常用于快速备份或转移某个容器,或在需要将容器升级到新的版本之前,对其进行测试。

【容器】镜像导出/导入

导出

查看要导出的镜像

[root@localhost ~]# docker ps -a

docker export命令进行镜像导出。

[root@localhost ~]# docker export 418ae > Nginx-docker.tar

image

导入

带标签

利用 cat image.tar|docker import – image_name:tag 命令进行导入

# 导入时,带上标签  ----  名称和标签尽量和原镜像保持一致
[vipsoft@kafka1host docker]$ cat nginx-docker.tar | docker import  - nginx:1.20.1

image

不带标签,后期修改

[vipsoft@kafka1host docker]# ll
total 132428
-rw-r--r--. 1 vipsoft root 135605760 Aug 19 15:38 nginx-docker.tar
# docker import 导入,没有镜像名称和标签的
[vipsoft@kafka1host docker]# docker import nginx-docker.tar
sha256:be2f0bed014f5eaf8227e9849f03614944f85f2ac25e7ad261b39bef2799a03a
[vipsoft@kafka1host docker]# docker images
REPOSITORY                                            TAG       IMAGE ID       CREATED         SIZE
                                                    be2f0bed014f   5 minutes ago   131MB
nacos/nacos-server                                    v2.1.1    5ef6d98bd956   2 years ago     1.06GB
java                                                  8         d23bdf5b1b1b   7 years ago     643MB
# 使用 docker tag命令进行修改 ":" 前代表镜像名称,":"后代表镜像标签
[vipsoft@kafka1host docker]# docker tag be2f0bed nginx:1.21.1
[vipsoft@kafka1host docker]# docker images
REPOSITORY                                            TAG       IMAGE ID       CREATED         SIZE
nginx                                                 1.21.1    be2f0bed014f   7 minutes ago   131MB
nacos/nacos-server                                    v2.1.1    5ef6d98bd956   2 years ago     1.06GB
java                                                  8         d23bdf5b1b1b   7 years ago     643MB

利用docker import命令导入的镜像,镜像在仓中是没有镜像名称和标签的,可以使用docker tag命令进行修改。
image

【仓库】镜像导出/导入

导出

docker save -o nginx-vipsoft-docker.tar nginx:1.20.1
# nginx-docker.tar:代表导出镜像后的压缩名字,可以任意命名。
# -o:指定输出文件名,可以任意命名。
# nginx:1.20.1 :代表仓库中要导出的镜像名称。按仓库中实际名字为主。

导入

# docker load -i 镜像保存文件位置
docker load -i /home/vipsoft/docker/nginx-vipsoft-docker.tar

注:如果在某一个容器里安装了某些命令或配置,导出镜像时,一定要先把容器提交到镜像,否则导出的镜像再次导入新的docker中,你安装命令或配置会丢失。

如下所示,我在某一个容器里安装了查看网络的命令,但没有提交容器到镜像,导出后再次导入到其它docker环境后,执行ifconfig时报命令换不到:

docker commit 418ae48f5db8 nginx:1.20.1

导入(完整命令)

[root@localhost ~]# docker images | grep nginx
nginx                                                        1.20.1    c8d03f6b8b91   2 years ago     133MB
registry.baidubce.com/netrainpublic/nginx                    latest    90c072ff69fd   4 years ago     287MB
[root@localhost ~]# docker ps -a | grep nginx
418ae48f5db8   nginx:1.20.1           "/docker-entrypoint.…"   18 hours ago    Up 18 hours                 0.0.0.0:80->80/tcp, :::80->80/tcp   nginx
[root@localhost ~]# docker exec -it 418ae /bin/bash
root@418ae48f5db8:/# vi /usr/share/nginx/html/index.html
bash: vi: command not found
root@418ae48f5db8:/# exit
exit
# 容器中没有 vi 命令,将 index.html 复制到宿主机中进行修改
[root@localhost ~]# docker cp 418ae48:/usr/share/nginx/html/index.html /opt/index.html
[root@localhost ~]# vi /opt/index.html
# 将改好的文件 复制到容器中
[root@localhost ~]# docker cp  /opt/index.html 418ae48:/usr/share/nginx/html/index.html
# 进入容器,查看是否被修改
[root@localhost ~]# docker exec -it 418ae /bin/bash
root@418ae48f5db8:/# cat /usr/share/nginx/html/index.html



Welcome to nginx!




Welcome to nginx!

If you see this page, the nginx web server is successfully installed and working. Further configuration is required.

For online documentation and support please refer to nginx.org.
Commercial support is available at nginx.com.

Thank you for using nginx.

VipSoft 2024.08.20 #增加的内容 root@418ae48f5db8:/# exit [root@localhost ~]# docker images | grep nginx nginx 1.20.1 c8d03f6b8b91 2 years ago 133MB registry.baidubce.com/netrainpublic/nginx latest 90c072ff69fd 4 years ago 287MB [root@localhost ~]# docker ps -a | grep nginx 418ae48f5db8 nginx:1.20.1 "/docker-entrypoint.…" 18 hours ago Up 18 hours 0.0.0.0:80->80/tcp, :::80->80/tcp nginx # 将容器修改后的内容,提交到镜像 [root@localhost ~]# docker commit 418ae nginx:1.20.1 sha256:b532c001cdda870c5cf3c689d720b39571f160071671758ae899aed2870b8517 #生成新的镜像 b532... [root@localhost ~]# docker images | grep nginx nginx 1.20.1 b532c001cdda 7 seconds ago 133MB #生成新的镜像 b532... nginx c8d03f6b8b91 2 years ago 133MB registry.baidubce.com/netrainpublic/nginx latest 90c072ff69fd 4 years ago 287MB # 保存镜像 [root@localhost ~]# docker save -o nginx-vipsoft-docker.tar nginx:1.20.1 [root@localhost ~]# ll | grep nginx -rw-------. 1 root root 137402368 8月 20 09:38 nginx-vipsoft-docker.tar [root@localhost ~]#

目标机

[vipsoft@kafka1host docker]# docker images | grep nginx
# 加载保存的镜像
[vipsoft@kafka1host docker]# docker load -i /home/vipsoft/docker/nginx-vipsoft-docker.tar
e81bff2725db: Loading layer [==================================================>]  72.52MB/72.52MB
6662554e871b: Loading layer [==================================================>]   64.8MB/64.8MB
4edd8832c8e8: Loading layer [==================================================>]  3.072kB/3.072kB
0dcd28129664: Loading layer [==================================================>]  4.096kB/4.096kB
8ffde58510c5: Loading layer [==================================================>]  3.584kB/3.584kB
91117a05975b: Loading layer [==================================================>]  7.168kB/7.168kB
dd6582995144: Loading layer [==================================================>]  19.97kB/19.97kB
Loaded image: nginx:1.20.1
[vipsoft@kafka1host docker]# docker images | grep nginx
nginx                                                 1.20.1    b532c001cdda   22 minutes ago   133MB
# 运行 Nginx 镜像
[vipsoft@kafka1host docker]# docker run -d -p 80:80 --name nginx nginx:1.20.1
3d7e05768d372f8753882505313563be23fd594ad6bb2778fd49ff9cf47cecdb
[vipsoft@kafka1host docker]# docker ps -a | grep nginx
3d7e05768d37   nginx:1.20.1   "/docker-entrypoint.…"   10 seconds ago   Up 9 seconds   0.0.0.0:80->80/tcp, :::80->80/tcp   nginx
# 查看日志
[vipsoft@kafka1host docker]# docker logs --tail=100 -f nginx

image

上一篇:Linux 提权-SUID/SGID_1

栏    目:其它服务器

下一篇:Docker不同宿主机网络打通

本文标题:Docker 容器中镜像导出/导入

本文地址:https://zz.feitang.co/server/28417.html

广告投放 | 联系我们 | 版权申明

申明:本站所有的文章、图片、评论等,均由网友发表或上传并维护或收集自网络,属个人行为,与本站立场无关。

如果侵犯了您的权利,请与我们联系,我们将在24小时内进行处理、任何非本站因素导致的法律后果,本站均不负任何责任。

联系QQ:257218569 | 邮箱:257218569@qq.com

Copyright © 2018-2026 站长天空 版权所有 Powered by EyouCms冀ICP备14023439号