Ubuntu20.04 部署 Docker 镜像仓库
- Docker
- 2024-09-30
- 51热度
- 0评论
1、安装 dokcer(此处省略)
2、安装 htpasswd 工具
sudo apt-get update
sudo apt-get install apache2-utils
3、创建挂载容器的目录以及密码文件:
mkdir -p /docker/volume/registry/auth/
htpasswd -Bc /docker/volume/registry/auth/htpasswd root
# 输入 root 的密码
4、创建 registry 容器挂载数据的目录:
mkdir -p /docker/volume/registry/data
5、创建 registry 挂载配置文件的目录,并创建配置文件:
mkdir -p /docker/volume/registry/conf
vim /docker/volume/registry/conf/config.yml,内容如下:
version: 0.1
log:
level: debug
fields:
service: registry
environment: production
storage:
filesystem:
rootdirectory: /var/lib/registry
http:
addr: :5000
headers:
Access-Control-Allow-Origin: ['http://node63:8080','http://192.168.10.63']
Access-Control-Allow-Methods: ['HEAD', GET', 'OPTIONS', 'DELETE', 'POST', 'PUT']
Access-Control-Allow-Headers: ['Authorization','Accept']
http2:
disabled: false
auth:
htpasswd:
realm: basic-realm
path: /auth/htpasswd
6、创建 docker 网络:
docker network create registry-net
7、启动 registry 容器:
docker run -d \
--name registry \
--network registry-net \
-v /docker/volume/registry/auth:/auth \
-v /docker/volume/registry/data:/var/lib/registry \
-v /docker/volume/registry/conf/config.yml:/etc/docker/registry/config.yml \
-e REGISTRY_AUTH=htpasswd \
-e REGISTRY_AUTH_HTPASSWD_REALM="Registry Realm" \
-e REGISTRY_AUTH_HTPASSWD_PATH=/auth/htpasswd \
-e REGISTRY_HTTP_SECRET=secretkey \
-p 5000:5000 \
registry:2
8、修改 docker 的配置
提示
因为我们需要将 docker 上的镜像推送到 registry 中,所以,也需要修改 docker 的配置,添加我们的 registry 镜像仓库的地址。
将 node63 添加到 docker 的安全镜像仓库名单中,避免使用 docker 推送镜像到 registry 中报错,将 “insecure-registries”: [“192.168.10.63:5000”]’ 加入到 /etc/docker/daemon.json 中,再使用 systemctl restart docker 重启 Docker 就可以了。
{
"insecure-registries": ["node63:5000"]
}
9、安装 registry 可视化工具,启动一个 registry-browser 容器并连接到自定义网络:
docker run -d \
--name registry-browser \
--network registry-net \
-e REGISTRY_TITLE="Docker Registry Browser" \
-e NGINX_PROXY_PASS_URL="http://registry:5000" \
-e REGISTRY_AUTH="true" \
-e REGISTRY_AUTH_USER="root" \
-e REGISTRY_AUTH_PASSWORD="123456" \
-p 8080:80 \
joxit/docker-registry-ui:latest
提示
比较老的版本中使用 -e REGISTRY_URL=“http://registry:5000” \ 配置 registry 的地址,如果新版本中使用这个配置,在前端会出现 An error occured: Check your connection and your registry must have Access-Control-Allow-Origin header set to http://node63:8080这个异常,需要使用 NGINX_PROXY_PASS_URL 这个配置。
10、访问主机的 8080 端口即可看到 registry 中的镜像。
配套视频:

鲁ICP备19063141号
鲁公网安备 37010302000824号