1.Docker Hub

仓库是集中存放镜像的地方。

目前Docker官方仓库维护了一个公共仓库https://hub.docker.com,其中已经包括15000多个的镜像。

大部分需求都可以通过在Docker Hub中直接下来镜像来实现。

登录

可以通过执行docker login命令来输入用户名、密码和邮箱来完成注册登录。

「初级篇」跟我一起学docker(五)--仓库_docker

基本操作

用户无需登录可以通过 docker search命令来查找官方仓库中的镜像,并利用docker pull 下载到本地,可以通过docker push 命令将本地镜像推送到docker hub。

先tag一下复制一个镜像,然后把镜像push到服务器上

「初级篇」跟我一起学docker(五)--仓库_私有仓库_02

「初级篇」跟我一起学docker(五)--仓库_私有仓库_03

2.创建和使用私有仓库

使用registry镜像创建私有仓库

可以通过docker官方提供的registry镜像来搭建一套本地私有仓库。

镜像地址:https://hub.docker.com/_/registry/

命令:

docker run -e SEARCH_BACKEND=sqlalchemy -e SQLALCHEMY_INDEX_DATABASE=sqlite:tmp/docker-registry.db-d --name registry -p 5000:5000 registry

「初级篇」跟我一起学docker(五)--仓库_Docker_04

-e设定环境变量

-d从后台启动的方式镜像启动

-name 启动的容器起个名字

-p 暴露端口,容器内部的5000绑定到宿主机的5000端口上。

registry镜像本身

SEARCH_BACKEND=sqlalchemy默认索引是可以查询的

参考地址:

​https://github.com/docker/docker-registry#search-engine-options​

​https://hub.docker.com/_/registry/​

自动下载并启动一个registry容器,创建本地的私有仓库服务。

默认仓库创建在/tmp/registry目录下。

「初级篇」跟我一起学docker(五)--仓库_私有仓库_05

上传到本地的私有仓库中,

「初级篇」跟我一起学docker(五)--仓库_私有仓库_06

报错了:http:server gave HTTP response to HTTPS client 后面会告诉你如何解决往下看。

docker启动参数配置:

环境:centos7解决上边的问题

配置文件:/lib/systemd/system/docker.service

修改成:

#ExecStart=/usr/bin/dockerd

ExecStart=/usr/bin/dockerd-H tcp://0.0.0.0:2375 -H unix:///var/run/docker.sock --insecure-registry192.168.100.146:5000

(此处默认2375为主管理端口,unix:///var/run/docker.sock用于本地管理,7654是备用的端口)

「初级篇」跟我一起学docker(五)--仓库_Docker_07

重启服务,在启动一个私有仓库的容器,然后push到私有仓库中

「初级篇」跟我一起学docker(五)--仓库_私有仓库_08

参考地址:https://docs.docker.com/engine/admin/configuring/

3.仓库加速服务

加速下载官方镜像。

推荐服务:https://dashboard.daocloud.io/

点击加速器:https://dashboard.daocloud.io/mirror

「初级篇」跟我一起学docker(五)--仓库_私有仓库_09

「初级篇」跟我一起学docker(五)--仓库_私有仓库_10

「初级篇」跟我一起学docker(五)--仓库_私有仓库_11

配置Docker加速器:

「初级篇」跟我一起学docker(五)--仓库_私有仓库_12

下载第三方官方仓库。

4.仓库管理

Registry Web UI

用于镜像的查询,删除。

镜像地址:https://hub.docker.com/r/atcol/docker-registry-ui/

「初级篇」跟我一起学docker(五)--仓库_Docker_13

「初级篇」跟我一起学docker(五)--仓库_Docker_14

启动命令:运行下面的命令的时候建议先配置上边讲的加速哦,因为要下载的东西有点多。

docker run -d --nameregistry_ui -p 8080:8080 -e REG1=http://172.17.0.2:5000/v1/atcol/docker-registry-ui

「初级篇」跟我一起学docker(五)--仓库_docker_15

查看端口是否启用

「初级篇」跟我一起学docker(五)--仓库_docker_16

查看logs

「初级篇」跟我一起学docker(五)--仓库_docker_17

访问地址:

​http://IP地址:8080​

「初级篇」跟我一起学docker(五)--仓库_私有仓库_18

「初级篇」跟我一起学docker(五)--仓库_docker_19