搭建docker私服前置条件
1.一台linux服务器
2.linux服务器已装有docker
开始实验
1.使用registry搭建本地私有仓库
下载私有仓库注册服务器的镜像
sudo docker pull registry:latest
2.创建一个注册服务器容器
sudo docker run -d -p 5000:5000 --name server-registry -v /tmp/registry:/tmp/registry docker.io/registry:latest
参数说明 -d容器在后端运行, -p 5000:5000在容器的5000端口运行并映射到外部系统的5000端口, --name server-registry容器命名为server-registry, -v /tmp/registry /tmp/registry把宿主机的目录/tmp/registry挂载到容器目录/tmp/registry
3.为本地镜像添加标签,并将其归入本地仓库
sudo docker tag nginx:v3 localhost:5000/nginx:v3
将被标记的本地镜像, push到仓库
sudo docker push localhost:5000/nginx:v3
4.测试本地仓库的的可用性
sudo docker pull 123.207.55.60:5000/nginx:v3
从上面可以看到pull成功。
安装过程遇到
Error response from daemon: Get https://xxx.xxx.xxx.xxx:5000/v1/_ping: http: server gave HTTP response to HTTPS client
原因是由于客户端采用https,docker registry未采用https服务所致。一种处理方式是把客户对私有库地址请求改为http。
解决方法是通过修改/etc/docker/daemon.json,
查看有没有 daemon.json。这是docker默认的配置文件。
如果没有新建,如果有,则修改。
运行命令:echo '{ "insecure-registries":["xxx.xxx.xxx.xxx:5000"] }' > /etc/docker/daemon.json
其中xxx.xxx.xxx.xxx是你自己的私有库的IP地址
重启docker服务即可:sudo service docker restart