[云原生]Docker - 仓库
[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
(未完成)
- 原生Nexus包建立自己的Maven中央仓库及Docker快速安装Maven私服Nexus,两种方式对比,Docker爽
- Docker私有仓库Registry 搭建
- docker 四 搭建本地仓库 Registry
- 企业级docker仓库Harbor部署
- Docker+sinopia部署npm私有仓库
- docker 仓库
- Docker:07---镜像与仓库之(私有Registry的创建与使用)
- docker 搭建本地私有仓库 (v2)
- 使用Dockerfile构建镜像并push到私有仓库
- Docker入门教程 Part 1 基础概念 - 镜像、容器、仓库
- docker【5】 docker仓库介绍以及私有仓库建立
- docker 局域网仓库(registry)
- docker 创建镜像,并推送到私有仓库
- docker for windows 10 添加阿里云镜像仓库无效问题
- docker镜像仓库介绍
- Docker Registry Server 搭建,配置免费HTTPS证书,及拥有权限认证的私有仓库
- docker registry-v2 搭建私有仓库
- docker私有仓库搭建
- 通过自己build构建docker的私有仓库
- 容器Docker学习系列六~命令学习仓库命令