仓库(Repository)是集中存放镜像的地方,又分公共仓库和私有仓库;
注册服务器是存放仓库的具体服务器,一个注册服务器上可以有多个仓库,而每个仓库下面可以有多个镜像
例:private-docker.com/ubuntu
private-docker.com是注册服务器,ubuntu是仓库名
1 Docker Hub公共镜像市场
1.1 基本操作
docker [image] pull 下载镜像到本地
docker push 本地镜像推送到Docker Hub
docker search centso 搜索centos关键词的镜像
例:
- 类似于centos这样的基础镜像,称为根镜像,有Docker公司创建、验证、支持、提供
- ansible/centos7-ansible这种镜像,是由Docker用户ansible创建并维护,带有用户名称为前缀,表明是某用户下的某仓库
1.2 自动创建
允许用户通过Docker Hub指定跟踪一个目标网站(目前支持GitHub或BitBucket)上的项目,一旦发生新的提交,则自动执行创建
要配置自动创建包括以下步骤:
1)创建并登录Docker Hub,以及目标网站如Github
2)在目标网站中允许Docker Hub访问服务
3)在Docker Hub中配置一个“自动创建”类型的项目
4)选取一个目标网站中的项目(需要含Dockerfile)和分支
5)指定Dockerfile的位置,并提交创建
2 搭建本地私有仓库
2.1 使用registry镜像创建私有仓库
通过官方提供的registry镜像简单搭建一套本地私有仓库环境,不指定本地路径默认仓库创建在容器的/var/lib/registry目录下,-v将镜像文件存放在本地指定路径
在192.168.152.133服务器下搭建:
docker run -d -p 5000:5000 -v /data/registry:/var/lib/registry registry:2
2.2 管理私有仓库
在192.168.152.132中上传镜像到133中
在132服务器中操作:
1)docker tag命令将这个镜像标记为192.168.152.133:5000/ubuntu_test:v1.0
2)docker push上传
docker push 192.168.152.133:5000/ubuntu_test:v1.0
报错是因为使用的是https,在132上关闭对仓库的安全性检查:
echo '{ "insecure-registries":["192.168.152.133:5000"] }' > /etc/docker/daemon.json
systemctl restart docker
再次上传
从133测试下载镜像
docker pull 192.168.152.133:5000/ubuntu_test:v1.0