一, 环境
- centos 7.5
- docker 18
Docker Hub 虽然很方便, 但是也有一定的弊端:
1, 需要链接互联网, 对内网环境有限制
2, 传输速度限制, 上传下载比较慢
3, 内部应用环境, 上传 Hub 不安全
4, 安全考虑不运行镜像放外网
解决办法:
Docker 已经将 registry 进行了开源, 我们可以在 Docker 运行自己的 registry
二, 搭建过程
1, 获取镜像
shell>yum update 跟新源
shell>docker pull registry:2 下载 registry:2 镜像
shell>docker image ls 查看下载的镜像
2, 运行镜像
shell>docker run -d -p 5000:5000 -v /myregistry:/var/lib/registry registry:2
-d 后台运行
-p 将容器的短裤哦 5000 映射到 Host 的 5000 端口, 5000 端口是 registry 的服务端口
-v 将容器的 / var/lib/registry 目录映射到 Host 的 / myregistry, 用于存放镜像数据
--name 为运行的容器命名
shell> docker ps 查看容器是否运行成功
3, 添加私库地址
shell>vim /usr/lib/systemd/sysystem/docker.service
ExecStart= 行中加入... insecure-registry 10.10.10.10:5000
4, 修改后重启 registry 服务
systemctl restart docker
docker start registry 容器 ID // 重启 registry 服务
shell>docker info 查看是否添加成功
Insecure Registries:10.10.10.10:5000
三, 测试
1, 拉取一个测试镜像并打 tag
- shell>docker pull busybox:laster
- shell>docker tag busybox:latest 10.10.10.10:5000/busybox:v1
注:
repository 的完整格式为:[registry-host]:[port]/[username]/xxx
Docker Hub 上的镜像可以省略 [registry-host]:[port]
2, 提交 busybox 到本地仓库
shell>docker push 10.10.10.10:5000/busybox:v1
3, 删除关于 busybox 的镜像
shell>docker rmi 10.10.204.38:5000/busybox:v1 busybox
shell>docker image ls 核实没有 busybox 包
4, 拉取 busybox:v1 镜像
- shell>docker pull 10.10.204.38:5000/busybox:v1
- shell>docker image ls
测试完成
来源: http://www.bubuko.com/infodetail-2771114.html