当前位置:首页 » 《随便一记》 » 正文

Docker 安装与配置 Docker Registry 指南

7 人参与  2024年10月16日 08:40  分类 : 《随便一记》  评论

点击全文阅读


一、安装 Docker

解压docker.tar文件

root@iZbp1h35mcqj4eppj2bo1rZ:/data/dw# tar xf docker.tar

解压后检查当前目录,发现解压出一个名为 docker_install 的目录。

进入解压出的目录并查看内容

root@iZbp1h35mcqj4eppj2bo1rZ:/data/dw# cd docker_install/root@iZbp1h35mcqj4eppj2bo1rZ:/data/dw/docker_install# lsdocker-20.10.24-aarch64.tgz  docker-20.10.24-nvidia-x86_64.tgz  install.sh  README.md  uninstall.sh  upgrade.sh  VERSION

解压出的目录包含多个文件,其中 install.sh 脚本用于安装 Docker。

执行安装脚本并指定安装路径和注册表地址

root@iZbp1h35mcqj4eppj2bo1rZ:/data/dw/docker_install# bash install.sh /data/docker 127.0.0.1:5000

安装完成后,Docker 服务处于 inactive (dead) 状态。

创建目录并检查 Docker 镜像

root@iZbp1h35mcqj4eppj2bo1rZ:/data# mkdir imagesroot@iZbp1h35mcqj4eppj2bo1rZ:/data# docker images

初始状态下没有任何镜像。

加载registry.tar镜像文件

root@iZbp1h35mcqj4eppj2bo1rZ:/data/dw# docker load < registry.tar

加载成功后,镜像 ID 为 2d4f4b5309b1

给镜像打标签并成功

root@iZbp1h35mcqj4eppj2bo1rZ:/data/images# docker tag 2d4f4b5309b1 registry:latest

检查镜像是否打标签成功

root@iZbp1h35mcqj4eppj2bo1rZ:/data/images# docker imagesREPOSITORY   TAG       IMAGE ID       CREATED       SIZEregistry     latest    2d4f4b5309b1   4 years ago   26.2MB

总结:

成功解压并安装了 Docker。加载了 registry.tar 镜像。成功为镜像打上了 registry:latest 标签。需要注意的是,安装完成后 Docker 服务未启动,可能需要手动启动 Docker 服务。
二、准备 Docker Registry 配置文件

创建并编辑 config.yml 文件

root@iZbp1h35mcqj4eppj2bo1rZ:/data/images# vim config.yml

config.yml 文件中添加以下内容:

version: 0.1log:  fields:    service: registrystorage:  delete:    enabled: true  cache:    blobdescriptor: inmemory  filesystem:    rootdirectory: /var/lib/registryhttp:  addr: :5000  headers:    X-Content-Type-Options: [nosniff]health:  storagedriver:    enabled: true    interval: 10s    threshold: 3

配置文件说明:

version:配置文件版本。log.fields.service:日志服务名称。storage.delete.enabled:启用删除镜像功能。storage.cache.blobdescriptor:缓存策略。storage.filesystem.rootdirectory:镜像存储目录。http.addr:注册表服务监听地址。http.headers.X-Content-Type-Options:HTTP 头配置。health.storagedriver:存储驱动健康检查配置。
三、运行 Docker Registry 容器

运行 Docker Registry 容器

docker run -d -e REGISTRY_STORAGE_DELETE_ENABLED="true" --name docker-registry --restart=always -p 5000:5000 -v $PWD/registry:/var/lib/registry -v $PWD/config.yml:/etc/docker/registry/config.yml registry

该命令执行后输出一个容器 ID bb88dec8a383eb0155bd7485f4fbbb031354658a8a3d1a7761795e123259c4d9,表示容器启动成功。

具体参数解释:

-d:后台运行容器。-e REGISTRY_STORAGE_DELETE_ENABLED="true":设置环境变量,启用删除镜像功能。--name docker-registry:为容器指定名称 docker-registry--restart=always:设置容器自动重启策略。-p 5000:5000:将主机的 5000 端口映射到容器的 5000 端口。-v $PWD/registry:/var/lib/registry:将当前目录下的 registry 目录挂载到容器内的 /var/lib/registry 目录。-v $PWD/config.yml:/etc/docker/registry/config.yml:将当前目录下的 config.yml 文件挂载到容器内的 /etc/docker/registry/config.yml 文件。registry:使用的镜像名称。

查看运行中的 Docker 容器

root@iZbp1h35mcqj4eppj2bo1rZ:/data/images# docker psCONTAINER ID   IMAGE      COMMAND                  CREATED         STATUS         PORTS                                       NAMESbb88dec8a383   registry   "/entrypoint.sh /etc…"   6 seconds ago   Up 5 seconds   0.0.0.0:5000->5000/tcp, :::5000->5000/tcp   docker-registry

