Docker 私有存储库


你可能不想在 Docker Hub 上托管存储库,而是需要拥有自己的私有存储库,为此,Docker 本身提供了一个存储库容器。

让我们看看如何下载和使用存储库的容器。

步骤1: 使用 docker run 命令下载私有存储库,如下所示:

sudo docker run -d -p 5000:5000 --name registry registry:2

上述命令需要注意以下几点:

  • registry是由 Docker 管理的容器,可用于托管私有存储库;

  • 容器暴露的端口号是 5000,因此使用 -p 选项将相同的端口号映射到本地主机上的 5000 端口号;

  • 我们将存储库容器标记为“2”,以在 Docker 主机上区分它;

  • –d 选项用于在分离模式下运行容器,这是为了容器可以在后台运行。

Detached Mode

步骤2: 执行 docker ps 命令确保存储库容器正在运行:

Docker PS

步骤3: 现在让我们标记现有的镜像之一,以便将其推送到本地存储库。在例子中,因为有centos本地可用的镜像,所以将其标记到私有存储库并添加一个标记名称centos

sudo docker tag 67591570dd29 localhost:5000/centos

上述命令需要注意以下几点:

  • 67591570dd29指的是centos的镜像 ID;

  • localhost:5000是我们私有存储库的位置;

  • 在私有存储库中将存储库名称标记为centos

Private Repository

步骤4: 现在我们来使用 docker push 命令将存储库推送到我们的私有存储库。

sudo docker push localhost:5000/centos

在这里,我们正在推送centos镜像到本地的私有存储库localhost:5000

Localhost

步骤5: 现在使用docker rmi命令删除为centos准备的本地镜像,然后我们可以从私有存储库下载所需的centos镜像。

sudo docker rmi centos:latest 
sudo docker rmi 67591570dd29

Docker RMI Commands

步骤6: 现在本地机器上没有任何centos镜像,可以使用下面的docker pull命令,从私有存储库中拉取centos镜像。

sudo docker pull localhost:5000/centos

在这里,我们正在从本地的私有存储库localhost:5000拉取centos镜像。

Pulling Centos Image

如果现在在系统上看到镜像,将看到centos镜像也是如此。