【docker】8. 镜像仓库实战

server/2024/11/30 5:27:02/

综合实战一:搭建一个 nginx 服务

Web 服务器

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

在这里插入图片描述

Nginx

Nginx 是一款自由的、开源的、高性能的 HTTP 服务器和反向代理服务器;同时也是一个 IMAP、POP3、SMTP 代理服务器;Nginx 可以作为一个 HTTP 服务器进行网站的发布处理,另外 Nginx 可以作为反向代理进行负载均衡的实现。
可以理解 Nginx 是 web 服务器的一种实现。
• Web 服务器
在这里插入图片描述
Nginx 作为 Web 服务器可以向各种浏览器等客户端提供浏览服务,比如我们通过手机、电脑、平板可以访问百度来实现对 web 服务器的访问。
• 正向代理
在这里插入图片描述
由于防火墙的原因,我们并不能直接访问谷歌,那么我们可以借助 VPN 来实现,这就是一个简单的正向代理的例子。这里你能够发现,正向代理“代理”的是客户端,而且客户端是知道目标的,而目标是不知道客户端是通过 VPN 访问的。
• 反向代理
在这里插入图片描述
当我们在外网访问百度的时候,其实会进行一个转发,代理到内网去,这就是所谓的反向代理,即反向代理“代理”的是服务器端,而且这一个过程对于客户端而言是透明的。

本机运行nginx

• 安装

# ubuntu 安装 nginx
apt install nginx -y

• 启动 nginx 作为一个网站

  1. 查看 nginx 是否启动
root@ubuntu1:/data# ps -ef |grep nginx
root 12920 1 0 12:29 ? 00:00:00 nginx: master process nginx
www-data 12921 12920 0 12:29 ? 00:00:00 nginx: worker process
www-data 12922 12920 0 12:29 ? 00:00:00 nginx: worker process
root 12951 2672 0 12:30 pts/0 00:00:00 grep --color=auto nginx
root@ubuntu1:/data# 
  1. 如果没有启动,手动启动 nginx
#查看版本
nginx -v
#手动启动
nginx
  1. 访问 nginx 首页
    在这里插入图片描述
  2. nginx 调整配置
    #ubuntu 安装后首页的信息可能被调整了,需要确认下修改,注意 centos 7.9 默认的位置就是/usr/share/nginx/html 无需修改,大家针对自己的系统可以检查后看是否需要调整配置
sudo vi /etc/nginx/sites-available/default

将原先的网址换成自己的
在这里插入图片描述
5. 首页内容
在这里插入图片描述
可以自行调整文本当中的内容
6. 停止 nginx,kill master 进程来杀死进程
在这里插入图片描述
7. 再重新启动nginx,就可以看到自己调整的文本内容了
在这里插入图片描述
在这里插入图片描述

查找 nginx 镜像

Docker search 可以查找,但是 nginx 的详细的 tag 我们看不见
所以通常不用search来查找镜像直接去官网查
在这里插入图片描述

容器运行nginx

方式1:拉取 Nginx 镜像,启动 Nginx 站点

  1. 拉取 nginx 镜像
    我们到 https://hub.docker.com/ 上找到 nginx 镜像
root@ecs-144421:~# docker pull nginx:1.23.3
1.23.3: Pulling from library/nginx
3f9582a2cbe7: Pull complete 
9a8c6f286718: Pull complete 
e81b85700bc2: Pull complete 
73ae4d451120: Pull complete 
6058e3569a68: Pull complete 
3a1b8f201356: Pull complete 
Digest: 
sha256:aa0afebbb3cfa473099a62c4b32e9b3fb73ed23f2a75a65ce1d4b4f55a5
c2ef2
Status: Downloaded newer image for nginx:1.23.3
docker.io/library/nginx:1.23.3
  1. 查看本地是否有该镜像
hacha@LAPTOP-H2EI4I6A:~$ docker images
REPOSITORY                                                               TAG       IMAGE ID       CREATED         SIZE
crpi-xp37q81m2et6ppvz.cn-hangzhou.personal.cr.aliyuncs.com/hacha/hacha   latest    d2c94e258dcb   19 months ago   13.3kB
nginx                                                                    1.23.3    ac232364af84   20 months ago   142MB
  1. 运行镜像
