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

这篇具有很好参考价值的文章主要介绍了Docker基础入门:镜像、容器导入导出与私有仓库搭建。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。


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

Docker基础入门:镜像、容器导入导出与私有仓库搭建,容器化与编排技术深度解析,docker,容器,运维,Docker基础入门,镜像、容器导入导出,私有仓库搭建

一、 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基础入门:镜像、容器导入导出与私有仓库搭建,容器化与编排技术深度解析,docker,容器,运维,Docker基础入门,镜像、容器导入导出,私有仓库搭建

$ 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基础入门:镜像、容器导入导出与私有仓库搭建,容器化与编排技术深度解析,docker,容器,运维,Docker基础入门,镜像、容器导入导出,私有仓库搭建

Docker基础入门:镜像、容器导入导出与私有仓库搭建,容器化与编排技术深度解析,docker,容器,运维,Docker基础入门,镜像、容器导入导出,私有仓库搭建

四、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基础入门:镜像、容器导入导出与私有仓库搭建,容器化与编排技术深度解析,docker,容器,运维,Docker基础入门,镜像、容器导入导出,私有仓库搭建

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基础入门:镜像、容器导入导出与私有仓库搭建,容器化与编排技术深度解析,docker,容器,运维,Docker基础入门,镜像、容器导入导出,私有仓库搭建
浏览器访问http://IP:5000/v2,显示“{}” 说明registry运行正常。

Docker基础入门:镜像、容器导入导出与私有仓库搭建,容器化与编排技术深度解析,docker,容器,运维,Docker基础入门,镜像、容器导入导出,私有仓库搭建

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基础入门:镜像、容器导入导出与私有仓库搭建,容器化与编排技术深度解析,docker,容器,运维,Docker基础入门,镜像、容器导入导出,私有仓库搭建

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基础入门:镜像、容器导入导出与私有仓库搭建,容器化与编排技术深度解析,docker,容器,运维,Docker基础入门,镜像、容器导入导出,私有仓库搭建

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基础入门:镜像、容器导入导出与私有仓库搭建,容器化与编排技术深度解析,docker,容器,运维,Docker基础入门,镜像、容器导入导出,私有仓库搭建
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

### push

docker push 192.168.234.10:5000/centos:1.2

Docker基础入门:镜像、容器导入导出与私有仓库搭建,容器化与编排技术深度解析,docker,容器,运维,Docker基础入门,镜像、容器导入导出,私有仓库搭建

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

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

Docker基础入门:镜像、容器导入导出与私有仓库搭建,容器化与编排技术深度解析,docker,容器,运维,Docker基础入门,镜像、容器导入导出,私有仓库搭建
Docker基础入门:镜像、容器导入导出与私有仓库搭建,容器化与编排技术深度解析,docker,容器,运维,Docker基础入门,镜像、容器导入导出,私有仓库搭建


至此,我们的Registry私有仓库搭建完成,如果在今后中要使用,可以使用命令:文章来源地址https://www.toymoban.com/news/detail-652903.html

docker pull 192.168.234.10:5000/centos:1.2

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

到了这里,关于Docker基础入门:镜像、容器导入导出与私有仓库搭建的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Docker 基础实战:环境搭建、容器、仓库、镜像

    可以使用 docker help 或者 man docker-run 来获取完整的 Docker 命令列表,本文只介绍一些常用的命令与参数。 考虑到安装流程过于繁琐,在 CentOS 中,可以使用官方提供的脚本来快速安装 Docker: 可以从 https://get.docker.com/ 查看支持的操作系统。 当安装完毕后,设置开机自启动 Doc

    2024年02月16日
    浏览(35)
  • Docker学习入门(二):常用软件安装、掌握Docker迁移与备份、运用Dockerfile编写创建容器的脚本、搭建与使用docker私有仓库;

    Docker的学习目标: 4.掌握Tomcat Nginx等软件的常用的安装 5.掌握Docker迁移与备份相关命令 6.能够运用Dockerfile编写创建容器的脚本 7.能够搭建与使用docker私有仓库 8.学习总结 1.MYSQL的部署     (1)拉取mysql镜像          docker pull centos/mysql-57-centos7               (2)创建容

    2024年02月21日
    浏览(33)
  • 容器编排学习(二)镜像制作和私有仓库介绍

    commit的局限 很容易制作简单的镜像,但碰到复杂的情况就十分不方便例如碰到下面的情况 需要设置默认的启动命令 需要设置环境变量 需要指定镜像开放某些特定的端口 Dockerfile就是解决这些问题的方法 Dockerfile是一种更强大的镜像制作方式 编写类似脚本的 Dockerfile 文件,通

    2024年02月09日
    浏览(33)
  • Docker -- 镜像仓库(搭建私有镜像仓库、向镜像仓库推送镜像、从镜像仓库拉取镜像)

    搭建镜像仓库可以基于Docker官方提供的DockerRegistry来实现。 官网地址 Docker 官方的 Docker Registry 是一个基础版本的 Docker 镜像仓库,具备仓库管理的完整功能,但是没有图形化界面。 搭建方式比较简单,命令如下: 命令中挂载了一个数据卷 registry-data 到容器内的 /var/lib/regist

    2024年02月04日
    浏览(65)
  • docker容器:本地私有仓库、harbor私有仓库部署与管理

    目录 一、本地私有仓库 1、本地私有仓库简介 2、搭建本地私有仓库 3、容器重启策略介绍 二、harbor私有仓库部署与管理 1、什么是harbor 2、Harbor的特性 3、Harbor的构成 4、harbor部署及配置 ①部署docker-compose ②部署Harbor服务 ③登录创建项目 ④登录仓库并上传镜像 5、客户端测试

    2024年02月04日
    浏览(40)
  • Docker-搭建私有镜像仓库

      镜像仓库(Docker Registry)有公共的和私有的两种形式:    公共仓库 :例如Docker官方的Docker Hub,国内也有一些云服务商提供类似于Docker Hub的公开服务,比如网易云镜像服务、DaoCloud镜像服务、阿里云镜像服务等。   用户在本地搭建 私有Docker Registry 。   因为企业中的

    2024年02月19日
    浏览(30)
  • Docker搭建私有镜像仓库

    镜像仓库(Docker Registry)有公共的和私有的两种形式: 公共仓库 :例如Docker官方的Docker Hub,国内也有一些云服务商提供类似于Docker Hub的公开服务,比如网易云镜像服务、DaoCloud镜像服务、阿里云镜像服务等。 除了使用公开仓库外,用户还可以在本地搭建 私有Docker Registry 。企业

    2023年04月16日
    浏览(39)
  • docker私有镜像仓库搭建

    使用5000端口,需要打开服务器的该端口号 保存后重启docker,否则不生效 以上完成私有仓库配置,检查是否能成功登录 展示 原因是使用的registry镜像版本是不固定的【latest】引起的, 所以在执行的时候,下载的registry镜像文件要固定到某一具体版本,例如:registry:2.7.0

    2024年02月12日
    浏览(31)
  • 【Docker】推送镜像到私有仓库

    目录 退出登录  私有仓库登录  构建镜像时指定tag 提交镜像到远程仓库  现有镜像指定tag 退出登录 没登录过的跳过这步   私有仓库登录 假设你的仓库连接是https://xxx.xxx.cn,账户密码都是root,那么命令就是: docker login https://xxx.xxx.cn -u root -p root  构建镜像时指定tag  一般

    2024年02月06日
    浏览(30)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包