一、registry仓库(简单)
1.1、仓库搭建:
1.1.1、安装docker
1.1.2、下载registry镜像(这里下载的是registry:2)
1.1.3、启动registry容器,(设置持久化目录,重启)
docker run -d -v /docker/registry:/var/lib/registry -p 5000:5000 --restart always --name registry registry:2
1.1.4、将主机与容器挂载,防止容器删除,镜像丢失
Registry服务默认会将上传的镜像保存在容器的/var/lib/registry,我们将主机的/opt/registry目录挂载到该目录,即可实现将镜像保存到主机的/opt/registry目录了。
1.1.5、访问
1.1.6、查看镜像
http://127.0.0.1:5000/v2/_catalog`<br />curl -XGET http://localhost:5000/v2/_catalog`
1.1.7、查看tag
http://192.100.3.26:5000/v2/rabbitmq/tags/list
1.1.8、API
https://docs.docker.com/registry/spec/api/
1.2、服务端配置本地仓库
1.2.1、vim /etc/docker/daemon.json
tee /etc/docker/daemon.json <<-'EOF'{"insecure-registries":["192.100.3.26:5000"]}EOF
1.2.2、加载配置重启
systemctl daemon-reloadsystemctl restart docker
1.2.3、推送镜像
docker tag hello-world 192.100.3.26:5000/hello-world:latestdocker push 192.100.3.26:5000/hello-world:latest
二、nexus3仓库(强大)
CentOS7下使用Sonatype Nexus3搭建Docker私有仓库
权限问题
2.1、仓库搭建
2.1.1、安装docker
2.1.2、安装nexus3仓库
2.1.3、启动容器
docker run -d --name nexus3 --restart=always -p 8081:8081 -p 8082:8082 -p 8083:8083 -p 8084:8084 -p 8085:8085 -v /nexus-data:/nexus-data -u root --privileged=true sonatype/nexus3#容器默认启动是以nexus用户启动的,所以在/nexus-data没有w权限,需要将目录权限改为777或使容器以root权限运行,须加入u root --privileged=true参数#8081问管理端口,其他未预留端口
2.1.4、访问管理页面
2.1.5、登录
//在docker目录下查找admin.password文件并查看cat /nexus-data/admin.password//这一串guid就是默认密码d374c028-9760-4dd8-b911-3cb67ebddba5
2.1.6、修改密码
2.1.7、安全设置
2.1.8、服务端设置私有仓库
//编辑docker服务端设置vim /etc/docker/daemon.json//将下面内容加到配置文件中"insecure-registries":["http://localhost:5000"]//重载配置文件systemctl daemon-reload//重启Dockersystemctl restart docker//查看设置是否生效docker info
2.1.9、测试
1.登录nexus私有仓库,测试是否可以连接成功//输入admin账号密码docker login http://localhost:5000**登录后用户信息保存在$HOME/.docker/config.json,如果需要切换账号就清空该文件内容即可。docker pull hello-worlddocker tag hello-world localhost:5000/hello-worlddocker push localhost:5000/hello-world#查看
2.2、docker仓库创建
2.2.1、创建docker-hosted
2.2.2、创建docker-proxy
2.2.3、创建docker-group
2.2.4、使用配置
vim /etc/docker/daemon.json
{"registry-mirrors": ["http://192.100.5.140:8084"],"insecure-registries":["192.100.5.140:8082"]}
registry-mirrors:配置镜像仓库,这里可以是docker-group的地址,也可以是单个代理镜像的地址
拉去镜像时:需要填写完整的镜像,否则会报错:docker search 时也会报错:
Error response from daemon: Get https://index.docker.io/v1/search?q=zookeeper&n=25: dial tcp: lookup index.docker.io on 10.0.0.1:53: server misbehaving

