[云原生]Docker - 仓库
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
(未完成)
本文作者:SkyBiuBiu
本文链接:https://www.cnblogs.com/Skybiubiu/p/15734318.html
版权声明:本作品采用知识共享署名-非商业性使用-禁止演绎 2.5 中国大陆许可协议进行许可。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步