您的位置:首页 > 运维架构 > Docker

[云原生]Docker - 仓库

2021-12-26 22:01 597 查看

[toc]

Docker仓库

目前Docker官方维护了一个公共仓库Docker Hub,其中已经包含了超过15000的镜像。大部分需求,都可以通过在Docker Hub中直接下载镜像来实现。

登陆

可以通过执行

docker login
命令来输入用户名、密码和邮箱来完成注册和登陆。注册成功后,本地用户家目录的
.dockercfg
中将保存用户的认证信息。

登出

docker logout
命令即可登出。

基本操作

用户无需登陆即可通过

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

例如以centos位关键词进行搜索:

[root@localhost ~]# docker search centos
NAME                              DESCRIPTION                                     STARS     OFFICIAL   AUTOMATED
centos                            The official build of CentOS.                   6932      [OK]
ansible/centos7-ansible           Ansible on Centos7                              135                  [OK]
consol/centos-xfce-vnc            Centos container with "headless" VNC session…   132                  [OK]
jdeathe/centos-ssh                OpenSSH / Supervisor / EPEL/IUS/SCL Repos - …   121                  [OK]
centos/systemd                    systemd enabled base container.                 105                  [OK]
centos/mysql-57-centos7           MySQL 5.7 SQL database server                   92
imagine10255/centos6-lnmp-php56   centos6-lnmp-php56                              58                   [OK]
tutum/centos                      Simple CentOS docker image with SSH access      48
centos/postgresql-96-centos7      PostgreSQL is an advanced Object-Relational …   45
kinogmt/centos-ssh                CentOS with SSH                                 29                   [OK]
guyton/centos6                    From official centos6 container with full up…   10                   [OK]
centos/tools                      Docker image that has systems administration…   7                    [OK]
centos/redis                      Redis built for CentOS                          6                    [OK]
drecom/centos-ruby                centos ruby                                     6                    [OK]
darksheer/centos                  Base Centos Image -- Updated hourly             3                    [OK]
mamohr/centos-java                Oracle Java 8 Docker image based on Centos 7    3                    [OK]
amd64/centos                      The official build of CentOS.                   2
dokken/centos-7                   CentOS 7 image for kitchen-dokken               2
miko2u/centos6                    CentOS6 日本語環境                                   2                    [OK]
mcnaughton/centos-base            centos base image                               1                    [OK]
blacklabelops/centos              CentOS Base Image! Built and Updates Daily!     1                    [OK]
smartentry/centos                 centos with smartentry                          0                    [OK]
jelastic/centosvps                An image of the CentOS Elastic VPS maintaine…   0
starlabio/centos-native-build     Our CentOS image for native builds              0                    [OK]
king019/centos                    centos                                          0

可以看到返回了很多包含关键字的镜像,其中包括镜像名字、描述、星级(表示该镜像的受欢迎程度)、是否官方创建、是否自动创建。官方的镜像说明是官方项目组创建和维护的,automated资源允许用户验证镜像的来源和内容。

根据是否是官方提供,可将镜像资源分为两类。一种是类似centos这样的基础镜像,被称为基础或根镜像。这些基础镜像是由Docker公司创建、验证、支持、提供。这样的镜像往往使用单个单词作为名字。还有一种类型比如

skybiubiu/centos
镜像,它是由Docker的用户创建并维护的,往往带有用户名称前缀。可以通过前缀
user_name/image_name
来指定使用某个用户提供的镜像,比如skybiubiu用户。

另外,在查找的时候通过

-s N
参数可以指定仅显示评价为
N
星以上的镜像。

下载官方CentOS镜像到本地。

[root@localhost ~]# docker pull centos
Using default tag: latest
latest: Pulling from library/centos
a1d0c7532777: Pull complete
Digest: sha256:a27fd8080b517143cbbbab9dfb7c8571c40d67d534bbdee55bd6c473f432b177
Status: Downloaded newer image for centos:latest
docker.io/library/centos:latest

Docker Hub

用户也可以在登陆后通过

docker push
命令来将镜像推送到Docker Hub。

自动创建

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

而自动创建允许用户通过 Docker Hub 指定跟踪一个目标网站(目前支持 GitHub 或 BitBucket)上的项 目,一旦项目发生新的提交,则自动执行创建。

要配置自动创建,包括如下的步骤:

  • 创建并登录 Docker Hub,以及目标网站;
  • 在目标网站中连接帐户到 Docker Hub;
  • 在 Docker Hub 中 配置一个自动创建;
  • 选取一个目标网站中的项目(需要含 Dockerfile)和分支;
  • 指定 Dockerfile 的位置,并提交创建。

之后,可以 在Docker Hub 的 自动创建页面 中跟踪每次创建的状态。

私有仓库

有时候使用Docker Hub这样的公共仓库可能不方便,用户可以创建一个本地仓库供私人使用。

docker-registry
是官方提供的工具,可以用户构建私有的镜像仓库。

安装docker-registry

在安装了Docker后,可以通过获取官方registry镜像来运行。

docker pull registry

配置私有仓库地址

修改

/etc/docker/daemon.json
,配置私有仓库地址。

输入如下参数:

{
"insecure-registries": ["skybiubiu.com:5000"]
}

重启一下docker

systemctl restart docker

创建registry容器

将Hypervisor的5000端口映射到容器的5000端口。

默认情况下,仓库会被创建在容器的

/tmp/registry
下。可以通过
-v
参数来将镜像文件存放在本地的指定路径。例如下面的例子将上传的镜像放到宿主机的
/tmp/registry_host
目录。

[root@localhost ~]# docker run -d -p 5000:5000 -v /tmp/registry_host:/tmp/registry registry
774bd10f985464e28de6c4fb3604a37dc7b960bd74d1ff73e3d05669d7d75477

通过

docker inspect Container_ID
,查看卷挂载情况。

在私有仓库上传、下载、搜索镜像

创建好私有仓库之后,就可以使用

docker tag
来标记一个镜像,然后推送它到仓库,别的机器上就可以下载下来了。例如私有仓库地址为
skybiubiu.com:5000

(未完成)

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: