一、简化版镜像仓库
Docker官方的Docker Registry是一个基础版本的Docker镜像仓库,具备仓库管理的完整功能,但是没有图形化界面。搭建方式比较简单,命令如下:
docker run -d \
--restart=always \
--name registry \
-p 5000:5000 \
-v /home/docker/registry-data:/var/lib/registry \
registry
命令中挂载了一个数据卷registry-data到容器内的/var/lib/registry 目录,这是私有镜像库存放数据的目录。
访问http://ip:5000/v2/_catalog 可以查看当前私有镜像服务中包含的镜像
二、有图形化界面版本
1、配置Docker信任地址
私服采用的是http协议,默认不被Docker信任,所以需要做一个配置
#打开要修改的文件
vi /etc/docker/daemon.json
#添加内容:
{
"insecure-registries":["http://192.168.0.101:81"]
}
#重新加载
systemctl daemon-reload
#重启docker
systemctl restart docker
2、使用DockerCompose部署带有图象界面的DockerRegistry
创建目录,并在其目录下新建文件
mkdir registry-ui
touch docker-compose.yml
编辑docker-compose.yml
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=私有仓库
- REGISTRY_URL=http://registry:5000
depends_on:
- registry
docker compose 服务之间访问使用服务名访问
3、执行docker-compose
[root@localhost registry-ui]# docker-compose up -d
Creating network "registry-ui_default" with the default driver
Pulling ui (joxit/docker-registry-ui:static)...
static: Pulling from joxit/docker-registry-ui
540db60ca938: Pull complete
197dc8475a23: Pull complete
39ea657007e5: Pull complete
37afbf7d4c3d: Pull complete
0c01f42c3df7: Pull complete
d590d87c9181: Pull complete
3333c94ae44f: Pull complete
33d7cca6fc9f: Pull complete
076b2dd9bdd1: Pull complete
b70198f04ee7: Pull complete
1fb6c5acc953: Pull complete
Digest: sha256:b0657b6be748173583516e411bd71552e54cb7d5dda94964726297ce8774415c
Status: Downloaded newer image for joxit/docker-registry-ui:static
Creating registry-ui_registry_1 ... done
Creating registry-ui_ui_1 ... done
三、镜像推送、拉取
1、tag本地镜像
名称前缀为私有仓库的地址:192.168.0.101:81/
docker tag rabbitmq:3.8.3 192.168.0.101:81/rabbitmq:3.8.3
2、推送镜像
docker push 192.168.0.101:81/rabbitmq:3.8.3
3、拉取镜像
docker pull 192.168.0.101:81/rabbitmq:3.8.3