导入 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;

配置登录

Just a moment...

# 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(二十) - 雪雁 - 博客园

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

目录