1 常见镜像仓库服务
2 搭建私有镜像仓库
2.1 简化版镜像仓库(不演示)
- 搭建镜像仓库可以基于Docker官方提供的DockerRegistry来实现。
- 官网地址:https://hub.docker.com/_/registry
- Docker官方的Docker Registry是一个基础版本的Docker镜像仓库,具备仓库管理的完整功能,但是没有图形化界面。
- 搭建方式比较简单,命令如下(镜像仓库服务默认5000端口):
docker run -d \ --restart=always \ --name registry \ -p 5000:5000 \ -v registry-data:/var/lib/registry \ registry
- 命令中挂载了一个数据卷registry-data到容器内的/var/lib/registry 目录,这是私有镜像库存放数据的目录。
- 访问http://YourIp:5000/v2/_catalog 可以查看当前私有镜像服务中包含的镜像。
2.2 带有图形化界面的镜像仓库(演示)
2.2.1
注意:在此2.2之前需要先进行2.3配置Docker信任地址
带有图形化界面的版本不是docker官方的,是第三方开发的,属于官方简化版镜像仓库额外的服务。
使用DockerCompose部署带有图象界面的DockerRegistry,命令如下(官方简化版镜像仓库服务&第三方图像化界面服务的组合部署):
version: '3.0'
services:
registry:
image: registry
volumes:
- ./registry-data:/var/lib/registry
ui:
image: joxit/docker-registry-ui:static
ports:
- 8080:80
environment:
- REGISTRY_TITLE=haifei私有docker镜像仓库
- REGISTRY_URL=http://registry:5000
depends_on:
- registry
2.2.2
"insecure-registries":["http://192.168.2.109:8080"]
2.2.3
- 在/tmp/目录下新建文件夹registry-ui
- 在/tmp/registry-ui/目录下新建docker-compose.yml
- 利用filezilla工具将上面的部署命令粘贴进docker-compose.yml
- 通过命令
docker-compose up -d
部署服务
- 通过命令
docker-compose logs -f
查看日志
可以看到已经启动成功了
现在本地浏览器远程访问http://192.168.2.109:8080/测试一下
2.3 配置Docker信任地址
我们的私服采用的是http协议,默认不被Docker信任,所以需要做如下配置:
# 打开要修改的文件
vi /etc/docker/daemon.json
# 添加内容:
"insecure-registries":["http://YourIp:8080"]
# 重加载
systemctl daemon-reload
# 重启docker
systemctl restart docker
3 推送 & 拉取镜像
3.1 tag
- 推送镜像到私有镜像服务必须先tag
- 重新tag本地镜像,名称前缀为私有仓库的地址
http://YourIp:8080/
- 命令:
docker tag nginx:latest 192.168.2.109:8080/nginx:1.0
,此处以nginx为例 - 含义:将原先的
nginx:latest
重命名为新的192.168.2.109:8080/nginx:1.0
- 可以看到
192.168.2.109:8080/nginx:1.0
跟nginx:latest
的ID一样,所以两者实际上是一样的;也可以说该镜像只有一份实物,但有两个名字
3.2 向镜像仓库推送镜像
- 命令:
docker push 192.168.2.109:8080/nginx:1.0
3.3 从镜像仓库拉取镜像
- 命令:
docker pull 192.168.2.109:8080/nginx:1.0
- 删除原有的
192.168.2.109:8080/nginx:1.0
镜像(实际是nginx:latest
镜像的复制)
- 删除
nginx:latest
镜像(期间发现了依赖于该镜像的容器mn
,先删除mn再删除nginx)
- 拉取新镜像