可以看到容器 docker-registry 正在运行,且端口映射正确,状态正常。

检查当前目录内容

root@iZbp1h35mcqj4eppj2bo1rZ:/data/images# lsconfig.yml  registry

当前目录下有两个文件/目录:

config.yml:Docker Registry 的配置文件。registry:挂载到容器内 /var/lib/registry 的目录,用于存储镜像数据。

总结:

成功运行了一个 Docker Registry 容器,并通过环境变量启用了删除镜像功能。通过端口映射和卷挂载,确保主机和容器之间的配置和数据共享。容器运行状态正常,可以通过 docker ps 命令确认。
四、配置 Docker Daemon 以支持私有注册表

编辑 Docker Daemon 配置文件

root@iZbp1h35mcqj4eppj2bo1rZ:/data/dw# cat /etc/docker/daemon.json{    "exec-opts": ["native.cgroupdriver=systemd"],    "max-concurrent-downloads": 10,    "log-driver": "json-file",    "log-level": "warn",    "log-opts": {        "max-size": "10m",        "max-file": "3"    },    "bip":"172.16.0.1/16",    "insecure-registries":["127.0.0.1:5000","47.251.16.255:5000"],    "data-root":"/data/docker"}

配置文件说明:

exec-opts:Docker 容器的执行选项。max-concurrent-downloads:最大并发下载数。log-driver:日志驱动类型。log-level:日志级别。log-opts:日志选项。bip:Docker 网桥 IP 地址。insecure-registries:不安全的注册表地址列表。data-root:Docker 数据目录。

重启 Docker 服务

root@iZbp1h35mcqj4eppj2bo1rZ:/data/images# systemctl restart docker

五、从私有注册表拉取镜像

拉取镜像

root@iZbp1h35mcqj4eppj2bo1rZ:/data/images# docker pull 47.251.16.255:5000/openmmlab/lmdeploy:latest

拉取成功后,输出如下信息:

latest: Pulling from openmmlab/lmdeploy846c0b181fff: Pulling fs layer 846c0b181fff: Pull complete 61b1f751e984: Pull complete ...Digest: sha256:5fd5c031bf1cf2aa23153cfd5dd2bb8c9d9ce7062454c8f81d9b09ac5677fee2Status: Downloaded newer image for 47.251.16.255:5000/openmmlab/lmdeploy:latest47.251.16.255:5000/openmmlab/lmdeploy:latest

检查镜像是否拉取成功

root@iZbp1h35mcqj4eppj2bo1rZ:/data/dw# docker imagesREPOSITORY                              TAG       IMAGE ID       CREATED       SIZE47.251.16.255:5000/openmmlab/lmdeploy   latest    177c26fffb4d   3 weeks ago   20.1GBregistry                                latest    2d4f4b5309b1   4 years ago   26.2MB

六、推送镜像到私有注册表

标记镜像

root@iZbp1h35mcqj4eppj2bo1rZ:/data/dw# docker tag 47.251.16.255:5000/openmmlab/lmdeploy 127.0.0.1:5000/openmmlab/lmdeploy

推送镜像

root@iZbp1h35mcqj4eppj2bo1rZ:/data/dw# docker push 127.0.0.1:5000/openmmlab/lmdeploy

推送成功后,输出如下信息:

Using default tag: latestThe push refers to repository [127.0.0.1:5000/openmmlab/lmdeploy]54444fae79ec: Pushed 5f70bf18a086: Pushed ee3dcf62fd47: Pushed ...latest: digest: sha256:5fd5c031bf1cf2aa23153cfd5dd2bb8c9d9ce7062454c8f81d9b09ac5677fee2 size: 6421

检查推送结果

root@iZbp1h35mcqj4eppj2bo1rZ:/data/dw# docker imagesREPOSITORY                              TAG       IMAGE ID       CREATED       SIZE127.0.0.1:5000/openmmlab/lmdeploy       latest    177c26fffb4d   3 weeks ago   20.1GB47.251.16.255:5000/openmmlab/lmdeploy   latest    177c26fffb4d   3 weeks ago   20.1GBregistry                                latest    2d4f4b5309b1   4 years ago   26.2MB

总结:

成功标记并推送镜像到本地私有注册表。确保镜像在私有注册表中可用。

点击全文阅读


本文链接:http://zhangshiyu.com/post/172401.html

<< 上一篇 下一篇 >>

  • 评论(0)
  • 赞助本站

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。

关于我们 | 我要投稿 | 免责申明

Copyright © 2020-2022 ZhangShiYu.com Rights Reserved.豫ICP备2022013469号-1