镜像的私有仓库
Docker官方提供了docker-registry组件,我们可以用它来构建我们的私有镜像仓库。
安装docker-registry
服务器端(私有仓库的搭建)
Step 1开始下载最新的镜像。
docker search registry
docker pull registry
docker images 查看镜像是否pull成功
Step2 启动并且挂载镜像仓库到本地磁盘
docker run -d -v /registry:/home/docker-registry -p 5000:5000 --restart=always -- privileged=true --name registry registry:latest
#-d 后台运行 -v -p 端口 --restart=always 高可用 --privileged=true 安全
查看容器启动进程
-v /registry:/home/docker-registry:默认情况下,会将仓库存放于容器内的/home/docker-registry目录下,指定本地目录挂载到容器。
-p 5000:5000 :端口映射。即本地5000端口,映射到registry中的5000端口。
–restart=always1:在容器退出时总是重启容器,主要应用在生产环境。
–privileged=true:在CentOS7中的安全模块selinux把权限禁掉了,参数给容器加特权,不加上传镜像会报类似权限错误。OSError: [Errno 13] Permission denied: ‘/tmp/registry/repositories/liibrary’)或者(Received unexpected HTTPstatus: 500 Internal Server Error)
–name registry:指定容器的名称。
为了持久化数据,将volume挂载到/home/docker-registry
setp 3 修改配置文件 , 进入浏览器查看
vim /etc/docker/daemon.json
{ "registry-mirrors": ["https://ulisdva8.mirror.aliyuncs.com"],
"insecure-registries":["192.168.88.250:5000"] } #加入这句
systemctl daemon-reload #这个一定不要忘记
systemctl restart docker
浏览器中打开 出现 {} 表示运行成功
step4 上传镜像到仓库中
docker pull nginx
docker tag nginx:latest localhost:5000/nginx:v1 #改标签
docker push localhost:5000/nginx:v1 #push到私有仓库
打包上传镜像
浏览器验证
另一台Docker主机上验证 :客户端(公司其他员工)
- 修改配置文件
vim /etc/docker/daemon.json
{ "registry-mirrors": ["https://ulisdva8.mirror.aliyuncs.com"],
"insecure-registries":["192.168.88.250:5000"] } #加入这句
systemctl daemon-reload #这个一定不要忘记
systemctl restart docker
2.拉取镜像
docker pull 192.168.88.250:5000/nginx:v1 #可以通过docker images检测ID一样与宿主机
- push 操作试验
#能pull就能
push docker tag ubuntu:19.04 192.168.88.250:5000/ubuntu:v1 #改标签
docker push 192.168.88.250:5000/ubuntu:v1 #push到服务器端