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 账号用户名。
docker tag ubuntu:18.04 username/ubuntu:18.04
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镜像
sudo docker pull registry
配置docker
cd /etc/docker
sudo vi daemon.json
写入如下内容
{
"registry-mirrors": [],
"insecure-registries": ["192.168.250.130:5000"],
"dns": ["8.8.8.8", "114.114.114.114"]
}
备注:
"registry-mirrors": [], # 设置镜像加速地址
"insecure-registries": [], # 设置docker的私有仓库IP地址为宿主机ip
"dns": [], # 设置容器的DNS地址
重启docker
sudo service docker restart
启动registry容器
sudo docker run -d --network=host registry
重命名镜像
sudo docker tag ubuntu_meiduo 192.168.250.130:5000/ubuntu_meiduo
=550x)
上传镜像
sudo docker push 192.168.250.130:5000/ubuntu_meiduo
测试: 从ubuntu宿主机拉取, 拉取成功
测试: 从同网段下的mac电脑拉取, 失败
这是因为 Docker 默认不允许非 HTTPS 方式推送或拉取镜像。我们可以通过 Docker 的配置选项来取消这个限制,或者使之能够通过 HTTPS 访问私有仓库。