Docker基础入门:镜像、容器导入导出与私有仓库搭建

Docker基础入门:镜像、容器导入导出与私有仓库搭建,第1张


The Begin点点关注,收藏不迷路

Docker基础入门:镜像、容器导入导出与私有仓库搭建,在这里插入图片描述,第2张

一、 Docker镜像、容器的导入和导出

1.1、Docker镜像的导出

docker save [options] images [images...]docker save > uu.tar ubuntu:latest 或 docker save ubuntu:latest > uu.tar

1.2、Docker镜像的载入

#在镜像包所在的文件夹下 *** 作 docker load --input uu.tar #也可以使用 docker load -i uu.tar 或 docker load < uu.tar

1.3、Docker容器的导出

docker export 容器id/名称 > 导出的路径docker export 220aee82cfea > -o mysql.tar.gz

1.4、Docker容器的导入

容器的导入 docker import - 镜像用户/镜像名:镜像版本号cat mysql.tar.gz | docker import - test/mysql:5.7

二、 镜像和容器导出和导入的区别:

1.镜像导入 是复制的过程。
2.容器导入 是将当前容器 变成一个新的镜像。

save 和 export区别:

1)save 保存镜像所有的信息-包含历史信息。
2)export 只导出当前的信息。

首先,两者的 *** 作对象不同。docker save是将一个镜像保存为一个tar包,而docker export是将一个容器快照保存为一个tar包。

然后,docker export导出的容器快照文件将丢弃所有的历史记录和元数据信息,即仅保存容器当时的快照状态;而docker save保存的镜像存储文件将保存完整记录,体积也要大。

三、commit *** 作_本地镜像发布到阿里云

3.1、commit *** 作有关步骤

提交容器副本成为新的镜像。

docker commit -m="提交的信息" -a="作者" 容器ID 要创建的目标镜像名:[标签名]

本地镜像发布到阿里云:

  1. 登录阿里云Docker Registry

Docker基础入门:镜像、容器导入导出与私有仓库搭建,在这里插入图片描述,第3张

$ docker login --username=aliyun075054**** registry.cn-hangzhou.aliyuncs.com 用于登录的用户名为阿里云账号全名,密码为开通服务时设置的密码。 您可以在访问凭证页面修改凭证密码。

  1. 从Registry中拉取镜像

$ docker pull registry.cn-hangzhou.aliyuncs.com/zhaohaibao/centos:[镜像版本号]

  1. 将镜像推送到Registry

$ docker login --username=aliyun075054**** registry.cn-hangzhou.aliyuncs.com $ docker tag [ImageId] registry.cn-hangzhou.aliyuncs.com/zhaohaibao/centos:[镜像版本号] $ docker push registry.cn-hangzhou.aliyuncs.com/zhaohaibao/centos:[镜像版本号] 请根据实际镜像信息替换示例中的[ImageId]和[镜像版本号]参数。

  1. 选择合适的镜像仓库地址

从ECS推送镜像时,可以选择使用镜像仓库内网地址。推送速度将得到提升并且将不会损耗您的公网流量。 如果您使用的机器位于VPC网络,请使用 registry-vpc.cn-hangzhou.aliyuncs.com 作为Registry的域名登录。

  1. 示例

使用"docker tag"命令重命名镜像,并将它通过专有网络地址推送至Registry。 $ docker images REPOSITORY TAG IMAGE ID CREATED VIRTUAL SIZE registry.aliyuncs.com/acs/agent 0.7-dfb6816 37bb9c63c8b2 7 days ago 37.89 MB $ docker tag 37bb9c63c8b2 registry-vpc.cn-hangzhou.aliyuncs.com/acs/agent:0.7-dfb6816 使用 "docker push" 命令将该镜像推送至远程。 $ docker push registry-vpc.cn-hangzhou.aliyuncs.com/acs/agent:0.7-dfb6816

3.2、使用" docker push" 命令将centos镜像提交至阿里云