docker run --name nginx1 --rm -it -p 80:80 nginx:1.23.3 bash
  1. 查看我们现在是在容器的 shell 里面,执行 cat /etc/release查看操作系统不是Ubuntu
    在这里插入图片描述

  2. 容器中启动 nginx
    在这里插入图片描述

  3. shell 不退出打开另外一个 shell 窗口执行 curl 命令,可以看到 nginx 的欢迎信息返回
    在这里插入图片描述
    如果你的服务器的 80 端口外部能访问那么可以用浏览器看到 nginx 的欢迎页面,注意云厂商一般都屏蔽了 80 端口,需要联系客服开通。

  4. shell 退出观察再 curl 发现我们已经 ping 不同了,说明 nginx 是容器里面的而不是服务器里面的

root@LAPTOP-H2EI4I6A:~# curl 127.0.0.1
curl: (7) Failed to connect to 127.0.0.1 port 80: Connection refused

方式2:拉取某个组织或者用户定制的镜像

在这里插入图片描述
拉取某个组织或者用户镜像

docker pull bitnami/nginx:1.23.4

方式3:通过 DIGEST 拉取镜像

我们找到 1.22.1 版本的 nginx
在这里插入图片描述
在这里插入图片描述
查看本地镜像

root@LAPTOP-H2EI4I6A:~# docker images
REPOSITORY                                                               TAG       IMAGE ID       CREATED         SIZE
crpi-xp37q81m2et6ppvz.cn-hangzhou.personal.cr.aliyuncs.com/hacha/hacha   latest    d2c94e258dcb   19 months ago   13.3kB
nginx                                                                    <none>    0f8498f13f3a   20 months ago   142MB
nginx                                                                    1.23.3    ac232364af84   20 months ago   142MB

查看镜像实际 id
在这里插入图片描述

综合实战二:Docker hub 上创建自己私有仓库

Busybox

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

#Ubuntu 安装
apt install -y busybox

• 执行命令

busybox ls
busybox ifconfig
busybox ifconfig |busybox grep lo

• 如果不使用后面可以卸载

#ubuntu 卸载
apt --purge autoremove busybox
#centos 卸载
#清理对应目录就好

创建账号
进入 https://hub.docker.com/,点击注册按钮,输入注册信息
在这里插入图片描述
创建仓库
登录后点击仓库,我们创建一个个人仓库
在这里插入图片描述
如果提示需要进入,进入自己的邮箱完成激活
在这里插入图片描述
我们输入仓库信息,可见信息,点击创建完成
在这里插入图片描述
推送镜像到仓库
• 拉取 busybox 镜像

root@139-159-150-152:~# docker pull busybox
Using default tag: latest
latest: Pulling from library/busybox
1487bff95222: Pull complete 
Digest: 
sha256:c118f538365369207c12e5794c3cbfb7b042d950af590ae6c287ede74f2
9b7d4
Status: Downloaded newer image for busybox:latest
docker.io/library/busybox:latest

•给镜像打标签

docker tag busybox:latest maxhou/mybusybox:v0.1

此时查看我们多了个镜像

root@139-159-150-152:~# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
busybox latest bab98d58e29e 3 days ago 4.86MB
maxhou/mybusybox v0.1 bab98d58e29e 3 days ago 4.86MB
grafana/grafana latest 944e84f25bc7 7 days ago 329MB
nginx <none> 8c9eabeac475 8 days ago 142MB
nginx 1.23.3 904b8cb13b93 8 days ago 142MB
hello-world latest feb5d9fea6a5 17 months ago 13.3kB

• 推送镜像到仓库,报错,因为没有登录

root@139-159-150-152:~# docker push maxhou/mybusybox:v0.1
The push refers to repository [docker.io/maxhou/mybusybox]
427701cb9c96: Preparing 
denied: requested access to the resource is denied

• 登录 docker hub

root@139-159-150-152:~# docker login -u maxhou 
Password: 
WARNING! Your password will be stored unencrypted in 
/root/.docker/config.json.
Configure a credential helper to remove this warning. See
https://docs.docker.com/engine/reference/commandline/login/#creden
tials-store
Login Succeeded

• 推送镜像成功

root@139-159-150-152:~# docker push maxhou/mybusybox:v0.1
The push refers to repository [docker.io/maxhou/mybusybox]
427701cb9c96: Mounted from library/busybox 
v0.1: digest: 
sha256:2c8ed5408179ff4f53242a4bdd2706110ce000be239fe37a61be9c52f70
4c437 size: 528

• 在我们的 docker hub 仓库里面查看
在这里插入图片描述
• 退出

docker logout

综合实战三:阿里云创建自己的私有仓库

创建账号
进入阿里云 https://www.aliyun.com/,点击右上角完成注册,可以使用支付宝快速注册
在这里插入图片描述

创建仓库
在产品上搜索容器镜像服务
在这里插入图片描述
点击管理控制台
在这里插入图片描述
点击创建个人实例
在这里插入图片描述
创建后,提示设置登录密码

