有时候使用 Docker Hub 这样的公共仓库可能不方便,用户可以创建一个本地仓库供私人使用。docker-registry 是官方提供的工具,可以用于构建私有的镜像仓库
$ sudo yum-config-manager \ --add-repo \ https://download.docker.com/linux/centos/docker-ce.repo $ sudo yum install docker-ce # 启动docekr $ sudo systemctl start docker # 查看Docker版本信息 $ sudo docker version
$ sudo docker run --name=registry --restart=unless-stopped --privileged=true -d -p 5523:5000 \ -v /opt/registry:/var/lib/registry registry.docker-cn.com/library/registry
命令解读:
–restart:镜像服务重启策略,默认是Docker服务重启时镜像服务是不会自动启动的,所以使用unless-stopped让镜像仓库随Docker服务启动而启动。 –privileged:centos7中的安全模块selinux把权限禁掉了,参数给容器加特权,不加上传镜像会报权限错误。 -v:默认情况下,仓库会被创建在容器的 /var/lib/registry 目录下。你可以通过 -v 参数来将镜像文件存放在本地的指定路径。
Docker pull 默认采用的是https模式连接,如果要是用http模式连接,则需要配置Docker参数。
新版本的Docker配置: /etc/sysconfig/docker文件中OPTIONS参数中添加–insecure-registry=私有库IP:PORT。
旧版本的Docker配置:usr/lib/systemd/system/docker.service文件中添加–insecure-registry参数。
$ sudo sed -i -e 's/dockerd/dockerd --insecure-registry=192.168.1.200:5523/g' /usr/lib/systemd/system/docker.service
push:在push镜像时需要将镜像重新打tag。
$ sudo docker tag [imageID]:[私有库IP:端口/镜像名:版本] $ sudo docker push [私有库IP:端口/镜像名:版本]