Docker官方的Docker hub(Docker)是一个用于管理公共镜像的仓库,我们可以从上面拉取镜像到本地,也可以把我们自己的镜像推送上去。但是,有时候我们的服务器无法访问互联网,或者你不希望将自己的镜像放到公网当中,那么我们就需要搭建自己的私有仓库来存储和管理自己的镜像。
一、私有仓库搭建与配置
1. 拉取私有仓库镜像
docker pull registry
2. 启动私有仓库容器
docker run -di --name=registry -p 5000:5000 registry
3. 访问私有仓库
# 打开浏览器 输入地址
http://192.168.56.128:5000/v2/_catalog
看到{"repositories":[]} 表示私有仓库搭建成功并且内容为空
4. 修改daemon.json
修改前先备份
cp /etc/docker/daemon.json /etc/docker/daemon.json.bak
添加以下内容,让容器信任下面的地址,保存退出。
"insecure-registries":["192.168.1.171:5000"],
vim /etc/docker/daemon.json
5. 重启docker 服务
systemctl restart docker
6. 启动私有仓库容器
docker start registry
二、镜像上传至私有仓库
1. 标记此镜像为私有仓库的镜像
docker tag myappdockerimg:latest 192.168.56.128:5000/myappdockerimg:latest
2. 再次启动私服容器
docker start registry
3. 上传标记的镜像
docker push 192.168.56.128:5000/myappdockerimg:latest
上传失败:
解决:Docker1.3.X之后docker registry交互默认使用的是HTTPS,但是搭建私有镜像默认使用的是HTTP服务,私有镜像上传时出现以上错误。
vim /usr/lib/systemd/system/docker.service
添加以下内容:
# 在ExecStart的行尾添加:
--insecure-registry 192.168.56.128:5000
4. 访问测试
http://192.168.56.128:5000/v2/_catalog
三、从私有仓库拉取镜像
1. 删除镜像
docker rmi myappdockerimg:latest
2. 拉取镜像
docker pull 192.168.56.128:5000/myappdockerimg:latest