ubuntu

ubuntu docker如何搭建私有仓库

小樊
44
2025-05-09 21:20:36
栏目: 智能运维

在Ubuntu上搭建Docker私有仓库,你可以使用Docker自带的registry镜像。以下是详细的步骤:

1. 安装Docker

如果你还没有安装Docker,可以按照以下步骤进行安装:

sudo apt update
sudo apt install docker.io

2. 拉取Registry镜像

使用以下命令拉取Docker Registry镜像:

docker pull registry:2

3. 运行Registry容器

创建一个目录来存储注册表数据,并运行Registry容器:

mkdir -p /myregistry
docker run -d -p 5000:5000 --restart=always --name registry registry:2

这个命令会在后台运行一个名为registry的容器,并将容器的5000端口映射到主机的5000端口。

4. 配置Docker客户端

为了让你的Docker客户端能够与私有仓库通信,你需要配置Docker客户端。创建或编辑/etc/docker/daemon.json文件,添加以下内容:

{
  "insecure-registries" : ["localhost:5000"]
}

然后重启Docker服务:

sudo systemctl restart docker

5. 标记和推送镜像到私有仓库

假设你有一个本地镜像myimage,你可以将其标记并推送到私有仓库:

docker tag myimage localhost:5000/myimage:latest
docker push localhost:5000/myimage:latest

6. 从私有仓库拉取镜像

你可以从私有仓库拉取镜像:

docker pull localhost:5000/myimage:latest

7. 安全性考虑

默认情况下,私有仓库是不安全的,因为它允许任何人访问。为了提高安全性,你可以使用以下方法:

使用TLS加密

  1. 生成TLS证书和密钥:
mkdir -p /myregistry/certs
openssl req -newkey rsa:4096 -nodes -sha256 -keyout /myregistry/certs/domain.key -x509 -days 365 -out /myregistry/certs/domain.crt
  1. 运行Registry容器并挂载证书和密钥:
docker run -d -p 5000:5000 \
  --restart=always \
  --name registry \
  -v /myregistry/certs:/certs \
  -e REGISTRY_HTTP_TLS_CERTIFICATE=/certs/domain.crt \
  -e REGISTRY_HTTP_TLS_KEY=/certs/domain.key \
  registry:2
  1. 更新Docker客户端配置:
{
  "insecure-registries" : ["localhost:5000"]
}

配置认证

  1. 创建一个认证配置文件/etc/docker/auth.json
{
  "auths": {
    "localhost:5000": {
      "username": "admin",
      "password": "password"
    }
  }
}
  1. 更新Docker客户端配置:
{
  "insecure-registries" : ["localhost:5000"],
  "credsStore": "desktop"
}

通过以上步骤,你就可以在Ubuntu上搭建一个安全的Docker私有仓库。

0
看了该问题的人还看了