详细解释容器以及虚拟机centos7.9容器化部署基础服务(容器化部署nginx)

简介: 容器是一种轻量级、可移植的软件打包和隔离技术,将应用程序及其依赖项打包,确保在任何环境中一致运行。容器共享主机操作系统内核,相比虚拟机更高效、轻量,具有快速启动和高资源利用率的特点。容器的关键技术包括命名空间(如 PID、NET 等)、控制组(cgroups)和联合文件系统(UnionFS)。使用容器可以提高开发和部署效率,简化管理,确保环境一致性。例如,在 CentOS 7.9 上部署 Nginx 时,可以通过 Docker 下载和运行 `nginx:1.20` 镜像,并通过端口映射使外部请求访问 Nginx 服务。此外,还可以将测试页面复制到容器中,进一步验证容器的功能。

一.什么是容器?

容器是一种轻量级、可移植的软件打包和隔离技术。它将应用程序及其所有依赖项(如库、配置文件、二进制文件等)打包在一个独立的单元中,以确保应用程序可以在任何环境中一致地运行。容器利用了操作系统的虚拟化功能,但比传统的虚拟机更高效和轻量。

容器的特点

轻量级:
与虚拟机不同,容器不需要包含一个完整的操作系统。它们共享主机操作系统的内核,从而减少了开销和启动时间。

可移植性:
容器封装了应用程序及其所有依赖项,确保在不同环境中运行时保持一致性。这意味着你可以在开发环境中创建一个容器,并将其无缝地移植到测试或生产环境中。

隔离性:
每个容器都是独立的,具有自己的文件系统、进程空间和网络接口。这种隔离确保了一个容器中的应用程序不会干扰其他容器中的应用程序。

快速启动:
容器的启动速度非常快,通常在几秒钟内就能启动并运行,这比启动一个虚拟机快得多。

资源利用效率高:
由于容器共享主机操作系统的内核,它们比虚拟机更节省资源,能够在同一台主机上运行更多的应用实例。

容器对比虚拟机有什么区别?

虽然容器和虚拟机都提供了应用程序隔离的能力,但它们的工作原理和资源利用方式有很大的不同。

虚拟机(VM):
每个虚拟机都有自己的完整操作系统,包括内核,这使得虚拟机比较重,启动时间较长,占用更多的资源。

容器:
容器共享主机操作系统的内核,不需要独立的操作系统,这使得容器更轻量、启动更快、资源利用更高效。

容器的工作原理

镜像(Image):
容器镜像是一个只读的模板,包含了应用程序及其运行所需的所有内容。镜像可以看作是容器的蓝图,从中可以创建一个或多个容器。

容器(Container):
容器是镜像的一个运行实例。它从镜像中创建,并包含了运行应用程序所需的所有内容。在运行时,容器可以有自己的文件系统、网络接口、进程空间等。

Docker 引擎:
Docker 引擎是一个轻量级的容器运行时,用于创建、运行和管理容器。它包括一个守护进程(daemon),一个 REST API,以及一个命令行界面(CLI)。

容器的主要技术

Namespace:
Namespace 提供了一个隔离的执行空间,让每个容器都有自己的进程空间、网络接口、文件系统等,从而实现容器间的隔离。

namespace有六个他们分别是
pid namespace(进程隔离)
net namespace(网络隔离)
ipc namespace(进程间交互隔离)
mnt namespace(文件系统隔离)
uts namespace(主机名、域名隔离)
user namespace(用户隔离)

Control Groups(cgroups):
cgroups 控制和限制容器使用的资源,如 CPU、内存、磁盘 I/O 等,确保每个容器都能公平地使用系统资源。

Union File System(UnionFS):
UnionFS 是一种分层的文件系统,允许将多个文件系统叠加在一起形成一个统一的文件系统。Docker 使用 UnionFS 来构建容器镜像和容器,使得镜像可以由多个层组成,每一层都可以共享和复用。

最后了解一下使用容器的优势

一致性和可移植性:
无论是开发、测试还是生产环境,容器中的应用程序运行效果一致,减少了环境配置带来的问题。

高效的开发和部署:
开发人员可以快速构建、测试和部署应用程序,缩短了开发周期。

更好的资源利用:
通过共享操作系统内核和使用 cgroups,容器能够更高效地利用系统资源。

简化的管理:
容器化应用程序的管理更加简单,可以轻松地启动、停止、重启和监控容器。

二、容器部署nginx

实验环境

centos7.9
已安装docker-ce-20.10.20版本

实验步骤

经过上面的了解,我们知道镜像是容器运行的基础,所以我们需要先下载镜像
我们可以先搜索nginx的镜像

[root@vm1 ~]# docker search nginx

可以看到有很多版本,后面带OK的则是官方版本
image.png

本次下载的版本为1.20,比较稳定

[root@vm1 ~]# docker pull nginx:1.20

然后查看一下

[root@vm1 ~]# docker images

可以看到我们刚刚下载好的nginx
以下信息分别是
名称 标签 id 创建时间 大小
我这里创建时间长是因为我之前已经下载过了
image.png

让我们运行容器

[root@vm1 ~]# docker run  -d  -p  80:80  nginx:1.20

docker run:这部分指示Docker运行一个新的容器。

-d:这是一个选项,代表“detached”(分离模式),它告诉Docker在后台运行容器。这意味着容器将在后台运行,并且不会占据当前终端的控制权。

-p 80:80:这也是一个选项,用于指定端口映射。这里的80:80表示将容器内部的80端口映射到宿主机(即宿主操作系统)的80端口,这样外部请求就可以通过宿主机的80端口访问到运行在容器内的Nginx服务。

