Docker将镜像推入私有库 ,用于搭建个人镜像仓库,或者公司内部镜像仓库
镜像仓库主机
Step 1:从镜像仓库中拉取registry镜像
docker pull registry
Step2: 生成registry 容器(-p 代表端口映射,-v 代表数据卷路径双向映射,--priviledged=true 代表容易可以获得最高的root 权限)
docker run -d -v /data/registry:/var/lib/registry -p 5000:5000 --restart=always --privileged=true registry
需要推送到仓库镜像的主机
举例
Step1 :生成需要构建的容器
docker run -d 镜像名
Step2: 进入容器(并且进入命令交互窗口)
docker exec -it 容器ID bash
Step3:更新 yum 组件(建议)
yum -y update
Step4:对容器进行增加某些组件的操作,比如在此容器中增加net-tools组件
yum install net-tools
Step5:将处理好的容器生成镜像(-m 为对镜像的描述,-a为作者名)
docker commit -m="add net-tools" -a="作者名" 容器ID 镜像名:Tag
Step6:查询一下, 本地是否成功生成了想要的镜像
docker images
2.推入镜像仓库
Step1:查询私有库目前存在哪些镜像,
如果镜像仓库中 已经有了该镜像名字, 那就需要修改镜像名
curl -XGET http://镜像仓库主机的ip地址:端口号/v2/cata_log
Step2:修改之前准备好的镜像的Tag
docker tag 镜像名:Tag 镜像仓库主机的ip地址:端口号/镜像名:Tag
Step3:修改配置文件使之支持http协议
打开daemon.json
cd /etc/docker
vim daemon.json
添加
"insecure-registries":["镜像仓库的ip地址:端口号"]
范例如下,注意红色部分
Step4:重新载入配置和重启docker
systemctl daemon-reload
systemctl restart docker
Step5:将本地镜像推送到私有库
docker push 镜像仓库主机ip地址:端口号/镜像名:Tag
Step6:查看是否上传成功
curl -XGET http://镜像仓库主机的ip地址:端口号/v2/_catalog
3.从私有库中拉取到本地
Step1:将私有库中的镜像拉取到本地
docker pull 镜像仓库主机ip地址:端口号/镜像名:Tag