本文记录了搭建简易的(无WebUI)私有Docker Registry服务以及推送镜像的相关内容
- 搭建单一Docker Registry请见《搭建私有Docker Registry以及推送镜像》,本文不再赘述
- 搭建带有Web管理功能的私有Docker Registry,分别需要Nginx(域名解析及反代,这里直接使用宿主机上编译好的)、Docker Registry及Docker Registry Web(提供Web管理界面)
- 为了配置方便,关掉了用户名密码功能,改为使用阿里云安全组直接限制80端口的入方向IP(外网为固定IP或者从某一固定IP代理)
-
使用Docker-Compose编排,配置文件:
version: '3' services: registry-srv: image: registry:2.4 ports: - "9527:5000" volumes: - /var/lib/docker/registry:/var/lib/registry environment: - REGISTRY_STORAGE_FILESYSTEM_ROOTDIRECTORY=/var/lib/registry - REGISTRY_STORAGE_DELETE_ENABLED=true restart: always registry-web: image: hyper/docker-registry-web ports: - "29527:8080" volumes: - /var/lib/docker/registry/web:/data environment: - REGISTRY_URL=http://172.19.0.1:9527/v2 - REGISTRY_NAME=registry.hahahaha.com - REGISTRY_READONLY=false restart: always depends_on: - registry-srv
- registry-srv是私有Docker Registry服务,用的是简配(没上配置文件,只映射了部分环境变量和容器存储位置。把环境变量的“REGISTRY”前缀去掉,改成小写再把下划线改写成层级,就是YAML配置);registry-web是Web界面服务,registry.hahahaha.com的DNS解析和阿里云安全组需要配置下,环境变量里“REGISTRYURL”是需要连接到的私有Docker Registry服务,这里的172.x.0.1的地址是和容器同网段的宿主机地址(不要用URL,访问不了;也不要用localhost,容器内的localhost不会指向宿主机)
- 然后需要配一下Nginx的反代。分别发到上文的9527和29527端口即可。
- 在Docker-Compose配置文件使用
docker-compose up -d
命令拉起服务,然后用docker-compose logs -f
命令监控,直到出来“Server startup……”等内容时,nginx -s reload
,然后访问registry.hahahaha.com就能看到管理界面了。