Docker-仓库
2018-05-17 本文已影响36人
yuanzicheng
Docker仓库用于镜像的存储,是镜像分发、部署的关键。
Docker官方提供了公有仓库Docker Hub,国内也有一些公有仓库,我们也可以自己搭建私有的Docker仓库。
1.Docker Hub
Docker默认使用官方的公有仓库Docker Hub,搜索、下载镜像无需账号,上传镜像则需要账号认证。
相关命令
# 登录Docker Hub
docker login
# 上传镜像
docker push IMAGE:VERSION
# 搜索镜像
docker search IMAGE
# 下载镜像
docker pull IMAGE
2.私有仓库
某些场景下,由于网络、安全、网速等原因,公有仓库并不合适,我们需要构建自己的私有仓库。Docker官方提供了docker-registry组件,方便我们快速构建私有镜像。需要注意的是docker-registry现在已经更新到v2版本,并且使用了新的项目名称docker-distribution
。
2.1 镜像方式构建私有仓库
Docker官方提供了docker-registry的镜像,直接使用该镜像是最简单的方式。使用以下命令,Docker会自动从Docker Hub拉取docker-registry的镜像,然后启动docker-registry服务,docker-registry默认监听5000端口。
docker run -d -p 5000:5000 --restart always --name registry registry:2
如果需要设置环境变量,可以使用-e
设置参数。
2.2 RPM包方式构建私有仓库
EPEL中已经包含docker-registry的包,通过yum工具可以直接安装。
yum install -y docker-distribution
启动服务、查看服务状态
systemctl start docker-distribution && systemctl status docker-distribution
2.3 构建安全的私有仓库
To be continued...
2.4 使用私有仓库
查看Registry中所有镜像信息(以下示例中,假定私有仓库的ip地址为192.168.100.101)
curl http://192.168.100.101:5000/v2/_catalog
上传镜像
docker push 192.168.100.101:5000/<image>:latest
从私有仓库下载镜像
docker pull 192.168.100.101:5000/<image>:latest
从私有仓库pull镜像并启动
docker run -it 192.168.100.101:5000/<image>:latest