- 搭建docker私有仓库
搭建docker私有仓库也是通过docker,真是就地取材。
1、首先下载registry镜像
docker pull registry:2
2、启动registry镜像的容器
docker run -d -p 5000:5000 -v /myregistry:/var/lib/registry registry:2
说明:
-d ==> 作为daemon进程启动,也就是后台启动
-v /myregistry:/tmp/registry ==> 默认情况下,会将仓库存放于容器内的/tmp/registry目录下,指定本地目录/myregistry挂载到容器,可以防止容器意外停止后镜像的丢失。
-p 5000:5000 ==> 前一个5000是host的端口,后一个是容器的端口。这里是将容器的5000端口映射到host的5000端口。
配置文件: vim /lib/systemd/system/docker.service ExecStart=/usr/bin/dockerd --insecure-registry 192.168.3.245:5000
# systemctl daemon-reload
# systemctl restart docker
或者
# cat /etc/docker/daemon.json
{ "insecure-registries":["192.168.3.245:5000"] }
3、自制镜像上传
当我们使用Dockerfile自制的镜像上传是,在生成镜像的时候可以就为其打tag 1.制作镜像 docker build -t 192.168.3.245:5000/nginx:v1.0.1 . # docker images REPOSITORY TAG IMAGE ID CREATED SIZE 192.168.3.245:5000/nginx v1.0.1 34db4ba2c2ce 40 minutes ago 2.上传镜像 # docker push 192.168.3.245:5000/nginx:v1.0.1 The push refers to repository [172.16.60.95:5000/nginx] cf46d45fea5f: Pushed 7419ae91748c: Pushed d503658d51c7: Pushed c0f69d032a84: Pushed 5e9b5165a04f: Pushed a4fdd7463c3e: Pushed 43e653f84b79: Pushed v1.0.1: digest: sha256:ab928a5ecfa51d3bdc1ec9ebe58e89b7ec78fcbe48275e3d368c9d8845540a01 size: 1784
[root@node1 nginx]# curl http://192.168.3.245:5000/v2/_catalog {"repositories":["busybox","nginx"]} [root@node1 nginx]# curl http://192.168.3.245:5000/v2/nginx/tags/list {"name":"nginx","tags":["v1","latest"]}
4、获取私有仓库镜像
# docker pull 192.168.3.245:5000/nginx:v1.0.1 v1.0.1: Pulling from nginx Digest: sha256:ab928a5ecfa51d3bdc1ec9ebe58e89b7ec78fcbe48275e3d368c9d8845540a01 Status: Image is up to date for 172.16.60.95:5000/nginx:v1.0.1 # docker images REPOSITORY TAG IMAGE ID CREATED SIZE 192.168.3.245:5000/nginx v1.0.1 34db4ba2c2ce 43 minutes ago 408MB
浙公网安备 33010602011771号