1 Docker仓库简介

Docker仓库就是Docker镜像存储的地方

Docker的仓库有三大类:

公有仓库:Docker hub、Docker cloud等
私有仓库:registry、harbor等
本地仓库:在本主机存储镜像的地方。

和仓库相关的命令:

docker login [仓库名称]
docker pull [镜像名称]
docker push [镜像名称]
docker search [镜像名称]

2 公有仓库部署

注册

可以在 https://hub.docker.com 免费注册一个 Docker 账号。

登录

可以通过执行 docker login 命令交互式的输入用户名及密码来完成在命令行界面登录 Docker Hub。
可以通过 docker logout 退出登录。

拉取镜像

可以通过 docker search 命令来查找官方仓库中的镜像,并利用 docker pull 命令来将它下载到本地。

推送镜像

用户也可以在登录后通过 docker push 命令来将自己的镜像推送到 Docker Hub。
以下命令中的 username 请替换为你的 Docker 账号用户名。

  1. docker tag ubuntu:18.04 username/ubuntu:18.04
  2. docker push username/ubuntu:18.04

自动构建

自动构建(Automated Builds)功能对于需要经常升级镜像内程序来说,十分方便。
有时候,用户构建了镜像,安装了某个软件,当软件发布新版本则需要手动更新镜像。

而自动构建允许用户通过 Docker Hub 指定跟踪一个目标网站(支持 GitHub 或 BitBucket)上的项目,一旦项目发生新的提交 (commit)或者创建了新的标签(tag),Docker Hub 会自动构建镜像并推送到 Docker Hub 中。

要配置自动构建,包括如下的步骤:
登录 Docker Hub;
在 Docker Hub 点击右上角头像,在账号设置(Account Settings)中关联(Linked Accounts)目标网站;
在 Docker Hub 中新建或选择已有的仓库,在 Builds 选项卡中选择 Configure Automated Builds;
选取一个目标网站中的项目(需要含 Dockerfile)和分支;
指定 Dockerfile 的位置,并保存。
之后,可以在 Docker Hub 的仓库页面的 Timeline 选项卡中查看每次构建的状态。

3 私有仓库部署

有时候使用 Docker Hub 这样的公共仓库可能不方便,我们可以创建一个私有仓库供个人或团队内使用。接下来用registry来部署一个私有的仓库

下载registry镜像

  1. sudo docker pull registry

配置docker

  1. cd /etc/docker
  2. sudo vi daemon.json

写入如下内容

  1. {
  2. "registry-mirrors": [],
  3. "insecure-registries": ["192.168.250.130:5000"],
  4. "dns": ["8.8.8.8", "114.114.114.114"]
  5. }
  1. 备注:
  2. "registry-mirrors": [], # 设置镜像加速地址
  3. "insecure-registries": [], # 设置docker的私有仓库IP地址为宿主机ip
  4. "dns": [], # 设置容器的DNS地址

重启docker

  1. sudo service docker restart

启动registry容器

  1. sudo docker run -d --network=host registry

重命名镜像

  1. sudo docker tag ubuntu_meiduo 192.168.250.130:5000/ubuntu_meiduo

在这里插入图片描述 =550x)

上传镜像

  1. sudo docker push 192.168.250.130:5000/ubuntu_meiduo

Docker仓库管理 - 图2
测试: 从ubuntu宿主机拉取, 拉取成功
Docker仓库管理 - 图3

测试: 从同网段下的mac电脑拉取, 失败
Docker仓库管理 - 图4
这是因为 Docker 默认不允许非 HTTPS 方式推送或拉取镜像。我们可以通过 Docker 的配置选项来取消这个限制,或者使之能够通过 HTTPS 访问私有仓库。