nginx:1.20:这是指定要运行的镜像名称及版本标签。在这里,它指示Docker运行一个名为nginx的镜像,版本为1.20。

查看容器

[root@vm1 ~]# docker ps -a

看到up就是运行成功了!

image.png
让我们创建一个测试页面并拷贝进容器内

[root@vm1 ~]# echo "nginx is running" > index.html
[root@vm1 ~]# docker  cp  index.html 96:/usr/share/nginx/html/

docker cp 复制文件到容器内
格式
docker cp 文件 容器id:路径

最后用浏览器查看一下结果
记得关闭防火墙关闭沙盒和开启路由转发

临时关闭防火墙
[root@vm1 ~]# systemctl stop firewalld
临时关闭沙盒
[root@vm1 ~]# setenforce 0
开启路由转发
[root@vm1 ~]# echo "net.ipv4.ip_forward" >> /etc/sysctl.conf 
[root@vm1 ~]# sysctl -p

最后用浏览器查看结果就行了
直接访问你这台服务器的ip,我这里是192.168.10.11
image.png
实验完成

如果对您有帮助就点个赞吧

相关文章
kde
|
15天前
|
应用服务中间件 网络安全 nginx
手把手教你使用 Docker 部署 Nginx 教程
本文详解Nginx核心功能与Docker部署优势,涵盖镜像拉取、容器化部署(快速、挂载、Compose)、HTTPS配置及常见问题处理,助力高效搭建稳定Web服务。
kde
375 4
|
2月前
|
存储 分布式计算 Linux
安装篇--CentOS 7 虚拟机安装
VMware 装 CentOS 7 不知道从哪下手?这篇超详细图文教程手把手教你在 VMware Workstation 中完成 CentOS 7 桌面系统的完整安装流程。从 ISO 镜像下载、虚拟机配置,到安装图形界面、设置用户密码,每一步都有截图讲解,适合零基础新手快速上手。装好之后无论你是要搭 Hadoop 集群,还是练 Linux ,这个环境都够你折腾一整天!
825 2
|
6月前
|
应用服务中间件 Linux 网络安全
Centos 8.0中Nginx配置文件和https正书添加配置
这是一份Nginx配置文件,包含HTTP与HTTPS服务设置。主要功能如下:1) 将HTTP(80端口)请求重定向至HTTPS(443端口),增强安全性;2) 配置SSL证书,支持TLSv1.1至TLSv1.3协议;3) 使用uWSGI与后端应用通信(如Django);4) 静态文件托管路径设为`/root/code/static/`;5) 定制错误页面(404、50x)。适用于Web应用部署场景。
685 87
|
14天前
|
应用服务中间件 Linux nginx
在虚拟机Docker环境下部署Nginx的步骤。
以上就是在Docker环境下部署Nginx的步骤。需要注意,Docker和Nginix都有很多高级用法和细节需要掌握,以上只是一个基础入门级别的教程。如果你想要更深入地学习和使用它们,请参考官方文档或者其他专业书籍。
54 5
|
9月前
|
应用服务中间件 PHP nginx
今日小结通过aliyun的本地容器镜像部署我的nginx和php环境
简介: 本教程介绍如何基于 Dragonwell 的 Ubuntu 镜像创建一个运行 Nginx 的 Docker 容器。首先从阿里云容器镜像服务拉取基础镜像,然后编写 Dockerfile 确保 Nginx 作为主进程运行,并暴露 80 端口。最后,在包含 Dockerfile 的目录下构建自定义镜像并启动容器,确保 Nginx 在前台运行,避免容器启动后立即退出。通过 `docker build` 和 `docker run` 命令完成整个流程。
316 25
今日小结通过aliyun的本地容器镜像部署我的nginx和php环境
|
6月前
|
Linux 应用服务中间件 nginx
在CentOS上部署Minikube教程
至此,您已成功在CentOS上部署并使用Minikube。您可以自由探索Kubernetes的世界,熟练配置和管理Kubernetes集群。
557 20
|
6月前
|
应用服务中间件 Linux 网络安全
技术指南:如何把docsify项目部署到基于CentOS系统的Nginx中。
总结 与其他部署方法相比,将docsify项目部署到基于CentOS系统的Nginx中比较简单。以上步骤应当帮助你在不花费太多时间的情况下,将你的项目顺利部署到Nginx中。迈出第一步,开始部署你的docsify项目吧!
265 14
|
11月前
|
负载均衡 Ubuntu 应用服务中间件
nginx修改网站默认根目录及发布(linux、centos、ubuntu)openEuler软件源repo站点
通过合理配置 Nginx,我们可以高效地管理和发布软件源,为用户提供稳定可靠的服务。
969 13
|
12月前
|
Ubuntu 网络安全 容器
KubeSphere 是一个开源的容器平台,提供丰富的功能和便捷的操作界面,适用于企业容器化部署和管理
KubeSphere 是一个开源的容器平台,提供丰富的功能和便捷的操作界面,适用于企业容器化部署和管理。本文详细介绍了如何在 Ubuntu 22.04 上安装 KubeSphere,包括系统要求、安装依赖项、设置防火墙、下载安装脚本、选择安装选项、验证安装结果等步骤,并提供了常见问题的解决方法。希望本文能为读者提供实用的参考和帮助。
273 3
|
12月前
|
Oracle 关系型数据库 MySQL
Centos7下图形化部署单点KFS同步工具并将Oracle增量同步到KES
Centos7下图形化部署单点KFS同步工具并将Oracle增量同步到KES
Centos7下图形化部署单点KFS同步工具并将Oracle增量同步到KES

热门文章

最新文章