Docker 容器中镜像导出/导入
创建一个简单的Docker镜像
利用docker ps -a命令查看要导出的镜像。
【容器】镜像导出/导入
导出
查看要导出的镜像
[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
<none> <none> 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
<!DOCTYPE html>
<html>
<head>
<title>Welcome to nginx!</title>
<style>
body {
width: 35em;
margin: 0 auto;
font-family: Tahoma, Verdana, Arial, sans-serif;
}
</style>
</head>
<body>
<h1>Welcome to nginx!</h1>
<p>If you see this page, the nginx web server is successfully installed and
working. Further configuration is required.</p>
<p>For online documentation and support please refer to
<a href="http://nginx.org/">nginx.org</a>.<br/>
Commercial support is available at
<a href="http://nginx.com/">nginx.com</a>.</p>
<p><em>Thank you for using nginx.</em></p>
<b>VipSoft 2024.08.20</b> #增加的内容
</body>
</html>
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 <none> 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

Docker 容器中镜像导出/导入的更多相关文章
- docker容器和镜像的导入和导出
镜像的保存 [root@wxtest1607 ~]# docker images REPOSITORY TAG IMAGE ID CREATED SIZE tomcat8 3.0 90457edaf6 ...
- docker容器中oracle数据库导出dmp文件
Oracle数据库安装在docker容器中 1首先查看容器 docker ps 2进入oracle容器 docker exec -it 7f0f3f2d4f88 /bin/bash 3导出整个库:这个 ...
- Docker容器中运行ASP.NET Core
在Linux和Windows的Docker容器中运行ASP.NET Core 译者序:其实过去这周我都在研究这方面的内容,结果周末有事没有来得及总结为文章,Scott Hanselman就捷足先登了. ...
- 在 docker 容器中捕获信号
我们可能都使用过 docker stop 命令来停止正在运行的容器,有时可能会使用 docker kill 命令强行关闭容器或者把某个信号传递给容器中的进程.这些操作的本质都是通过从主机向容器发送信号 ...
- Docker容器中开始.NETCore之路
一.引言 开始写这篇博客前,已经尝试练习过好多次Docker环境安装,.Net Core环境安装了,在这里替腾讯云做一个推广,假如我们想学习.练手.net core 或是Docker却苦于没有开发环境 ...
- Docker容器中开始.Net Core之路
开始写这篇博客前,已经尝试练习过好多次Docker环境安装,.Net Core环境安装了,在这里替腾讯云做一个推广,假如我们想学习.练手.net core 或是Docker却苦于没有开发环境,服务器也 ...
- [转]图解Docker容器和镜像
本文转自:https://www.cnblogs.com/wangqiaomei/p/5818636.html 图解Docker容器和镜像 这篇文章希望能够帮助读者深入理解Docker的命令,还有容器 ...
- Docker容器中找不到vim命令
docker容器中,有的并未安装vi和vim,输入命令vim,会提示vim: command not found(如下图).此时我们就要安装vi命令 执行命令:apt-get update apt-g ...
- docker容器中Postgresql 数据库备份
查看运行的容器: docker ps 进入目标容器: docker exec -u root -it 容器名 /bin/bash docker 中,以root用户,创建备份目录,直接执行如下命令, p ...
- 图解Docker容器和镜像
图解Docker容器和镜像 这篇文章希望能够帮助读者深入理解Docker的命令,还有容器(container)和镜像(image)之间的区别,并深入探讨容器和运行中的容器之间的区别. 当我对Docke ...
随机推荐
- OOP课第三阶段总结
OOP课第三阶段总结 前言: 我想说的第一句是:"我感受到了设计上的极大缺陷",从一开始,我完全就忽略了引脚的存在.因为在第二阶段中,家电模拟大作业一.二在不需要考虑引脚的情况下也 ...
- QChart 移动 缩放 加速
qchart 和 qchartview 的运用的例子 qchart 存在一些问题 一般用在2000个点以下的场景,点多了,就会卡. 解决的办法就是 开启opengl加速. 但这时,对qchartvie ...
- CentOS7源码安装Python3
一.先安装python3所依赖的软件包,非常重要(否则可能会出现python3安装成功,却缺少相应的pip) [root@centos src]# yum groupinstall "Dev ...
- Java中字符串去除空格
1. str.trim(); 去掉首尾空格 2. str.replace(" ", ""); 去掉所有空格,包括首尾.中间 String str = " ...
- 洛谷P2864
来一发在洛谷的第一篇题解 解析 首先从原点出发回到原点会形成一个环 要计算在环上的路程,首先我们要破环 利用建墙法破环 可以选取任意一个边缘上的树,往上或者往下或者往左往右建立一堵墙'|' 这样利用b ...
- 解决方案 | Python中安装pix2tex latex ocr出现报错Cannot mix incompatible Qt library (6.6.2) with this library (6.7.2)
一.问题 Python中安装pix2tex latex ocr出现报错Cannot mix incompatible Qt library (6.6.2) with this library (6.7 ...
- SparkSQL on K8s 在网易传媒的落地实践
作者:鲁成祥 易顺 随着云原生技术的发展和成熟,大数据基础设施积极拥抱云原生是业内发展的一大趋势.网易传媒在 2021 年成功将 SparkSQL 部署到了 K8s 集群,并实现与部分在线业务的混合部 ...
- TIER 2: Oopsie
TIER 2: Oopsie Web 渗透 此次靶机结合前面知识,非常简单: nmap 扫描,发现 22 和 80 端口开放 服务 80 的 HTTP 服务 之后使用继续 Web 渗透: 使用 Wap ...
- 使用 Node.js 和 Express 构建基本的 Web API
使用 Node.js 和 Express 构建 Web API Web API Node.js 中的 http 模块 创建 Express 框架 Web 应用程序 Express 框架 Express ...
- php环境,性能优化
根据宝塔的推荐进行参数修改 我的是8G内存,修改成4G内存 下面是备份:修改前的 ; Start a new pool named 'www'.; the variable $pool can be ...