一、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-reload
systemctl restart docker
1.2.3、推送镜像
docker tag hello-world 192.100.3.26:5000/hello-world:latest
docker 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
//重启Docker
systemctl restart docker
//查看设置是否生效
docker info
2.1.9、测试
1.登录nexus私有仓库,测试是否可以连接成功
//输入admin账号密码
docker login http://localhost:5000
**登录后用户信息保存在$HOME/.docker/config.json,如果需要切换账号就清空该文件内容即可。
docker pull hello-world
docker tag hello-world localhost:5000/hello-world
docker 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