仓库(Repository)是集中存放镜像的地方,又分共有仓库和私有仓库。注册服务器和仓库有所区别,注册服务器是存放仓库的具体服务器,一个注册服务器可以有多个仓库,而每个仓库下可以有多个镜像,仓库可以被认为是一个具体的项目或目录,如private-docker.com/ubuntu private-docker.com是注册服务器地址,ubuntu是仓库名。
创新互联是一家专业提供衡阳企业网站建设,专注与成都网站制作、网站建设、H5开发、小程序制作等业务。10年已为衡阳众多企业、政府机构等服务。创新互联专业的建站公司优惠进行中。公共镜像市场Docker Hub是docker官方提供的大的公共镜像仓库,网址https://hub.docker.com 大部分镜像的需求都可以在Docker hub中直接下载
1、登录,可以通过命令执行docker login命令来输入用户名、密码和邮件来完成注册和登录,注册成功后本地用户目录下会自动穿件.docker/config.json文件,保存用户的认证信息。
2、基本操作,用户不需要登录就可以通过docker search命令来查找官方仓库的镜像,并利用docker [image] pull命令来将他下载到本地。
3、自动创建,是docker hub提供的自动化服务,可以自动跟随项目代码更新而重新构建镜像。如创建了一个应用镜像,如果发布了新版本需要手动跟新镜像。而自动创建可以让用户通过docker hub指定一个目标网站上的项目,一旦项目发生变化,自动执行创建。
1)创建登录Docker Hub
2)在目标网站中允许Docker Hub访问服务
3)在Docker Hub中配置一个自动创建类型的项目
4)选取一个目标网站中的项目和分支
5)指定Dockerfile的位置,并提交创建。
使用registry创建私有镜像,并启动。仓库会被创建在容器的/var/lib/registry目录下,使用-v参数将镜像文件存放到指定目录(本地的/opt/data/registry)下
[root@docker01 ~]# docker run -d -p 5000:5000 -v /opt/data/registry:/var/lib/registry registry:2
Unable to find image 'registry:2' locally
2: Pulling from library/registry
486039affc0a: Pull complete
ba51a3b098e6: Pull complete
8bb4c43d6c8e: Pull complete
6f5f453e5f2d: Pull complete
42bc10b72f42: Pull complete
Digest: sha256:7d081088e4bfd632a88e3f3bcd9e007ef44a796fddfe3261407a3f9f04abe1e7
Status: Downloaded newer image for registry:2
7166c8c34d7ff45d5e9200909ea17cebfd3894852cf1f49ee9e944ea1218fd9a
查看已有镜像并使用tag修改镜像标记为10.10.17.199:5000/test
[root@docker01 ~]# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
ubuntu 18.04 72300a873c2c 2 weeks ago 64.2MB
[root@docker01 ~]# docker tag ubuntu:18.04 10.10.17.199:5000/test
直接上传标记镜像会报错
[root@docker01 ~]# docker push 10.10.17.199:5000/test
The push refers to repository [10.10.17.199:5000/test]
Get https://10.10.17.199:5000/v2/: http: server gave HTTP response to HTTPS client
修改daemon.json文件,重新加载并重起docker,启动registry
[root@docker01 ~]# vim /etc/docker/daemon.json
{ "insecure-registries":["10.10.17.199:5000"]
[root@docker01 ~]# systemctl daemon-reload
[root@docker01 ~]# systemctl restart docker
[root@docker01 ~]# docker run -d -p 5000:5000 -v /opt/data/registry:/var/lib/registry registry:2
b3e4503d76bf818f4d4a8cbb399f2826c335a97d5bae6b21d66d671c4983d99f
上传标记镜像
[root@docker01 ~]# docker push 10.10.17.199:5000/test
The push refers to repository [10.10.17.199:5000/test]
1852b2300972: Pushed
03c9b9f537a4: Pushed
8c98131d2d1d: Pushed
cc4590d6a718: Pushed
latest: digest: sha256:0925d086715714114c1988f7c947db94064fd385e171a63c07730f1fa014e6f9 size: 1152
测试,删除原有10.10.17.199:5000/test,再pull一个下来
[root@docker01 ~]# docker rmi 10.10.17.199:5000/test
Untagged: 10.10.17.199:5000/test:latest
Untagged: 10.10.17.199:5000/test@sha256:0925d086715714114c1988f7c947db94064fd385e171a63c07730f1fa014e6f9
[root@docker01 ~]# docker pull 10.10.17.199:5000/test
Using default tag: latest
latest: Pulling from test
Digest: sha256:0925d086715714114c1988f7c947db94064fd385e171a63c07730f1fa014e6f9
Status: Downloaded newer image for 10.10.17.199:5000/test:latest
10.10.17.199:5000/test:latest
[root@docker01 ~]# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
10.10.17.199:5000/test latest 72300a873c2c 2 weeks ago 64.2MB
ubuntu 18.04 72300a873c2c 2 weeks ago 64.2MB