####将centos镜像IMAGE ID (5d0da3dc9764)提交至阿里云 [root@zyl-server ~]# docker images REPOSITORY TAG IMAGE ID CREATED SIZE nginx latest 605c77e624dd 19 months ago 141MB hello-world latest feb5d9fea6a5 23 months ago 13.3kB centos latest 5d0da3dc9764 23 months ago 231MB [root@zyl-server ~]# docker tag 5d0da3dc9764 registry.cn-hangzhou.aliyuncs.com/zhaohaibao/centos:7.9 [root@zyl-server ~]# docker push registry.cn-hangzhou.aliyuncs.com/zhaohaibao/centos:7.9 The push refers to repository [registry.cn-hangzhou.aliyuncs.com/zhaohaibao/centos] 74ddd0ec08fa: Layer already exists 7.9: digest: sha256:a1801b843b1bfaf77c501e7a6d3f709401a1e0c83863037fa3aab063a7fdb9dc size: 529 [root@zyl-server ~]#

Docker基础入门:镜像、容器导入导出与私有仓库搭建,在这里插入图片描述,第4张

Docker基础入门:镜像、容器导入导出与私有仓库搭建,在这里插入图片描述,第5张

四、Docker私有仓库搭建(registry)

4.1、下载镜像

[root@zyl-server ~]# docker pull registry Using default tag: latest latest: Pulling from library/registry 79e9f2f55bf5: Pull complete 0d96da54f60b: Pull complete 5b27040df4a2: Pull complete e2ead8259a04: Pull complete 3790aef225b9: Pull complete Digest: sha256:169211e20e2f2d5d115674681eb79d21a217b296b43374b8e39f97fcf866b375 Status: Downloaded newer image for registry:latest docker.io/library/registry:latest [root@zyl-server ~]#

4.2、查看

[root@zyl-server ~]# docker images

Docker基础入门:镜像、容器导入导出与私有仓库搭建,在这里插入图片描述,第6张

4.3、运行 registry

docker run -d -p 5000:5000 -v /zyl/myregistry/:/tmp/registry --privileged=true registry 默认情况,仓库被创建在容器的/var/lib/registry目录下,建议自行用容器数据卷映射,方便宿主机联调[root@zyl-server ~]# docker run -d -p 5000:5000 -v /zyl/myregistry/:/tmp/registry --privileged=true registry 4c3babd80e86c8e2b21f4ad1dffeec5ca42270e5d467bed2a93839e323bcd5c6 [root@zyl-server ~]# docker ps CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 4c3babd80e86 registry "/entrypoint.sh /etc…" 10 seconds ago Up 8 seconds 0.0.0.0:5000->5000/tcp, :::5000->5000/tcp amazing_rhodes 780530eaf656 centos "/bin/bash" About an hour ago Up About an hour wizardly_dhawan 95420eae9ad9 nginx "/docker-entrypoint.…" About an hour ago Up About an hour 80/tcp great_pasteur [root@zyl-server ~]#

Docker基础入门:镜像、容器导入导出与私有仓库搭建,在这里插入图片描述,第7张
浏览器访问http://IP:5000/v2,显示“{}” 说明registry运行正常。

Docker基础入门:镜像、容器导入导出与私有仓库搭建,在这里插入图片描述,第8张

4.4、测试上传镜像到Registry

1、提交centos容器副本成为新的镜像,Tag----》1.2 。

