1、仓库介绍
仓库是集中存放镜像文件的场所。有时候会把仓库和仓库注册服务器(Registry)混为一谈,并不严格区分。实际上,仓库注册服务器上往往存放着多个仓库,每个仓库中又包含了多个镜像,每个镜像有不同的标签(tag)。
仓库分为公开仓库(Public)和私有仓库(Private)两种形式。
最大的公开仓库是 Docker Hub,存放了数量庞大的镜像供用户下载。 国内的公开仓库包括 Docker Pool 等,可以提供大陆用户更稳定快速的访问。
当然,用户也可以在本地网络内创建一个私有仓库。
当用户创建了自己的镜像之后就可以使用 push 命令将它上传到公有或者私有仓库,这样下次在另外一台机器上使用这个镜像时候,只需要从仓库上 pull 下来就可以了。
注:Docker 仓库的概念跟 Git 类似,注册服务器可以理解为 GitHub 这样的托管服务。
2、Docker Hub
网址:hub.docker.com,可以注册用户名来登陆。如何在Docker容器中操作Hub呢?
(1)在docker机器上登录
docker login
(2)输入用户名和密码
(3)docker push itcrazy2018/test-docker-image
[注意镜像名称要和docker id一致,不然push不成功]
(4)给image重命名,并删除掉原来的
docker tag test-docker-image itcrazy2018/test-docker-image
docker rmi -f test-docker-image
(5)再次推送,刷新hub.docker.com后台,发现成功
(6)别人下载,并且运行
docker pull itcrazy2018/test-docker-image
docker run -d --name user01 -p 6661:8080 itcrazy2018/test-docker-image
3、阿里云仓库
阿里云docker仓库:https://cr.console.aliyun.com/cn-hangzhou/instances/repositories
参考手册:https://cr.console.aliyun.com/repository/cn-hangzhou/dreamit/image-repo/details
(1)登录到阿里云docker仓库
sudo docker login --username=itcrazy2016@163.com registry.cnhangzhou.aliyuncs.com
(2)输入密码
(3)创建命名空间,比如itcrazy2016
(4)给image打tag
sudo docker tag [ImageId] registry.cn-hangzhou.aliyuncs.com/itcrazy2016/testdocker-image:v1.0
(5)推送镜像到docker阿里云仓库
sudo docker push registry.cn-hangzhou.aliyuncs.com/itcrazy2016/test-dockerimage:v1.0
(6)别人下载,并且运行
docker pull registry.cn-hangzhou.aliyuncs.com/itcrazy2016/test-dockerimage:v1.0
docker run -d --name user01 -p 6661:8080 registry.cnhangzhou.
aliyuncs.com/itcrazy2016/test-docker-image:v1.0
4、搭建本地仓库
常用的本地仓库可以使用github上harbor项目来搭建。
具体步骤可参照
[Docker实战案例 第3讲]