Docker 本地仓库搭建
Docker 本地仓库搭建
- 下载仓库镜像
- 创建仓库文件夹
- 启动仓库
- 查看仓库启动
- 5.测试
- 问题解决
- 6.1 创建配置文件
源代码GitHub下载地址:spring-boot-docker
1. 下载仓库镜像
从中央仓库拉取最新的 registry 仓库。
docker pull registry
2. 创建仓库文件夹
mkdir -pv /opt/docker/registry
3. 启动仓库
端口映射为:5000
本地文件映射为:/opt/docker/registry
docker run -d -p 5000:5000 --restart=always -v /opt/docker/registry:/var/lib/registry registry
4. 查看仓库启动
docker ps
可看到输出如下:
docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
a7b23b6e8633 registry "/entrypoint.sh /e..." 8 minutes ago Up 6 minutes 0.0.0.0:5000->5000/tcp distracted_jang
访问地址:
ip为本地仓库ip地址。
curl http://192.168.234.97:5000/v2/_catalog
5.测试
使用hello-world
镜像进行测试,创建本地 tag
docker tag hello-world 192.168.234.97:5000/hello
推送到本地仓库
docker push 192.168.234.97:5000/hello
再次查看:
curl http://192.168.234.97:5000/v2/_catalog
输出显示,有新增的仓库。
{ "repositories":["hello"]}
6. 问题解决
推送到本地仓库
docker push 192.168.234.97:5000/hello
报错
The push refers to a repository [192.168.234.97:5000/hello]
Get https://192.168.234.97:5000/v1/_ping: http: server gave HTTP response to HTTPS client
原因分析:
客户端http不能访问
解决方案,创建配置文件,修改配置。用到这个仓库的机器都要执行这个操作:
6.1 创建配置文件
创建配置文件
touch /etc/docker/daemon.json
写入配置:
echo '{ "insecure-registries":["192.168.234.97:5000"] }' > /etc/docker/daemon.json
重新启动docker
systemctl restart docker
再次尝试推送到本地仓库,可以成功
docker push 192.168.234.97:5000/hello
成功输出如下:
The push refers to a repository [192.168.234.97:5000/hello]
428c97da766c: Pushed
latest: digest: sha256:7d6fb7e5e7a74a4309cc436f6d11c29a96cbf27a4a8cb45a50cb0a326dc32fe8 size: 524
查看镜像tag
http://192.168.234.97:5000/v2/hello/tags/list
还没有评论,来说两句吧...