前言
以下部分知识只适用于linux,不适合小白,请自行甄别执行
1.搭建
#参考 https://blog.csdn.net/u011535199/article/details/107457275
version: '3'
services:
registry:
restart: always
image: registry:2
ports:
- 5000:5000
environment:
#REGISTRY_HTTP_TLS_CERTIFICATE: /certs/registry.crt
#REGISTRY_HTTP_TLS_KEY: /certs/registry.key
REGISTRY_AUTH: htpasswd
REGISTRY_AUTH_HTPASSWD_PATH: /auth/htpasswd
REGISTRY_AUTH_HTPASSWD_REALM: Registry Realm
volumes:
- /mnt/nas/edison/registry/data:/var/lib/registry
# - /mnt/nas/edison/registry/cert:/certs
- /mnt/nas/edison/registry/auth:/auth
- /mnt/nas/edison/registry/config.yml:/usr/local/docker/config.yml
registry-ui:
image: konradkleine/docker-registry-frontend:v2
restart: always
environment:
- ENV_DOCKER_REGISTRY_HOST=registry
- ENV_DOCKER_REGISTRY_PORT=5000
# - ENV_DOCKER_REGISTRY_USE_SSL=0 没有ssl证书这个一定要注释,否则请求会报502
ports:
- "5001:80"
2.密码
可以在本地执行一下命令后将auth.htpasswd的内容复制到线上的/xxx/registry/auth/htpasswd中
本地没有htpasswd的可以自行安装,比如manjaro或者arch采用sudo pacman -S apache即可安装
htpasswd -nbB 《用户名》 《密码》 >> auth.htpasswd
3.配置源(registry-mirrors和insecure-registries不要搞混了)
/etc/docker/daemon.json
{
"registry-mirrors": [
"https://docker.1ms.run"
],
"insecure-registries":["192.168.29.110:5000"]
}
3.推送镜像前进行cli登录
docker login 192.168.29.110:5000
#下面这里根据提示输入对应的账号密码看到 Login Succeeded即证明登录成功
Username: xxxx
Password:
Configure a credential helper to remove this warning. See
https://docs.docker.com/engine/reference/commandline/login/#credential-stores
Login Succeeded
4.需要提交的镜像设置tag,并且将镜像设置到对应的源上(本地这个必须要)
docker tag docker-npm-lazy-mirror 192.168.29.110:5000/docker-npm-lazy-mirror:v1
5.提交
$ docker push 192.168.29.110:5000/docker-npm-lazy-mirror:v1
The push refers to repository [192.168.29.110:5000/docker-npm-lazy-mirror]
6d1e2462296d: Pushed
78bfabdd0970: Pushed
5437413e7286: Pushed
71cfb19d4007: Pushed
37f043756873: Pushed
c0cd119f9646: Pushed
23044129c2ac: Pushed
8b229ec78121: Pushed
3b65755e1220: Pushed
2c833f307fd8: Pushed
v1: digest: sha256:73c5435fc96fd21052e2419c5fdad9178d4b235eff96d41cb5b0749baf2fdad8 size: 2426
后记
当然这个docker-compose中包含一个web服务以实现类似docker-hub的web界面,用于查看和搜索镜像,在端口5001