Docker 私有库
有时候使用 Docker Hub 这样的公共仓库可能不方便,用户可以创建一个本地仓库供私人使用。docker-registry 是官方提供的工具,可以用于构建私有的镜像仓库
Docker 安装
$ 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
Docker 镜像仓库启动
$ 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 非安全连接模式私有库配置
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和pull操作
- push:在push镜像时需要将镜像重新打tag。
$ sudo docker tag [imageID]:[私有库IP:端口/镜像名:版本]
$ sudo docker push [私有库IP:端口/镜像名:版本]