Docker Registry

镜像仓库 (Docker Registry) 负责存储、管理和分发镜像,并且提供了登录认证能力,建立了仓库的索引。 镜像仓库管理多个 Repository, Repository 通过命名来区分。每个 Repository 包含一个或多个镜像,镜像通过镜像名称和标签 (Tag)来区分。

镜像仓库分类

按是否对外开放划分,也是研发人员常说的 (1)公有仓库:像阿里云、dockerhub 等放到公有网络上,不用登录就可以下载镜像, 供大家访问使用 (2)私有仓库:不对外开放,往往位于私有网络,只有公司内部人员可以使用。按供应商和面向群体划分 1.sponsor(赞助) registry:第三方的 registry,供客户和 docker 社区版使用 2.mirror(镜像) registry:第三方的 registry,只让客户使用,例如阿里云必须注册才能使用 3.vendor(供应商) registry:由发布 docker 镜像的供应商提供的 registry,例如像Google 和 Redhat 提供了镜像仓库服务 4.private registry:通过没有防火墙和额外的安全层的私有实体提供的 registry,仅供内部使用

镜像仓库工作机制

镜像仓库使用流程 • 通过 docker login 登录仓库 • Docker pull 拉取需要的镜像 通过 dockerfile 或者 commit 等方式制作完镜像通过 docker push 上传到仓库 实际研发中镜像仓库如何使用 Docker Registry 中的镜像通常由开发人员制作,而后推送至“公共”或“私有”Registry 上保存,供其他人员使用,例如“部署”到生产环境; 镜像仓库的拉取机制 启动容器时,docker daemon 会试图从本地获取相关的镜像;本地镜像不存在时,其将从 Registry 中下载该镜像并保存到本地;

常用的镜像仓库

DockerHub Docker Hub 是 Docker 提供的托管存储库服务,用于查找容器映像并与您的团队共享。 具有以下功能: (1)个人可以注册私有仓库,能够发布自己的镜像 (2)提供镜像检索能力 (3)提供海量官方和认证组织的镜像 (4)从 GitHub 和 Bitbucket 自动构建容器镜像并将它们推送到 Docker Hub (5)支持 webhook(webhook 是一种基于 HTTP 的回调函数,发生指定的事件时,服务器会自动将相关的有效负载发送到客户端的 webhook URL。 )

docker 镜像仓库实战

常用命令

镜像仓库命令

docker login [OPTIONS] [SERVER] //登陆到一个 Docker 镜像仓库,如果未指定镜像仓库地址,默认为官方仓库 Docker Hub

docker pull [OPTIONS] NAME[:TAG|@DIGEST] //从镜像仓库中拉取或者更新指定镜像

docker push [OPTIONS] NAME[:TAG] //将本地的镜像上传到镜像仓库,要先登陆到镜像仓库

docker search [OPTIONS] TERM //从 Docker Hub 查找镜像

docker logout [SERVER] //登出一个 Docker 镜像仓库,如果未指定镜像仓库地址,默认为官方仓库 Docker Hub

镜像命令

docker images [OPTIONS] [REPOSITORY[:TAG]] //列出本地镜像。

docker image inspect [OPTIONS] IMAGE [IMAGE...] //查看镜像详细信息

docker tag SOURCE_IMAGE[:TAG] TARGET_IMAGE[:TAG] //标记本地镜像,将其归入某一仓库

容器命令

docker run [OPTIONS] IMAGE [COMMAND] [ARG...] //创建一个新的容器并运行一个命令

关键参数 ○ -d: 后台运行容器,并返回容器 ID; ○ -i: 以交互模式运行容器,通常与 -t 同时使用; ○ -P: 随机端口映射,容器内部端口随机映射到主机的端口 ○ -p: 指定端口映射,格式为:主机(宿主)端口:容器端口 ○ -t: 为容器重新分配一个伪输入终端,通常与 -i 同时使用; ○ --name=“nginx-lb”: 为容器指定一个名称; ○ -h “mars”: 指定容器的 hostname; ○ -e username=“ritchie”: 设置环境变量; ○ --cpuset-cpus=“0-2” or --cpuset-cpus=“0,1,2”: 绑定容器到指定 CPU 运行; ○ -m :设置容器使用内存最大值; ○ --network=“bridge”: 指定容器的网络连接类型; ○ --link=[]: 添加链接到另一个容器; ○ --volume , -v: 绑定一个卷 ○ --rm :shell 退出的时候自动删除容器

docker ps [OPTIONS] //列出容器

关键参数 ○ -a :显示所有的容器,包括未运行的。 ○ -f :根据条件过滤显示的内容。 ○ --format :指定返回值的模板文件。如 json 或者 table ○ -l :显示 latest 的容器。 ○ -n :列出最近创建的 n 个容器。 ○ --no-trunc :不截断输出。 ○ -q :静默模式,只显示容器编号。 ○ -s :显示总的文件大小。

1. 搭建一个 nginx 服务

