Docker 容器中镜像导出/导入
- 【容器】镜像导出/导入
- 导出
- 导入
- 带标签
- 不带标签,后期修改
- 【仓库】镜像导出/导入
- 导出
- 导入
- 导入(完整命令)
创建一个简单的Docker镜像
利用docker ps -a命令查看要导出的镜像。
docker save 这表示它处理的是镜像,通常用于在不同的 Docker 主机之间迁移 Docker image,离线环境下安装 Docker imagedocker export 主要处理的是容器本身,通常用于快速备份或转移某个容器,或在需要将容器升级到新的版本之前,对其进行测试。
【容器】镜像导出/导入
导出
查看要导出的镜像
[root@localhost ~]# docker ps -a
docker export命令进行镜像导出。
[root@localhost ~]# docker export 418ae > Nginx-docker.tar

导入
带标签
利用 cat image.tar|docker import – image_name:tag 命令进行导入
# 导入时,带上标签 ---- 名称和标签尽量和原镜像保持一致
[vipsoft@kafka1host docker]$ cat nginx-docker.tar | docker import - nginx:1.20.1

不带标签,后期修改
[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命令进行修改。
【仓库】镜像导出/导入
导出
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

您可能感兴趣的文章
- 01-07Tomcat部署Bolo动态博客
- 01-07图文详解nginx日志切割的实现
- 01-07如何解决swarm docker 端口不通问题
- 01-07详解nginx location指令
- 01-07如何解决docker http 500错误问题
- 01-07windows server 2008安装配置DNS服务器
- 01-07Linux上搭载Nginx负载均衡配置使用案例详解
- 01-07NGINX 权限控制文件预览和下载的实现原理
- 01-07Nginx防盗链与服务优化配置的全过程
- 01-07使用 Apache 反向代理的设置技巧


阅读排行
推荐教程
- 12-23linux中ftp无法访问怎么办
- 12-11docker存储目录迁移示例教程
- 12-10docker start启动容器后仍然exit状态的解决
- 12-10Linux下如何安装Logstash
- 01-05Shell脚本去重的几种方法实例
- 12-22kvm虚拟机配置NAT端口转发的实现方法
- 12-19Zabbix SAML SSO 登录绕过漏洞的操作流程
- 12-15Docker-Compose搭建Spark集群的实现方法
- 12-14Docker Desktop无法正常启动解决(failed to start...)
- 12-14k8s 与docker空间使用分析与清理方法




