前提:会使用Dockerfile构建镜像,不会的参考https://www.cnblogs.com/hujunwei/p/15823522.html
1.拉取私服镜像
docker pull registry
2.启动docker私服
docker run -di --name=registry ‐p 5000:5000 registry
3.打开浏览器 输入地址"http://192.168.26.130:5000/v2/_catalog"看到 {"repositories":[]} 表示私有仓库搭建成功,并且内容为空。
4.修改daemon.json,此步用于让 docker信任私有仓库地址
vi /etc/docker/daemon.json
{ "registry-mirrors": ["https://docker.mirrors.ustc.edu.cn"], "insecure-registries": ["192.168.26.130:5000"] }
5.重启docker服务
systemctl restart docker
6.重启registry
docker start registry
7.镜像上传至私有仓库
#标记此镜像jdk1.8_hjw为私有仓库的镜像,这个镜像和jdk1.8的镜像镜像id是一样的
docker tag jdk1.8_hjw 192.168.26.130:5000/jdk1.8
#上传标记的镜像
docker push 192.168.184.141:5000/jdk1.8
8.这时候访问"http://192.168.26.130:5000/v2/_catalog",就可以看到上传的镜像。
9.从私有仓库下载镜像,此时在另一台装有docker的服务器上,重复4,5步骤,然后下载镜像
docker pull 192.168.26.130:5000/jdk1.8
扩展:
第一台配置
[root@docker ~]# docker pull registry
#下载registry镜像
[root@docker ~]# docker run -tid --name registry --restart=always -p 5000:5000 - v /data/registry:/var/lib/registry registry
#运行该镜像,各个选项含义如下:
# -tid:以后台持久运行,并分配一个可交互的为终端
# --name registry :给容器定义一个名字
# --restart=always:该容器可以随着docker服务的启动而启动
# -p:将容器的端口映射到宿主机,冒号前面是宿主机的端口,冒号后面是容器的端口,registry的默认端 口是5000
# -v:将宿主机的目录挂载到容器中,冒号前面是宿主机的目录,冒号后面是容器中的目录
[root@docker ~]# docker images
#查看当前的镜像
REPOSITORY TAG IMAGE ID CREATED SIZE
centos latest 0f3e07c0138f 2 weeks ago 220MB
registry latest f32a97de94e1 7 months ago 25.8MB
[root@docker ~]# docker tag centos:latest 192.168.20.7:5000/centos:latest
#更改镜像名称,以便符合私有仓库名称规范
#注:私有仓库镜像的命名规则:192.168.20.7:5000/XXX(宿主机的IP:5000端口/镜像名称)
[root@docker ~]# vim /usr/lib/systemd/system/docker.service
#更改docker的配置文 件,以便指定私有仓库 ExecStart=/usr/bin/dockerd -H unix:// --insecure-registry 192.168.20.7:5000
#定位到上面那行,在后面添加“--insecure-registry”并指定私有仓库的IP及端口,然后保存退出即可
[root@docker ~]# systemctl daemon-reload
#重载配置文件
[root@docker ~]# systemctl restart docker
#重启docker服务
[root@docker ~]# docker push 192.168.20.7:5000/centos:latest
#上传镜像至私有仓 库
[root@docker ~]# curl 192.168.20.7:5000/v2/_catalog
#查看私有仓库中的镜像
{"repositories":["centos"]}
[root@docker ~]# curl 192.168.20.7:5000/v2/centos/tags/list
#查看镜像的详细信息
{"name":"centos","tags":["latest"]}
第二台配置
[root@docker02 ~]# vim /usr/lib/systemd/system/docker.service
#编辑主配置文件 ExecStart=/usr/bin/dockerd -H unix:// --insecure-registry 192.168.20.7:5000
#定位到上面那行,添加“--insecure-registry”指定私有仓库的IP及参数 #添加完成后,保存退出即可
[root@docker02 ~]# systemctl daemon-reload
#重载配置文件
[root@docker02 ~]# systemctl restart docker
#重启docker服务
[root@docker02 ~]# docker pull 192.168.20.7:5000/centos:latest
#下载私有仓库的中的镜像
[root@docker02 ~]# docker images
#确认下载的镜像