Docker仓库类型简介
Docker-hub(公共)
Docker Hub是Docker提供的一项服务,用于与您的团队查找和共享容器图像。它提供以下主要功能:存储库:推拉容器图像。团队和组织:管理对容器映像的私有存储库的访问。官方图片:拉取并使用Docker提供的高质量容器图片。 发布者图像:拉取并使用外部供应商提供的高质量容器图像。 Builds:从GitHub和Bitbucket自动构建容器映像,并将它们推送到Docker Hub。Webhooks:成功推送到存储库后触发操作,以便将Docker Hub与其他服务集成。
Docker-Registry(私有)
如果服务器没法联网或者不希望将自己制作的镜像放在公网上,那么这个时候就需要Docker Registry,它可以用来存储和管理自己的镜像。
一键安装部署
考虑到Docker-Registry安装完毕后,想更好的形式去管理自己仓库里的镜像,直接把web服务和Docker-Registry服务一并创建在我们的docker-compose.yml的文件中,具体配置如下:
version: "3"
services:
registry:
privileged: true#这里把权限配置成true
image: registry #镜像来源
restart: always #开机后自己启动
container_name: registry #自定义服务名
ports: #暴露端口
- 5000:5000
volumes: #挂载目录配置
- /usr/local/docker/registry/data:/var/lib/registry
web:
image: konradkleine/docker-registry-frontend:v2
links:
- registry:docker-registry.com # 服务名:这里适使用自定义的名字 ,env可以直接使用这个名字去调用
restart: always
ports:
- 80:80
environment:
- ENV_DOCKER_REGISTRY_HOST=docker-registry.com #配置links的自定义名字
- ENV_DOCKER_REGISTRY_PORT=5000
启动docker-compose:
docker-compose up -d
访问网页:方式一:(主机IP):5000/v2/
web端 主机IP:80 方式二:(域名):5000/v2/
web端 域名:80在这里还需要配置私服的地址:
{
"registry-mirrors": ["https://uafxazog.mirror.aliyuncs.com"],
"insecure-registries": ["docker-registry.com:5000"]
}
重新启动一下服务
systemctl restart docker
在这里要注意一下:配置地址的时候格式必须要正确,否则docker启动报错
现在我们将本地已有的镜像打个包上传到私服(以mysql:laster为例)
$ docker tag mysql:latest docker-registry.com:5000/mysql:1.2
$ docker push docker-registry.com:5000/mysql
e9affce9cbe8: Pushed
316393412e04: Pushed
d0f104dc0a1f: Pushed
1.2: digest: sha256:5f7620b5dfa7982adb8127e047b3ade838b9621487f085bc3c004f8387cfe14d size: 2828
在这里我们可以看到已经将本地的mysql镜像重新打包版本到1.2并且上传成功了
我们可以通过web端去查看下最后我们可以拉取这个镜像到本地
$ docker pull docker-registry.com:5000/mysql:1.2
至此私仓服务已经搭建完毕并且测试成功。