【八】docker私有化镜像仓库部署
docker私有化镜像仓库部署为 Registry 添加 HTTP 基本认证docker-compose.yml编排文件UI 界面如何使用认证客户端使用方式配置 insecure-registries配置之后重启docker操作镜像部署docker仓库并添加http访问认证为 Registry 添加 HTTP 基本认证创建 htpasswd 认证文件# 1. 安装 htpasswd 工具如果没有sudoaptupdatesudoaptinstallapache2-utils-y# 2. 创建认证文件存放目录mkdir-p~/DockerRegistry/auth# 3. 创建用户替换 your-username 和 your-passwordhtpasswd-Bbnyour-username your-password~/DockerRegistry/auth/htpasswd# 4. 添加更多用户可选htpasswd-Bbnanother-user another-password~/DockerRegistry/auth/htpasswd# 5. 查看已创建的用户cat~/DockerRegistry/auth/htpasswddocker-compose.yml编排文件version:3.8services:registry-server:image:registry:2.8.2container_name:docker-registryrestart:alwaysports:-5000:5000volumes:-./registry-data:/var/lib/registry-./auth:/authenvironment:# 仅需启用删除功能无需任何CORS配置-REGISTRY_STORAGE_DELETE_ENABLEDtrue# 启用 htpasswd 认证-REGISTRY_AUTHhtpasswd-REGISTRY_AUTH_HTPASSWD_REALMRegistry Realm-REGISTRY_AUTH_HTPASSWD_PATH/auth/htpasswdregistry-ui:image:joxit/docker-registry-ui:maincontainer_name:docker-registry-uirestart:alwaysports:-8888:80environment:# 关键启用代理模式UI将作为Registry的反向代理-SINGLE_REGISTRYtrue-REGISTRY_TITLEMy Private Docker Registry-DELETE_IMAGEStrue# 指向Registry服务UI会代理此地址-NGINX_PROXY_PASS_URLhttp://registry-server:5000depends_on:-registry-serverUI 界面如何使用认证1登录http://192.168.11.103:8888/ 弹窗提醒输入账号密码即可2或者修改 UI 的环境变量让它自动携带认证信息registry-ui:image:joxit/docker-registry-ui:maincontainer_name:docker-registry-uirestart:alwaysports:-8080:80environment:-SINGLE_REGISTRYtrue-REGISTRY_TITLEMy Private Docker Registry-DELETE_IMAGEStrue-NGINX_PROXY_PASS_URLhttp://registry-server:5000# 添加认证信息注意密码会明文存在于环境变量中-REGISTRY_USERNAMEyour-username-REGISTRY_PASSWORDyour-passworddepends_on:-registry-server客户端使用方式配置 insecure-registries由于使用的是 HTTP 而非 HTTPSDocker 客户端需要配置信任Linux下sudonano/etc/docker/daemon.json{registry-mirrors:[https://ghcr.nju.edu.cn,https://docker.1ms.run],runtimes:{nvidia:{args:[],path:nvidia-container-runtime}},insecure-registries:[localhost:5000,192.168.11.103:8888,localhost:8888]}window下配置之后重启dockersudo systemctl restart docker操作镜像# 1. 登录会提示输入密码dockerlogin192.168.11.103:8888# 输入用户名: xxx# 输入密码: xxxxx# 2. 推送镜像dockertag ghcr.io/open-webui/open-webui:v0.8.12-cuda192.168.11.103:8888/open-webui:v0.8.12-cudadockerpush192.168.11.103:8888/open-webui:v0.8.12-cuda# 3. 拉取镜像dockerpull192.168.11.103:8888/open-webui:v0.8.12-cuda# 4. 登出可选dockerlogout192.168.11.103:8888