[root@zyl-server ~]# docker ps CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 4c3babd80e86 registry "/entrypoint.sh /etc…" 5 minutes ago Up 5 minutes 0.0.0.0:5000->5000/tcp, :::5000->5000/tcp amazing_rhodes 780530eaf656 centos "/bin/bash" About an hour ago Up About an hour wizardly_dhawan 95420eae9ad9 nginx "/docker-entrypoint.…" 2 hours ago Up 2 hours 80/tcp great_pasteur [root@zyl-server ~]# docker commit -m="centos" -a="zyl" 780530eaf656 centos:1.2 sha256:d0a52e21dd65f98f7cd106d996e97e1b3e709431e4bb80cd2e3599953fa95fe6 [root@zyl-server ~]# docker images REPOSITORY TAG IMAGE ID CREATED SIZE centos 1.2 d0a52e21dd65 20 seconds ago 231MB nginx latest 605c77e624dd 19 months ago 141MB registry latest b8604a3fe854 21 months ago 26.2MB hello-world latest feb5d9fea6a5 23 months ago 13.3kB centos latest 5d0da3dc9764 23 months ago 231MB registry.cn-hangzhou.aliyuncs.com/zhaohaibao/centos 7.9 5d0da3dc9764 23 months ago 231MB [root@zyl-server ~]#

Docker基础入门:镜像、容器导入导出与私有仓库搭建,在这里插入图片描述,第9张

2、查看当前私有仓库镜像(空)

[root@zyl-server ~]# curl -XGET http://192.168.234.10:5000/v2/_catalog {"repositories":[]} [root@zyl-server ~]#

3、将主机的registry镜像命名为符合仓库要求的格式。

registry_url:port/ImageName:tag

docker tag centos:1.2 192.168.234.10:5000/centos:1.2

Docker基础入门:镜像、容器导入导出与私有仓库搭建,在这里插入图片描述,第10张

4、上传centos镜像到Registry仓库

docker push 192.168.234.10:5000/centos:1.2

push失败:

[root@zyl-server ~]# docker push 192.168.234.10:5000/centos:1.2 The push refers to repository [192.168.234.10:5000/centos] Get "https://192.168.234.10:5000/v2/": http: server gave HTTP response to HTTPS client [root@zyl-server ~]#

解决:

这是因为我们启动的registry服务不是安全可信赖的。这时需要修改客户端docker的配置文件vi /etc/docker/daemon.json,添加下面的内容(insecure-registries服务地址):{ ""registry-mirrors": ["https://XXX.mirror.aliyuncs.com"], "insecure-registries": ["192.168.234.10:5000"] } "registry-mirrors": ["https://XXX.mirror.aliyuncs.com"] 是阿里云代理的Registry Hub仓库的地址,可以加快国内访问Registry Hub仓库的速度。 修改好之后需要重启Docker服务才能生效,执行命令:systemctl restart docker ,再push即可.

Docker基础入门:镜像、容器导入导出与私有仓库搭建,在这里插入图片描述,第11张
5、再次推送

[root@zyl-server ~]# docker push 192.168.234.10:5000/centos:1.2 The push refers to repository [192.168.234.10:5000/centos] Get "http://192.168.234.10:5000/v2/": dial tcp 192.168.234.10:5000: connect: connection refused [root@zyl-server ~]# docker ps CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES [root@zyl-server ~]#

报错:

connect: connection refused

解决:docker ps 查看发现没有运行的镜像实例,重新运行 registry。

docker run -d -p 5000:5000 -v /zyl/myregistry/:/tmp/registry --privileged=true registry### pushdocker push 192.168.234.10:5000/centos:1.2

Docker基础入门:镜像、容器导入导出与私有仓库搭建,在这里插入图片描述,第12张

6、检查–查看当前私有仓库镜像

[root@zyl-server ~]# curl -XGET http://192.168.234.10:5000/v2/_catalog {"repositories":["centos"]} [root@zyl-server ~]#

Docker基础入门:镜像、容器导入导出与私有仓库搭建,在这里插入图片描述,第13张
Docker基础入门:镜像、容器导入导出与私有仓库搭建,在这里插入图片描述,第14张


至此,我们的Registry私有仓库搭建完成,如果在今后中要使用,可以使用命令:

docker pull 192.168.234.10:5000/centos:1.2


The End点点关注,收藏不迷路

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/13518247.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2024-01-11
下一篇 2024-01-16

发表评论

登录后才能评论

评论列表(0条)

保存