ubuntu

如何在Ubuntu上搭建Docker私有仓库

小樊
37
2025-08-01 10:35:13
栏目: 智能运维

在Ubuntu上搭建Docker私有仓库可以通过以下步骤完成。我们将使用Docker Registry作为私有仓库的实现。

步骤1:安装Docker

首先,确保你的Ubuntu系统上已经安装了Docker。如果没有安装,可以使用以下命令进行安装:

sudo apt update
sudo apt install docker.io

步骤2:启动并启用Docker服务

确保Docker服务正在运行:

sudo systemctl start docker
sudo systemctl enable docker

步骤3:拉取Docker Registry镜像

从Docker Hub上拉取最新的Docker Registry镜像:

docker pull registry:2

步骤4:运行Docker Registry容器

使用以下命令运行一个Docker Registry实例:

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

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

步骤5:配置Docker客户端

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

{
  "insecure-registries" : ["your-private-registry-ip:5000"]
}

your-private-registry-ip替换为你的私有仓库所在的主机IP地址或域名。

然后,重新加载Docker守护进程的配置:

sudo systemctl daemon-reload

步骤6:标记并推送镜像到私有仓库

假设你有一个名为my-image的镜像,你可以将其标记并推送到私有仓库:

docker tag my-image your-private-registry-ip:5000/my-image
docker push your-private-registry-ip:5000/my-image

步骤7:从私有仓库拉取镜像

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

docker pull your-private-registry-ip:5000/my-image

步骤8:配置TLS(可选但推荐)

为了提高安全性,建议为你的私有仓库配置TLS。以下是基本步骤:

  1. 生成TLS证书

    mkdir -p /etc/docker/registry/certs
    openssl req -newkey rsa:4096 -new -nodes -x509 -days 3650 -keyout /etc/docker/registry/certs/domain.key -out /etc/docker/registry/certs/domain.crt -subj "/CN=your-private-registry-ip"
    
  2. 修改Docker Registry配置: 创建或编辑/etc/docker/registry/config.yml文件,添加以下内容:

    version: 0.1
    log:
      fields:
        service: registry
    storage:
      cache:
        layerinfo: inmemory
      filesystem:
        rootdirectory: /var/lib/registry
    http:
      addr: :5000
      tls:
        certificate: /etc/docker/registry/certs/domain.crt
        key: /etc/docker/registry/certs/domain.key
    
  3. 重新启动Docker Registry容器

    docker run -d -p 5000:5000 --restart=always --name registry -v /etc/docker/registry/config.yml:/etc/docker/registry/config.yml -v /etc/docker/registry/certs:/etc/docker/registry/certs registry:2
    
  4. 配置Docker客户端使用TLS: 更新/etc/docker/daemon.json文件,添加以下内容:

    {
      "insecure-registries" : ["your-private-registry-ip:5000"],
      "tlsverify": true,
      "tlscacert": "/etc/docker/certs/ca.pem",
      "tlscert": "/etc/docker/certs/server-cert.pem",
      "tlskey": "/etc/docker/certs/server-key.pem"
    }
    

    然后重新加载Docker守护进程的配置:

    sudo systemctl daemon-reload
    

通过以上步骤,你就可以在Ubuntu上成功搭建一个Docker私有仓库,并进行镜像的推送和拉取操作。

0
看了该问题的人还看了