专注高密网站建设,在线crm客户关系管理,广州建网站定制,最新新闻热点事件摘抄11月Docker基础入门#xff1a;镜像导入导出与私有仓库搭建 一、 Docker镜像、容器的导入和导出1.1、Docker镜像的导出1.2、Docker镜像的载入1.3、Docker容器的导出1.4、Docker容器的导入 二、 镜像和容器导出和导入的区别:三、commit操作_本地镜像发布到阿里云3.1、commit操作有关… Docker基础入门镜像导入导出与私有仓库搭建 一、 Docker镜像、容器的导入和导出1.1、Docker镜像的导出1.2、Docker镜像的载入1.3、Docker容器的导出1.4、Docker容器的导入 二、 镜像和容器导出和导入的区别:三、commit操作_本地镜像发布到阿里云3.1、commit操作有关步骤3.2、使用 docker push 命令将centos镜像提交至阿里云 四、Docker私有仓库搭建registry4.1、下载镜像4.2、查看4.3、运行 registry4.4、测试上传镜像到Registry The Begin点点关注收藏不迷路 一、 Docker镜像、容器的导入和导出
1.1、Docker镜像的导出
docker save [options] images [images...]docker save uu.tar ubuntu:latest
或
docker save ubuntu:latest uu.tar1.2、Docker镜像的载入
#在镜像包所在的文件夹下操作
docker load --input uu.tar
#也可以使用
docker load -i uu.tar
或
docker load uu.tar1.3、Docker容器的导出
docker export 容器id/名称 导出的路径docker export 220aee82cfea -o mysql.tar.gz1.4、Docker容器的导入
容器的导入
docker import - 镜像用户/镜像名镜像版本号cat mysql.tar.gz | docker import - test/mysql:5.7二、 镜像和容器导出和导入的区别: 1.镜像导入 是复制的过程。 2.容器导入 是将当前容器 变成一个新的镜像。 save 和 export区别 1save 保存镜像所有的信息-包含历史信息。 2export 只导出当前的信息。 首先两者的操作对象不同。docker save是将一个镜像保存为一个tar包而docker export是将一个容器快照保存为一个tar包。 然后docker export导出的容器快照文件将丢弃所有的历史记录和元数据信息即仅保存容器当时的快照状态而docker save保存的镜像存储文件将保存完整记录体积也要大。 三、commit操作_本地镜像发布到阿里云
3.1、commit操作有关步骤
提交容器副本成为新的镜像。
docker commit -m提交的信息 -a作者 容器ID 要创建的目标镜像名[标签名]本地镜像发布到阿里云
登录阿里云Docker Registry $ docker login --usernamealiyun075054**** registry.cn-hangzhou.aliyuncs.com
用于登录的用户名为阿里云账号全名密码为开通服务时设置的密码。
您可以在访问凭证页面修改凭证密码。从Registry中拉取镜像
$ docker pull registry.cn-hangzhou.aliyuncs.com/zhaohaibao/centos:[镜像版本号]将镜像推送到Registry
$ docker login --usernamealiyun075054**** 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]和[镜像版本号]参数。选择合适的镜像仓库地址
从ECS推送镜像时可以选择使用镜像仓库内网地址。推送速度将得到提升并且将不会损耗您的公网流量。
如果您使用的机器位于VPC网络请使用 registry-vpc.cn-hangzhou.aliyuncs.com 作为Registry的域名登录。示例
使用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-dfb68163.2、使用 docker push 命令将centos镜像提交至阿里云
####将centos镜像IMAGE ID 5d0da3dc9764提交至阿里云
[rootzyl-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
[rootzyl-server ~]# docker tag 5d0da3dc9764 registry.cn-hangzhou.aliyuncs.com/zhaohaibao/centos:7.9
[rootzyl-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
[rootzyl-server ~]# 四、Docker私有仓库搭建registry
4.1、下载镜像
[rootzyl-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
[rootzyl-server ~]#
4.2、查看
[rootzyl-server ~]# docker images4.3、运行 registry
docker run -d -p 5000:5000 -v /zyl/myregistry/:/tmp/registry --privilegedtrue registry
默认情况仓库被创建在容器的/var/lib/registry目录下建议自行用容器数据卷映射方便宿主机联调[rootzyl-server ~]# docker run -d -p 5000:5000 -v /zyl/myregistry/:/tmp/registry --privilegedtrue registry
4c3babd80e86c8e2b21f4ad1dffeec5ca42270e5d467bed2a93839e323bcd5c6
[rootzyl-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
[rootzyl-server ~]# 浏览器访问http://IP:5000/v2显示“{}” 说明registry运行正常。 4.4、测试上传镜像到Registry
1、提交centos容器副本成为新的镜像Tag----》1.2 。
[rootzyl-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
[rootzyl-server ~]# docker commit -mcentos -azyl 780530eaf656 centos:1.2
sha256:d0a52e21dd65f98f7cd106d996e97e1b3e709431e4bb80cd2e3599953fa95fe6
[rootzyl-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
[rootzyl-server ~]# 2、查看当前私有仓库镜像空
[rootzyl-server ~]# curl -XGET http://192.168.234.10:5000/v2/_catalog
{repositories:[]}
[rootzyl-server ~]# 3、将主机的registry镜像命名为符合仓库要求的格式。registry_url:port/ImageName:tag
docker tag centos:1.2 192.168.234.10:5000/centos:1.24、上传centos镜像到Registry仓库
docker push 192.168.234.10:5000/centos:1.2push失败
[rootzyl-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
[rootzyl-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即可.5、再次推送
[rootzyl-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
[rootzyl-server ~]# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
[rootzyl-server ~]# 报错:connect: connection refused
解决docker ps 查看发现没有运行的镜像实例重新运行 registry。
docker run -d -p 5000:5000 -v /zyl/myregistry/:/tmp/registry --privilegedtrue registry### pushdocker push 192.168.234.10:5000/centos:1.26、检查–查看当前私有仓库镜像
[rootzyl-server ~]# curl -XGET http://192.168.234.10:5000/v2/_catalog
{repositories:[centos]}
[rootzyl-server ~]# 至此我们的Registry私有仓库搭建完成如果在今后中要使用可以使用命令
docker pull 192.168.234.10:5000/centos:1.2The End点点关注收藏不迷路