一、私有仓库的搭建与配置
所谓的 Docker 私有仓库,就是指企业内部所使用的仓库。仓库用于存放各种镜像,区别在于公有仓库所存储的都是一些通用型的镜像比如N Tomcat 镜像、ginx 镜像等。私有仓库则用于存放自身开发的企业级应用。如果想要在一个局域网来共享一些镜像,那么就需要用到私有仓库。
1. 拉取私有仓库镜像 docker pull registry;
[root@192 ~]# docker pull registry
Using default tag: latest
latest: Pulling from library/registry
79e9f2f55bf5: Pull complete
0d96da54f60b: Pull complete
5b27040df4a2: Pull complete
e2ead8259a04: Pull complete
3790aef225b9: Pull complete
Digest: sha256:169211e20e2f2d5d115674681eb79d21a217b296b43374b8e39f97fcf866b375
Status: Downloaded newer image for registry:latest
docker.io/library/registry:latest
[root@192 ~]#
2. 创建私有仓库,占用 5000 端口;
[root@192 ~]# docker run -di --name=registry -p 5000:5000 registry
此时已经算是完成了私有仓库的构建,如下;
3. 测试连接,在本地浏览器中输入 192.168.200.129:5000/v2/_catalog 进行访问,可以成功访问则说明私有仓库搭建完成。成功效果如下:
192.168.200.129 是我的 Docker 宿主机(虚拟机)IP 地址,大家操作时注意查看自己的的宿主机 IP。
4. 修改 /etc/docker/daemon.json 文件,此步骤的目的是让 Docker 能够信任该私有仓库的地址,只有这样之后才能将本地镜像上传至私有仓库;
[root@192 ~]# vi /etc/docker/daemon.json
在该文件中加入以下代码:
"insecure-registries":["192.168.200.129:5000"]
修改配置文件之后,重启 Docker 使其生效;
[root@192 ~]# systemctl restart docker
二、镜像上传至私有仓库
此处我以 jdk1.8 镜像为例进行操作演示。
1. 标记要上传的镜像为私有仓库镜像;
[root@192 ~]# docker tag jdk1.8 192.168.200.129:5000/jdk1.8
此时再次查看 Docker 中的镜像,可以看到 jdk1.8 镜像已经被标记;
2. 启动 registry 容器;
[root@192 ~]# docker start registry
registry
3. 上传被标记的镜像至私有仓库;
[root@192 ~]# docker push 192.168.200.129:5000/jdk1.8
Using default tag: latest
The push refers to repository [192.168.200.129:5000/jdk1.8]
e5e377c11436: Pushed
6e64d4a7ac94: Pushed
174f56854903: Pushed
latest: digest: sha256:8699db7832cf89668b5812161c55e73454fbc0304d354d06ed0e6ce3ddc493ca size: 949
[root@192 ~]#
4. 测试连接,再次在本地浏览器中输入 192.168.200.129:5000/v2/_catalog 进行访问,可以看到相较于刚创建的私有仓库列表中已添加了 jdk1.8;
jdk1.8 上传至私有仓库成功。