Docker 私有仓库

我们之前使用的这种镜像仓库是公开的,其他人也是可以下载,并不安全,因此还可以使用docker registry官方提供的私有仓库

官方提供的私有仓库docker registry用法
https://yeasy.gitbooks.io/docker_practice/repository/registry.html
一条命令下载registry镜像并且启动私有仓库容器,私有仓库会被创建在容器的/var/lib/registry下,因此通过-v参数将镜像文件存储到本地的/opt/data/registry下
端口映射容器中的5000端口到宿主机的5000端口
docker run -d -p 5000:5000 -v /opt/data/registry:/var/lib/registry registry
检查启动的registry容器
docker ps
telnet 192.168.16.8 5000
修改镜像tag,以docker registry的地址端口开头
docker tag hello-world:latest 192.168.16.8:5000/hello-world:latest
查看docker镜像,找到registry的镜像
docker images
Docker 默认不允许非 HTTPS 方式推送镜像。我们可以通过 Docker 的配置选项来取消这个限制,这里必须写正确json数据
[root@master /]# cat /etc/docker/daemon.json
{"registry-mirrors": ["http://95822026.m.daocloud.io"],
"insecure-registries":["192.168.16.8:5000"]
}
写入到docker服务中,写入到[Service]配置块中,加载此配置文件
[root@master home]# grep 'EnvironmentFile=/etc/docker/daemon.json' /lib/systemd/system/docker.service
EnvironmentFile=-/etc/docker/daemon.json
修改了docker配置文件,重新加载docker
systemctl daemon-reload
重启docker
systemctl restart docker

但重启后,之前 的registry容器进程挂掉了,因此重新启动

docker run --privileged=true -d -p 5000:5000 -v /opt/data/registry:/var/lib/registry registry
--privileged=true  #docker容器的安全机制:设置特权级运行的容器
推送本地镜像
docker push 192.168.16.8:5000/hello-world
删除本地镜像,从私有仓库中下载
docker pull 192.168.16.8:5000/hello-world

 

上一篇:Docker 发布image到仓库

下一篇:RabbitMQ安装