导入 registry 镜像到 NAS 中
# 查看镜像支持的 CPU 架构,需注意,拉取到本机的是符合本机的架构了(docker虽然是所有架构都支持的,但是并不代表下载的镜像是支持所有架构的)
# 该代码只有在WSL下才能执行,Windows的CMD会报错
docker manifest inspect <IMAGE_NAME> | grep Architecture
# 拉取 linux/arm64 架构
# 威联通的 docker 镜像导入有问题,只能用 ssh 连接到 NAS 用命令行操作
docker save -o $HOME/registry.tar registry
docker load -i myimage.tar
部署服务
参考的一些网上配置教程,配置文件一直都不生效,这些教程都给了错误的挂载路径。
services:
registry:
stdin_open: true
tty: true
volumes:
- ./registry:/var/lib/registry
- ./auth:/auth
- ./config:/etc/docker/registry
restart: always
container_name: registry
image: registry:latest
docker-registry-browser:
container_name: registry_browser
restart: always
environment:
- SECRET_KEY_BASE=a8073d29f934047d1058e98542109d321cee50ff8a9df8edbecce0c237eacf817e040d4d22b20ae7943ff393ebbf82b7650cdd3d0e942f88cde72eee1165ec3f
- DOCKER_REGISTRY_URL=http://registry:5000/v2
image: klausmeyer/docker-registry-browser
# config.yml 需要放在config目录下
version: 0.1
log:
fields:
service: registry
storage:
cache:
blobdescriptor: inmemory
# 配置镜像可以删除
delete:
enabled: true
filesystem:
rootdirectory: /var/lib/registry
http:
addr: :5000
headers:
X-Content-Type-Options: [nosniff]
health:
storagedriver:
enabled: true
interval: 10s
threshold: 3
# 配置登录认证授权
auth:
htpasswd:
path: /auth/htpasswd
realm: Registry Realm
连接 registry
# 测试命令,本机访问
curl http://localhost:5000/v2/_catalog
# 其他主机访问,如果访问失败,可以使用 nginx 转发
curl http://server-ip:5000/v2/_catalog
curl http://localhost:5000/v2/go_p/tags/list
curl http://localhost:5000/v2/golang/tags/list
registry 常用命令
# 给镜像打标签
docker tag go_p:latest localhost:5000/go_p:1.0
# 推送镜像命令
docker push localhost:5000/go_p:1.0
# 删除镜像命令
curl -u baeldung-user:baeldung -X DELETE http://localhost:5000/v2/golang/manifests/sha256:963da5f97ab931c0df6906e8c0ebc7db28c88d013735ae020f9558c3e6cf0580
如果使用nginx做代理的话,nginx会对上传文件大小做限制,需要添加 nginx 配置client_max_body_size 0;
配置登录
# ubuntu 下
sudo apt install apache2-utils
# 生成认证文件
htpasswd -Bbn admin admin > htpasswd
#使用明文登录
docker login localhost:5000 -u baeldung-user -p baeldung
# 配置登录之后查看
curl -u baeldung-user:baeldung http://localhost:5000/v2/_catalog
curl -u baeldung-user:baeldung http://localhost:5000/v2/golang/tags/list
配置可视化界面
项目开源地址:https://github.com/klausmeyer/docker-registry-browser?tab=readme-ov-file
生成密钥 openssl rand -hex 64
使用 VS code 管理
开始在 Visual Studio Code 中使用 Docker 应用
Docker最全教程之使用 Visual Studio Code玩转Docker(二十) - 雪雁 - 博客园