在这里插入图片描述
完成登录密码的设置,这个密码就是我们的 docker login 的密码
在这里插入图片描述

点击创建镜像仓库,提示创建命名空间

在这里插入图片描述
在这里插入图片描述
配置仓库参数
在这里插入图片描述

设置仓库为本地仓库,完成创建
在这里插入图片描述
推送镜像到仓库
可以看到阿里云也提供了快捷指令
在这里插入图片描述
登录
在这里插入图片描述
查看服务器镜像
在这里插入图片描述
退出

root@LAPTOP-H2EI4I6A:~# docker logout crpi-xp37q81m2et6ppvz.cn-hangzhou.personal.cr.aliyuncs.com
Removing login credentials for crpi-xp37q81m2et6ppvz.cn-hangzhou.personal.cr.aliyuncs.com

实战经验

• Q:我入职了一个公司,开发一个镜像,我怎么选择用哪个作为基础镜像啊?
A:一般大型公司有自己专门的镜像制作组织,他们会选取对应的系统版本作为基础镜像,例如华为某部门选取欧拉来制作基础镜像,腾讯选择自己的 TLinux 制作基础镜像,不会因为出现 CentOS 不维护了无法使用的情况,而且这些镜像一般都会经过严格的安全扫描,然后作为基础组件提供给各个部门。一般的公司往往也会同意镜像的基础版本,所以这个选择个人一般不用太多纠结。


http://www.ppmy.cn/server/146081.html

相关文章

哪些行业对六西格玛管理方法的需求较大?

六西格玛作为一种追求极致质量和流程优化的管理哲学&#xff0c;自诞生以来&#xff0c;便在多个行业中展现出了巨大的应用价值。该方法通过定义、测量、分析、改进和控制&#xff08;DMAIC&#xff09;五个阶段&#xff0c;帮助企业实现流程的持续改进&#xff0c;提高产品质量…

Hive 索引 和 Hive Metastore 的三种配置方式

Hive 索引 和 Hive Metastore 的三种配置方式 Hive 索引&#xff08;Index&#xff09; Hive 索引是一种提高查询性能的技术&#xff0c;通过创建索引来加速对特定列的查询。类似于传统关系数据库的索引&#xff0c;Hive 索引能够在查询中快速定位数据&#xff0c;而不必扫描…

【Spring源码核心篇-04】spring中refresh刷新机制的流程和实现

Spring源码核心篇整体栏目 内容链接地址【一】Spring的bean的生命周期https://zhenghuisheng.blog.csdn.net/article/details/143441012【二】深入理解spring的依赖注入和属性填充https://zhenghuisheng.blog.csdn.net/article/details/143854482【三】精通spring的aop的底层原…

dmdba用户资源限制ulimit -a 部分配置未生效

dmdba用户资源限制ulimit -a 部分配置未生效 1 环境介绍2 数据库实例日志报错2.1 mpp01 实例日志报错2.2 mpp02 实例日志报错 3 mpp02 服务器资源限制情况4 关闭SELinux 问题解决4.1 临时关闭 SELinux4.2 永久关闭 SELinux 5 达梦数据库学习使用列表 1 环境介绍 Cpu x86 Os Ce…

【经典论文阅读】Transformer(多头注意力 编码器-解码器)

Transformer attention is all you need 摘要 完全舍弃循环 recurrence 和卷积 convolutions 只依赖于attention mechanisms 【1】Introduction 完全通过注意力机制&#xff0c;draw global dependencies between input and output 【2】Background 1&#xff1a;self-…

【docker集群应用】Docker数据管理与镜像创建

文章目录 Docker数据管理数据卷&#xff08;Data Volumes&#xff09;示例 数据卷容器&#xff08;Data Volume Containers&#xff09;示例 端口映射容器互联 Docker镜像的创建方法基于现有镜像创建1.首先启动一个镜像&#xff0c;在容器里做修改2.然后将修改后的容器提交为新…

Javaweb关于web.xml的相关配置信息

Javaweb关于web.xml的相关配置信息 初始页面 <!-- 规定加载进入的初始页面--> <welcome-file-list><welcome-file>/login.jsp</welcome-file> </welcome-file-list>配置Servlet <!--配置Servlet--> <servlet><servlet-name&g…

Leetcode 颠倒二进制位

以下是对所提供的代码进行中文解释以及其算法思想分析&#xff1a; 算法思想 这段代码的目标是反转一个32位整数的二进制位。 核心思路是&#xff1a; 逐位提取&#xff1a; 利用位操作从输入整数的最低位开始&#xff0c;逐位提取其二进制位。逐位插入&#xff1a; 将提取到…