安装docker私有镜像库及简易管理工具
1,使用compose文件拉起私有库和简易管理工具
- compose文件如下:
version: '2'
services:
registry:
image: registry
hostname: registry
volumes:
- "/usr/docker/registry/config.yml:/etc/docker/registry/config.yml"
- "/opt/registry-var:/var/lib/registry"
ports:
- 5000:5000
tty: true
networks:
app_net:
registry-web:
image: hyper/docker-registry-web
hostname: registryweb
ports:
- 8181:8080
volumes:
- "/usr/docker/registryweb/registryweb.yml:/conf/config.yml:ro"
# environment:
# DOCKER_REGISTRY_URL: http://172.16.11.31:5000
# PUBLIC_REGISTRY_URL: http://172.16.11.31:5000
# ENABLE_DELETE_IMAGES: 'true'
# BASIC_AUTH_USER: 'admin'
# BASIC_AUTH_PASSWORD: 'password'
tty: true
networks:
app_net:
networks:
app_net:
driver: bridge
ipam:
driver: default
config:
- subnet: 172.20.0.0/16
注意:挂载的配置文件如下
私有库的配置文件:
version: 0.1
log:
fields:
service: registry
storage:
cache:
blobdescriptor: inmemory
filesystem:
rootdirectory: /var/lib/registry
delete:
enabled: true
http:
addr: :5000
headers:
X-Content-Type-Options: [nosniff]
# Access-Control-Allow-Headers: ['*']
# Access-Control-Allow-Origin: ['*']
# Access-Control-Allow-Methods: ['GET,POST,PUT,DELETE']
health:
storagedriver:
enabled: true
interval: 10s
threshold: 3
管理工具的配置文件:
registry:
# Docker registry url
url: http://172.16.11.31:5000/v2
# Docker registry fqdn
name: 172.16.11.31:5000
# To allow image delete, should be false
readonly: false
auth:
# Enable authentication
enabled: false
# Token issuer
# should equals to auth.token.issuer of docker registry
# issuer: 'my issuer'
# Private key for token signing
# certificate used on auth.token.rootcertbundle should signed by this key
# key: /conf/auth.key
2,删除镜像
在管理界面中只能逻辑删除镜像,并不能真正的释放空间,需要执行私有库的命令才可以。
命令如下:那个ID是私有镜像库的容器ID
docker exec 2a8ece33062a bin/registry garbage-collect /etc/docker/registry/config.yml
把这个命令做成一个 *.sh 文件。
在linux的定时任务中把这个命令加进去。用到的命令如下:
systemctl list-units --type=service #查看所有开机启动的服务
如果没有启动定时任务,用下面的命令,把释放docker私有镜像库空间的命令加进去
systemctl start crontab
systemctl enable crontab
crontab -e
0 */1 * * * /xx/xx.sh
crontab -l
0 */1 * * * /xx/xx.sh