docker(三)docker仓库

本文介绍了Docker仓库,特别是Docker Hub,作为镜像存储和分发的中心。讲解了如何上传和拉取镜像,并探讨了registry的加密和远程主机连接。此外,还详细阐述了Docker-Compose,它是管理和运行多容器Docker应用的工具,通过YML文件定义服务,并使用`docker-compose up`启动应用程序。Docker-Compose将容器分为工程、服务和容器三层,适用于需要多个容器协同工作的场景。
摘要由CSDN通过智能技术生成

Docker仓库

仓库(Repository)是集中存放镜像的地方。以下介绍一下 Docker Hub。当然不止 docker hub,只是远程的服务商不一样,操作都是一样的。
docker仓库是用来保存镜像的位置,docker提供一个注册服务器(register)来保存多个仓库,每个仓库又可以包含多个具备不同的tag的镜像
docker运行中使用的默认仓库是docker Hub 公共仓库,使用公共registry
docker hub:是docker公司维护的公共仓库,用户可以免费使用,也可以购买私有仓库。
#保存和分发镜像的最直接的方法就是使用DockerHub

1.在docker hub上注册一个帐号
2.登陆
[root@server1 docker]# docker login -u dangdangwestos
Password:  #密码:dangdang
Login Succeeded


"""
[root@docker ~]# docker login -u dangdangwestos
Password: 
# 这个警告的意思是 密码这样存储会有安全问题
WARNING! Your password will be stored unencrypted in /root/.docker/config.json.
Configure a credential helper to remove this warning. See
https://docs.docker.com/engine/reference/commandline/login/#credentials-store

Login Succeeded

[root@docker ~]# cat .docker/config.json 
#做过一个认证后就把认证信息放在文件中 
{
	"auths": {
		"https://index.docker.io/v1/": {
			"auth": "ZGFuZ2Rhbmd3ZXN0b3M6NjQ1MTkzMjM2"
		}
	},
	"HttpHeaders": {
		"User-Agent": "Docker-Client/18.09.6 (linux)"
	}

"""
#退出
docker logout


3.修改镜像的名字 使之与Docker Hub帐号匹配
docker hub为了区分不同用户的镜像名 镜像的名字中要包含用户名 完整格式为
[username]/xxx:tag 

"""
我们可以通过以下命令搜寻docker官方仓库中的镜像
可以清楚的看到 除了官方镜像外 其余镜像均要按照官方的要求更改镜像的标签
# 不同的人可以上传不同的镜像
"""
[root@server3 ~]# docker search busybox
NAME                      DESCRIPTION                                     STARS               OFFICIAL            AUTOMATED
busybox                   Busybox base image.                             1658                [OK]                
progrium/busybox                                                          70                                      [OK]
radial/busyboxplus        Full-chain, Internet enabled, busybox made f…   24                                      [OK]
arm32v7/busybox           Busybox base image.                             7                                       
yauritux/busybox-curl     Busybox with CURL                               5                                       
armhf/busybox             Busybox base image.                             5                                       
arm64v8/busybox           Busybox base image.                             3                                       
aarch64/busybox           Busybox base image.                             2                                       

[root@docker ~]# docker search dangdangwestos #搜索自己的
NAME                               DESCRIPTION         STARS               OFFICIAL            AUTOMATED
dangdangwestos/rhel7-up                                0                                       
dangdangwestos/busybox                                 0                                       
dangdangwestos/rhel7-addifconfig                       0                                       
dangdangwestos/httpd                                   0 

上传

[root@server3 ~]# docker tag busybox:latest dangdangwestos/busybox:latest
[root@server3 ~]# docker push dangdangwestos/busybox
dangdangwestos/busybox         dangdangwestos/busybox:latest
[root@server3 ~]# docker push dangdangwestos/busybox:latest 
The push refers to repository [docker.io/dangdangwestos/busybox]
0d315111b484: Mounted from library/busybox 
latest: digest: sha256:895ab622e92e18d6b461d671081757af7dbaa3b00e3e28e12505af7817f73649 size: 527

拉取

# 拉取 会先检索本地的镜像 如果存在则不会被拉取
[root@server3 ~]# docker pull dangdangwestos/busybox:latest 
latest: Pulling from dangdangwestos/busybox
Digest: sha256:895ab622e92e18d6b461d671081757af7dbaa3b00e3e28e12505af7817f73649
Status: Image is up to date for dangdangwestos/busybox:latest

# 先删除之前的再拉取
[root@server3 ~]# docker images
REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
nginx               v4                  b218a266197d        2 days ago          144MB
nginx               v3                  49349f668909        2 days ago          253MB
nginx               v2                  d21df066fe46        2 days ago          272MB
nginx               v1                  6baf2165c143        2 days ago          295MB
ubuntu              latest              3556258649b2        3 weeks ago         64.2MB
busybox             latest              db8ee88ad75f        4 weeks ago         1.22MB
game2048            latest              19299002fdbe        2 years ago         55.5MB
rhel7               latest              0a3eb3fde7fd        5 years ago         140MB
[root@server3 ~]# docker pull dangdangwestos/busybox:latest 
latest: Pulling from dangdangwestos/busybox
Digest: sha256:895ab622e92e18d6b461d671081757af7dbaa3b00e3e28e12505af7817f73649
Status: Downloaded newer image for dangdangwestos/busybox:latest
[root@server3 ~]# docker images
REPOSITORY               TAG                 IMAGE ID            CREATED             SIZE
nginx                    v4                  b218a266197d        2 days ago          144MB
nginx                    v3                  49349f668909        2 days ago          253MB
nginx                    v2                  d21df066fe46        2 days ago          272MB
nginx                    v1                  6baf2165c143        2 days ago          295MB
ubuntu                   latest              3556258649b2        3 weeks ago         64.2MB
dangdangwestos/busybox   latest              db8ee88ad75f        4 weeks ago         1.22MB
busybox                  latest              db8ee88ad75f        4 weeks ago         1.22MB
game2048                 latest              19299002fdbe        2 years ago         55.5MB
rhel7                    latest              0a3eb3fde7fd        5 years ago         140MB

# 可再次打标签 #觉得用户名太长太复杂的化
[root@server3 ~]# docker tag dangdangwestos/busybox:latest busybox:latest 
# 删除docker hub上的镜像

registry

一次docker pull或 push背后发生的事情

index服务器主要提供镜像索引以及用户认证的功能,
当下载一个镜像的时候,首先回去index服务器上做认证,
然后查找镜像所在的registry的地址并回给docker客户端,
docker客户端再从registry下载镜像,在下载的过程中registry会去
index校验客户端token的合法性,不同镜像可以保存在不同的
registry服务上,其检索信息都放在index服务器上。

index:负责并维护有关账户,镜像的校验以及公共命名空间的信息(并不会存放真正的镜像层)
	web UI
	元数据存储
	认证服务
	符号化

registry:是镜像和图表的仓库,它不具有本地数据库以及不提供用户认证

registry client:docker充当registry客户端来维护推送和拉取,以及客户端的授权

"""
场景讲解:
Docker Client ---> index ----> registry
A:用户要获取并下载镜像
B:用户要推送镜像到registry
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值