创建一个简单的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 容器中镜像导出/导入的更多相关文章

  1. docker容器和镜像的导入和导出

    镜像的保存 [root@wxtest1607 ~]# docker images REPOSITORY TAG IMAGE ID CREATED SIZE tomcat8 3.0 90457edaf6 ...

  2. docker容器中oracle数据库导出dmp文件

    Oracle数据库安装在docker容器中 1首先查看容器 docker ps 2进入oracle容器 docker exec -it 7f0f3f2d4f88 /bin/bash 3导出整个库:这个 ...

  3. Docker容器中运行ASP.NET Core

    在Linux和Windows的Docker容器中运行ASP.NET Core 译者序:其实过去这周我都在研究这方面的内容,结果周末有事没有来得及总结为文章,Scott Hanselman就捷足先登了. ...

  4. 在 docker 容器中捕获信号

    我们可能都使用过 docker stop 命令来停止正在运行的容器,有时可能会使用 docker kill 命令强行关闭容器或者把某个信号传递给容器中的进程.这些操作的本质都是通过从主机向容器发送信号 ...

  5. Docker容器中开始.NETCore之路

    一.引言 开始写这篇博客前,已经尝试练习过好多次Docker环境安装,.Net Core环境安装了,在这里替腾讯云做一个推广,假如我们想学习.练手.net core 或是Docker却苦于没有开发环境 ...

  6. Docker容器中开始.Net Core之路

    开始写这篇博客前,已经尝试练习过好多次Docker环境安装,.Net Core环境安装了,在这里替腾讯云做一个推广,假如我们想学习.练手.net core 或是Docker却苦于没有开发环境,服务器也 ...

  7. [转]图解Docker容器和镜像

    本文转自:https://www.cnblogs.com/wangqiaomei/p/5818636.html 图解Docker容器和镜像 这篇文章希望能够帮助读者深入理解Docker的命令,还有容器 ...

  8. Docker容器中找不到vim命令

    docker容器中,有的并未安装vi和vim,输入命令vim,会提示vim: command not found(如下图).此时我们就要安装vi命令 执行命令:apt-get update apt-g ...

  9. docker容器中Postgresql 数据库备份

    查看运行的容器: docker ps 进入目标容器: docker exec -u root -it 容器名 /bin/bash docker 中,以root用户,创建备份目录,直接执行如下命令, p ...

  10. 图解Docker容器和镜像

    图解Docker容器和镜像 这篇文章希望能够帮助读者深入理解Docker的命令,还有容器(container)和镜像(image)之间的区别,并深入探讨容器和运行中的容器之间的区别. 当我对Docke ...

随机推荐

  1. 【全球首发】双核Cortex-A7@1.2GHz,仅99元起?含税?哇!!

  2. joigsc2022_e 题解

    翻译 有长度为 \(n\) 的序列 \(a\) 和 \(L\),你需要对于每个 \(x \in[1,n]\) 求出若把第 \(x\) 个数到第 \(n\) 个数依次装入容量为 \(L\) 的箱子中(每 ...

  3. frp内网穿透:基于centos8 云服务器和debian12客户端服务器

    前言 入了一台本地工控机盒子,刷成了debian12系统,性能比云服务器要好一点,现在想要远程访问这台盒子,但是盒子又没有公网地址,所以想通过内网穿透的方式,通过云服务器转发请求实现内网穿透.原来体验 ...

  4. 详解Web应用安全系列(10)文件上传漏洞

    文件上传漏洞(File Upload Vulnerabilities)是Web攻击中常见的一种安全漏洞,它允许攻击者上传并执行恶意文件,从而可能对Web服务器造成严重的安全威胁. 一.定义与原理 文件 ...

  5. Pycharm中开发vue element项目时eslint的安装和使用

    在PyCharm中使用ESLint对Element UI进行语法检查和代码风格检查的配置步骤如下: 确保你的项目已经配置了ESLint并且可以正常运行.如果尚未安装ESLint,请先使用npm(或者你 ...

  6. 使用Cloudflare Worker加速docker镜像

    前言 开发者越来越难了,现在国内的docker镜像也都️了,没有镜像要使用docker太难了,代理又很慢 现在就只剩下自建镜像的办法了 GitHub上有开源项目可以快速搭建自己的镜像库,不过还是有点麻 ...

  7. C#封装HttpClient工具类库(.NET4.5以上)

    1.Json字符串实体转换扩展方法,依赖Json.Net包 /// <summary> /// Json扩展方法 /// </summary> public static cl ...

  8. TIER 1: Responder

    TIER 1: Responder Active Directory Active Directory(AD)是由微软开发的目录服务,用于在网络环境中管理和组织用户.计算机.应用程序和其他资源.它是 ...

  9. 题解:CF1957A Stickogon

    CF1957A Stickogon 题意 题意十分简单,给予你 \(n\) 个棍子,问这些棍子可以构成多少个正多边形. 思路 说是可以构成多少个正多边形,所以我们可以用边最少的正多边形等边三角形来计数 ...

  10. 题解:P10320 勇气(Courage)

    P10320 勇气(Courage) 推导过程 本题是一道数学题,重点是如何推导出正确式子. 首先,先特判几个特殊点: 当 \(n>=2\) 且 \(x=2\) 时,是不存在解的,战斗力无论何时 ...