Nginx Nginx 是一款自由的、开源的、高性能的 HTTP 服务器和反向代理服务器;同时也是一个 IMAP、POP3、SMTP 代理服务器;Nginx 可以作为一个 HTTP 服务器进行网站的发布处理,另外 Nginx 可以作为反向代理进行负载均衡的实现。可以理解 Nginx 是 web 服务器的一种实现。

Web 服务器 Web 服务器,一般是指“网站服务器”,是指驻留于互联网上某种类型计算机的程序。

Web 服务器可以向 Web 浏览器等客户端提供文档,也可以放置网站文件,让全世界浏览,更可以放置数据文件,让全世界下载。Web 服务器,也称为“WWW 服务器”( 英文全写:World Wide Web,翻译成中文:万维网或环球信息网 ),主要功能是“提供网上信息浏览服务”。 WWW 是 Internet(互联网)的多媒体信息查询工具,是 Internet(互联网)上发展起来的服务,也是发展最快和目前使用最广泛的服务。正是因为有了 WWW 工具,才使得近十几年来互联网迅速繁荣发展,用户数量飞速飙升。据最新数据显示,目前全球人口数量达到 76.76 亿人,其中全球“网民”(互联网用户)达到惊人的 43.88 亿。 例如百度就是一个 web 服务器,提供搜索服务.

安装nginx (centos环境)

#centos 配置 nginx 源#

rpm -Uvhhttp://nginx.org/packages/centos/7/noarch/RPMS/nginx-release-centos-7-0.el7.ngx.noarch.rpm

安装服务

yum install -y nginx

查看 nginx 是否启动

ps -ef |grep nginx

如果没有启动,手动启动 nginx

systemctl start nginx

或者

nginx

访问 nginx 首页 nginx 的监听端口为80 在浏览器上栏 输入 服务器公网地址:80

nginx 调整配置 centos 7.9 默认的首页的信息位置就是/usr/share/nginx/html,大家针对自己的系统可以检查后看是否需要调整配置。 查看配置

vi /etc/nginx/conf.d/default.conf

首页内容

cat /usr/share/nginx/html/index.html

是一个HTML页面。

Welcome to nginx!

Welcome to nginx!

If you see this page, the nginx web server is successfully installed and

working. Further configuration is required.

For online documentation and support please refer to

nginx.org.

Commercial support is available at

nginx.com.

Thank you for using nginx.

我们可以修该文件内容去修改访问nginx时首页页面展示的内容。

停止 nginx,kill master 进程来杀死进程

ps -ef |grep nginx

kill 3983

拉取 Nginx 镜像,启动 Nginx 站点

拉取 nginx 镜像

docker pull nginx:1.24.0

查看本地是否有该镜像

docker images

运行镜像

docker run --name nginx1 --rm -it -p 80:80 nginx:1.24.0 bash

查看我们现在是在容器的 shell 里面,执行 cat /etc/release查看操作系统不是Centos

cat /etc/*release*

启动 nginx

nginx

shell 不退出打开另外一个 shell 窗口执行 curl 命令,可以看到 nginx 的欢迎信息返回

[@hcss-ecs-40e ~]$ curl 127.0.0.1

Welcome to nginx!

Welcome to nginx!

If you see this page, the nginx web server is successfully installed and

working. Further configuration is required.

For online documentation and support please refer to

nginx.org.

Commercial support is available at

nginx.com.

Thank you for using nginx.

Docker hub 上创建自己私有仓库

Busybox BusyBox 是一个集成了三百多个最常用 Linux 命令和工具的软件。BusyBox 包含了一些简单的工具,例如 ls、cat 和 echo 等等,还包含了一些更大、更复杂的工具,例grep、find、mount 以及 telnet。有些人将 BusyBox 称为 Linux 工具里的瑞士军刀。简单的说 BusyBox 就好像是个大工具箱,它集成压缩了 Linux 的许多工具和命令,也包含了 Linux 系统的自带的 shell。busybox 是一个集成了一百多个最常用 linux 命令和工具的软件,他甚至还集成了一个 http 服务器和一个 telnet 服务器,而所有这一切功能却只有区区 1M 左右的大小.因海外带宽较小,我们拉取该镜像推送到自己的仓库。

安装

wget https://busybox.net/downloads/binaries/1.28.1-defconfig-multiarch/busybox-x86_64 --no-check-certificate

mv busybox-x86_64 busybox // 改名字方便使用

chmod +x busybox

./busybox

• 执行命令

busybox ls

busybox ifconfig

busybox ifconfig |busybox grep lo

往hub.docker上推送我们的busybox镜像。

创建账号

进入 https://hub.docker.com/ ,创建账号。

创建仓库 登录后点击仓库,我们创建一个个人仓库

推送镜像到仓库 • 拉取 busybox 镜像

docker pull busybox

• 给镜像打标签

docker tag busybox:latest (查看创建的仓库,按照显示的名称需求对镜像打标签)

再次查看镜像

docker images

登录仓库

docker login -u (用户名)

输入密码后。显示Login Succeeded。

推送

docker push (对镜像打的标签)

•最后在我们的 docker hub 仓库里面查看

精彩内容

评论可见,请评论后查看内容,谢谢!!!
 您阅读本篇文章共花了: