环境准备:
镜像仓库服务器(CentOS 7)
已安装完毕docker服务
搭建开始
1.拉取registry镜像
docker pull registry
2.查看registry镜像
docker images
3.创建registry容器并启动服务
首先在在主机上新建一个目录,供存储镜像
mkdir /usr/local/docker_regitry
创建容器
docker run -d -p 5000:5000 --name=jackspeedregistry --restart=always --privileged=true -v /usr/local/docker_registry:/var/lib/registry docker.io/registry
解释:
-p 5000:5000 端口
--name=jackspeedregistry 运行的容器名称
--restart=always 自动重启
--privileged=true centos7中的安全模块selinux把权限禁止了,加上这行是给容器增加执行权限
-v /usr/local/docker_registry:/var/lib/registry 把主机的/usr/local/docker_registry 目录挂载到registry容器的/var/lib/registry目录下,假如有删除容器操作,我们的镜像也不会被删除
docker.io/registry 镜像名称
查看启动的容器
docker ps -a
到这里,镜像仓库就搭建好了。
4.测试本地镜像仓库
(1)拉取公共仓库的mysql镜像,
docker pull mysql
(2)打tag
docker tag docker.io/mysql 192.168.180.129:5000/mysql
docker.io/mysql是从公共仓库拉取的镜像名,192.168.180.129是本地镜像仓库
(3)上传镜像到本地镜像仓库
出现上面截图中的问题,需要给docker注册https协议,支持https访问
vi /etc/docker/daemon.json 如果没有这个文件就创建一个。修改内容如下:
{"insecure-registries":["192.168.180.129:5000"]}
重启docker服务
service docker restart
重新推送镜像
(4)拉取本地仓库刚刚上传的镜像(可把之前的创建的tag镜像删除)
docker pull 192.168.180.129:5000/mysql
测试成功。