Docker 仓库管理学习笔记

什么是 Docker 仓库?

Docker 仓库是用于存储、分发和管理镜像的中央位置。它可以被公开访问,也可以是私有的。Docker 仓库包含多个仓库,每个仓库又包含多个镜像。

Docker Hub

Docker Hub 是 Docker 官方提供的公共仓库,它包含了大量的镜像。你可以使用 Docker CLI 向 Docker Hub 登录、搜索、拉取、推送和删除镜像。

登录 Docker Hub

Copy Code
$ docker login

拉取 Docker Hub 中的镜像

Copy Code
$ docker pull nginx

推送到 Docker Hub

Copy Code
$ docker tag image username/repository:tag $ docker push username/repository:tag

私有仓库

除了使用 Docker Hub 外,你还可以搭建自己的私有仓库。

搭建私有仓库

使用 Docker Compose 快速搭建私有仓库:

Copy Code
version: '3' services: registry: restart: always image: registry:2 ports: - 5000:5000 environment: REGISTRY_STORAGE_FILESYSTEM_ROOTDIRECTORY: /data volumes: - ./data:/data

运行 docker-compose up 命令启动私有仓库容器。

上传本地镜像到私有仓库

Copy Code
# 为镜像打标签 $ docker tag nginx localhost:5000/my-nginx # 推送至私有仓库 $ docker push localhost:5000/my-nginx

从私有仓库中拉取镜像

Copy Code
$ docker pull localhost:5000/my-nginx

实例

假设你需要部署一个名为 my-app 的 Web 应用,这个应用需要依赖一个名为 mydb 的数据库。可以通过 Docker Compose 部署应用,并在私有仓库中存储应用和数据库镜像。

yamlCopy Code
version: '3' services: web: build: . ports: - "8000:8000" depends_on: - db db: image: postgres:latest volumes: - ./data:/var/lib/postgresql/data

构建镜像并推送到私有仓库:

Copy Code
$ docker-compose build $ docker-compose push

在另一台机器上拉取镜像并启动应用:

Copy Code
$ docker-compose pull $ docker-compose up -d