当前位置: 首页 > news >正文

音乐网站是否可以做浅度链接番禺建网站公司

音乐网站是否可以做浅度链接,番禺建网站公司,四川省建筑设计院排名,学院路网站建设docker服务部署 docker是一个容器管理工具#xff0c;其内部容器才是具体服务#xff0c;所以我们在安装docker时不需要有太多定制内容#xff0c;只需要通过yum安装即可 1. 更新系统包 #更新现有依赖包#xff0c;防止现有依赖包版本过低影响docker安装 yum update2. 安…docker服务部署 docker是一个容器管理工具其内部容器才是具体服务所以我们在安装docker时不需要有太多定制内容只需要通过yum安装即可 1. 更新系统包 #更新现有依赖包防止现有依赖包版本过低影响docker安装 yum update2. 安装依赖包 yum install -y yum-utils device-mapper-persistent-data lvm23. 添加Docker的yum源 yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo #如果上面的官方docker源速度过慢可以下载下面的阿里云docker源 yum-config-manager --add-repo https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo4. 安装Docker yum install docker-ce docker-ce-cli containerd.io5. 配置docker镜像源 vim /etc/docker/daemon.json #修改为如下内容 {registry-mirrors: [https://docker.registry.cyou,https://docker-cf.registry.cyou,https://dockercf.jsdelivr.fyi,https://docker.jsdelivr.fyi,https://dockertest.jsdelivr.fyi,https://mirror.aliyuncs.com,https://dockerproxy.com,https://mirror.baidubce.com,https://docker.m.daocloud.io,https://docker.nju.edu.cn,https://docker.mirrors.sjtug.sjtu.edu.cn,https://docker.mirrors.ustc.edu.cn,https://mirror.iscas.ac.cn,https://docker.rainbond.cc] }如果上面的镜像源不可用可以进入如下文章查看最新的更新 docker镜像源来源 yum配置的镜像源是让yum具有下载docker的能力不会影响docker拉取镜像的速度加速docker下载镜像的过程需要配置docker镜像源。 6. 启动Docker并设置开机启动 systemctl enable docker7. 验证Docker是否安装成功 docker --version容器化介绍 容器化通过将被部署的应用程序放入包含其依赖的所有环境的容器中。通过操作系统提供的某些能力让容器环境同外部实现环境隔离可以在一台主机中独立于其他服务部署在一个独立的虚拟环境中。 什么是容器 我们可以把容器想象成一个虚拟机其外在表现和虚拟机极其相似比如说容器通常由其自己的文件系统有其自己的虚拟网卡虚拟网卡和真实网卡之间通过网桥连接类似于虚拟机NAT模式。其部署环境也独立于真实环境之外。 容器和虚拟机的区别 虽然在外在表现和虚拟机类似不过其底层实现和虚拟机却是天差地别。 虚拟机通过分配真实的硬件资源包括CPU内存磁盘等打造一个真实的硬件环境。这样虽然能够实现环境隔离不过对于资源分配不好把控是对资源的浪费。 比如说如果我想部署一个Kafka和一个redis在两个主机中如果通过虚拟机来进行环境隔离Kafka内存波动较大我就需要给Kafka极大的内存资源不过当Kafka内存占用较小时由于分配的是固定的内存资源。剩余的资源也无法给redis使用。 并且虚拟机是模仿真实的主机环境真实主机具有的环境虚拟机一应俱全这就导致会引入大量的当前服务无需的依赖这也是对资源的浪费。 虚拟机镜像虽然也可以在不同平台之间保持一致运行环境但在虚拟机镜像的迁移和管理方面会较为复杂。 那么容器化如何解决了这些问题呢 首先容器的隔离实现是通过直接调用linux内核中的核心方法不使用linux各种发行版的方法如CentOSUbuntu等等。所以只要是基于Linux的操作系统容器都可以提供相同的环境并且迁移方便。 并且容器不分配实际硬件资源其运行环境和普通的程序运行时一样都是在真实主机环境中运行。不同的的是其会调用linux操作系统的功能来实现容器之间的隔离。 容器的隔离实现 一个容器的实现主要通过LInux操作系统提供的命名空间和控制组来实现和外界环境的隔离生成一个独立的虚拟环境。 命名空间NameSpace 命名空间是 Linux 提供的一种机制它将系统的全局资源划分为独立的组使每个进程只能看到和访问它自己的资源。Docker 使用命名空间来实现容器之间的隔离使得每个容器都认为自己是独立运行的。常用的命名空间类型包括 PID 命名空间PID Namespace隔离进程 ID允许进程在容器中拥有自己的进程树和 PID 1。网络命名空间Network Namespace隔离网络设备、IP 地址、路由表等使容器有自己的网络栈。挂载命名空间Mount Namespace隔离文件系统挂载点使进程有自己独立的文件系统视图。UTS 命名空间UTS Namespace隔离主机名和域名使容器有自己的主机名。IPC 命名空间IPC Namespace隔离信号量、消息队列等进程间通信机制。用户命名空间User Namespace允许进程有自己的用户 ID 和组 ID 映射提供更细粒度的权限隔离。时间命名空间Time Namespace隔离系统时钟允许不同命名空间内的进程看到不同的时间。 说了这么多命名空间到底是什么啊 实际上命名空间就是linux操作系统内核中的一个结构体我们上面提到的每个命名空间都有一个自己的结构体其中保存了命名空间的信息。而我们将一个主机内容添加进命名空间本质上就是将记录主机内容信息的一个结构体的一个属性保存对应命名空间结构体的地址。我们以最常见的进程举例 在操作系统中保存进程信息的结构叫PCB进程控制块当我们在PID命名空间中创建进程时操作系统会创建两个PID分别是真实PID和容器PID保存进程信息的PCB也会将一个属性保存当前命名空间结构体的地址这证明当前进程数据当前结构体当多个进程都保存相同的命名空间结构体时他们就是一个命名空间的进程可以互相访问。 PCB中还保存了另外一个结构体用于保存当前进程的所有容器层级和容器PID以及其他信息等等。在命名空间中还可以创建另一个命名空间一个进程可以保存在多个互相嵌套的命名空间中。所以进程会保存多个容器PID以及层级信息。 通过这两个结构体进程可以完成通过命名空间实现环境隔离以及真实PID和容器PID的映射。 再比如网络命名空间本质上也是一个结构体并且真实网卡和容器内虚拟网卡由虚拟交换机和veth pair来实现真实网课和虚拟网卡的连接。其他的不一一细讲了大概理解命名空间本质概念就好。 控制组cgroups 我们仍然使用Kafka和redis的部署案例。通过容器化部署可以防止在Kafka低内存消耗时分配给其的内存资源被浪费。不过在Kafka接收消息量较大时又会出现另一个问题如果放任其无限制扩展内容势必会导致redis没有生存空间所以我们在让其可以弹性利用内存的同时我们也要对其最大值进程限制。 控制组cgroups 是 Linux 内核的一种功能允许系统管理员或用户对一组进程的资源使用情况进行限制、隔离和监控。它在容器技术、虚拟化、云计算以及多用户系统中非常有用提供了对 CPU、内存、磁盘 I/O、网络带宽等系统资源的精细控制。 cgroups 的主要功能和用途 1. 资源限制Resource Limiting cgroups 允许你对进程组的资源使用进行限制以防止某些进程消耗过多的系统资源影响其他进程或系统的性能。例如 CPU 限制可以为一组进程分配 CPU 资源的最大使用比例从而避免某个进程独占 CPU。内存限制可以限制一组进程能够使用的内存量防止某些进程消耗过多的内存导致系统崩溃。I/O 限制可以限制进程访问磁盘或其他存储设备的速率确保 I/O 操作的公平性防止某些进程造成 I/O 瓶颈。 2. 资源隔离Resource Isolation 通过 cgroups可以对不同的进程组进行资源隔离确保一个进程组的资源使用不会影响到其他进程组。这对容器化环境特别有用 每个容器可以被分配固定数量的资源如 CPU 核心、内存、I/O 速率等保证不同容器之间的资源隔离和公平使用。资源隔离还可以用于虚拟机或多用户系统确保不同的用户或服务不会相互干扰。 3. 资源计费与统计Resource Accounting cgroups 可以实时跟踪和统计某个进程组使用的资源量包括 CPU 时间、内存使用、网络带宽消耗、I/O 操作等。这对系统监控、调优以及计费系统非常有用。例如 可以统计某个容器或进程组使用了多少 CPU 时间和内存。在云服务中可以用 cgroups 的资源统计功能来进行按量计费记录每个虚拟机或容器的资源消耗。 4. 优先级控制Priority Control cgroups 可以为不同的进程组设置资源使用的优先级确保高优先级的任务能够优先获得资源。例如 在 CPU 竞争时可以优先让某些关键任务使用更多的 CPU 时间确保关键任务的响应时间。对于内存和 I/O 资源也可以设置不同的权重以保证系统中的重要进程获得优先资源。 优先级控制通过控制进程权重比例CPU会根据权重比例分配时间片。不过我认为这个功能实际上是多余的高并发应用会通过创建线程来抢占CPU资源在我看来无需CPU通过分配时间片来进行控制这样控制反而会造成不好的结果比如说某些进程偶尔需要进行高并发创建多个线程以提高性能但由于控制组对其权重进行了限制导致其虽然占用了更多的内存但性能却没有明显提升。个人思考有别的想法也可以说出来一起讨论 5. 进程管理和分组Process Grouping and Management cgroups 提供了将多个进程分组管理的机制。每个进程组可以有不同的资源限制和策略可以随时动态调整 在容器化环境中cgroups 管理着每个容器中的进程确保容器内部的所有进程都受到相同的资源限制。cgroups 还允许系统管理员动态向某个进程组添加或移除进程便于灵活管理系统资源。 docker容器相关命令 启动容器 docker run -d -p 主机端口:容器端口 --name 容器名 镜像 #-d为后台启动对于一些有自己的启动命令的服务。如nginx我们可以直接-d而对于一些没有启动命令的服务我们还要给他一个持续运行的命令防止其在后台关闭进程 #-p为端口映射如果外部需要访问服务那么我们则需要将容器内端口映射到真实环境的端口 #--name 给运行的容器起名字 最后的镜像是运行容器的镜像 #我们也可以直接 docker run 服务名:版本 这样会自动去远程仓库拉取镜像停止容器 docker stop 容器名/容器ID启动已停止的容器 docker start 容器名/容器ID查看运行中的容器 docker ps查看所有容器包括停止的 docker ps -a删除容器 docker rm 容器名/容器ID进入正在运行的容器 docker exec -it 容器名/容器ID /bin/bash查看容器日志 docker logs 容器名/容器ID重启容器 docker restart 容器名/容器ID联合文件系统 多个容器内部的服务所依赖的环境中必定有重合的部分不如java开发的服务底层一定是要依赖于jdk对于js开发的后端服务必须依赖node环境部分服务依赖于数据库如mysql来存储服务数据docker容器环境直接调用操作系统底层系统调用对于部分依赖于某个操作系统发行版的服务其还需要centos等等等等。 大量服务之间依赖相同环境如果我们对其进行完全隔离势必要在一个主机上安装多个相同依赖环境的服务这是对于主机内存的极大浪费。然而如果我们想要对其进行复用时多个服务对于同一个依赖的差异性又是一个问题比如说我可能依赖mysql但是我的mysql的配置可能和你不同。那么对于这种需求操作系统采用了联合文件系统的方式对多个相同依赖环境进行复用并完善差异化。 联合文件系统将多个文件抽象成层的概念其中我们所依赖的服务被一层一层的罗列起来而容器内的服务则是要一层一层的访问这些服务这些层全部都是只读层无法进行更改。对于这些只读层的变更内容则是放在第一层作为可写层其中可写层的内容会对这些只读层的内容进行覆盖最终的结构如下图 这是对联合文件系统的抽象理解其实本质上来说就是多个容器对同一个环境进行使用然后自己对差异的那日容进行维护并对原环境覆盖其中复用环境是相对简单的事情最具意义的就是可写层的实现可以对环境内容进行修改并覆盖这是实现联合文件系统的关键。 镜像image 想要了解容器化那就一定少不了镜像的概念。在了解完联合文件系统后镜像的概念也变得非常简单了。对于容器内部所依赖的环境信息以及对于环境信息修改的内容以及容器内服务本身等关于服务容器化运行相关的信息记录就是镜像我们可以把镜像理解为容器的模板对于一个服务的容器化运行由docker按照镜像的模板来进行部署。 镜像相关命令 列出本地镜像 docker images拉取镜像 docker pull 镜像名:标签构建镜像 docker build -t 镜像名:标签 .删除镜像 docker rmi 镜像ID/镜像名查看镜像的历史记录 docker history 镜像ID/镜像名数据卷挂载 对于容器内产生的需要持久化存储的数据一旦删除容器后数据也将不复存在虽然容器并没有显示的将磁盘内数据进行删除不过这片磁盘数据只被容器内部的文件系统所引用一旦这个容器消失文件系统也将不再那么这个数据即使存储在磁盘中相较于操作系统而言也是没有这个数据无法访问。 为了能够持久化存储数据docker采用了一种数据卷的方式来实现。数据卷将容器需要持久化存储的数据不再保存在其内部文件中而是保存在外部的主机文件中而原容器内的文件则是保存了外部主机文件的一个引用实现数据卷挂载这样不仅实现了数据的持久化存储对于一些配置的修改也可以直接修改主机文件而不是进入容器内部更加方便。 数据卷相关命令 列出所有数据卷 docker volume ls创建数据卷 docker volume create 卷名查看数据卷的详细信息 docker volume inspect 卷名挂载数据卷到容器 docker run -d -v 卷名:容器内路径 镜像删除数据卷 docker volume rm 卷名删除指定的数据卷。需要确保数据卷没有被任何正在运行的容器使用。 清理未使用的数据卷 docker volume prune注意这个操作是不可逆的请谨慎使用。 挂载本地目录绑定挂载 docker run -d -v /宿主机路径:/容器内路径 镜像列出特定数据卷 docker volume ls -f name关键词端口映射 同虚拟机一样虚拟机在桥接模式下其端口只能被当前主机访问。之前我们说过docker和虚拟机这种桥接模式比较类似所以在默认情况下只能被当前主机访问。 不过既然是部署服务自然不能局限于当前主机所以我们可以通过一些命令来讲端口映射到主机端口中实现外部客户端访问此服务的目的。 端口映射相关命令 基本端口映射 docker run -d -p 宿主机端口:容器端口 镜像-d后台运行容器可选。-p 宿主机端口:容器端口将宿主机端口映射到容器的端口。 例子 docker run -d -p 8080:80 nginx这条命令会将宿主机的 8080 端口映射到容器中的 80 端口Nginx 的默认端口这样你可以通过 http://localhost:8080 访问容器中的 Nginx 服务。 映射多个端口 docker run -d -p 宿主机端口1:容器端口1 -p 宿主机端口2:容器端口2 镜像可以使用 -p 多次来映射多个端口。 例子 docker run -d -p 8080:80 -p 8443:443 nginx这会将宿主机的 8080 端口映射到容器的 80 端口将宿主机的 8443 端口映射到容器的 443 端口Nginx 的 HTTPS 端口。 随机映射宿主机端口 docker run -d -P 镜像使用大写的 -P或 --publish-allDocker 会将容器内暴露的所有端口随机映射到宿主机的端口上。 例子 docker run -d -P nginx这会随机将容器中暴露的 80 和 443 端口映射到宿主机的可用端口。 你可以使用 docker ps 来查看映射后的宿主机端口 docker ps指定绑定的宿主机 IP 地址 docker run -d -p 宿主机IP:宿主机端口:容器端口 镜像默认情况下Docker 将绑定到宿主机上的所有 IP 地址0.0.0.0你也可以指定要绑定的 IP 地址。 例子 docker run -d -p 127.0.0.1:8080:80 nginx这会将宿主机的 127.0.0.1即 localhost的 8080 端口映射到容器的 80 端口。只有宿主机本地才能访问这个端口而外部无法访问。 查看端口映射 docker port 容器ID/容器名显示容器内端口与宿主机端口的映射关系。 例子 docker port my_nginx这会列出名为 my_nginx 容器的所有端口映射信息。 修改正在运行的容器的端口映射 Docker 不支持在容器运行时直接修改端口映射。如果需要更改端口映射需要停止容器并重新运行 bashCopy codedocker stop 容器ID/容器名 docker rm 容器ID/容器名 docker run -d -p 新端口映射 镜像其他命令 查看 Docker 信息 docker info查看 Docker 版本 docker version查看系统中的事件日志 docker events导出容器为镜像 docker commit 容器ID 镜像名:标签清理未使用的镜像、卷、网络和容器 docker system prune。 修改正在运行的容器的端口映射 Docker 不支持在容器运行时直接修改端口映射。如果需要更改端口映射需要停止容器并重新运行 bashCopy codedocker stop 容器ID/容器名 docker rm 容器ID/容器名 docker run -d -p 新端口映射 镜像其他命令 查看 Docker 信息 docker info查看 Docker 版本 docker version查看系统中的事件日志 docker events导出容器为镜像 docker commit 容器ID 镜像名:标签清理未使用的镜像、卷、网络和容器 docker system prune
http://www.hkea.cn/news/14497130/

相关文章:

  • 广州做网站报价中国十大装修公司品牌排行榜
  • 预售网站开发网站被镜像怎么办
  • asp服装网站源码专业3合1网站建设价格
  • 橙色 网站景观小品设计网站推荐
  • 网站找人做备案的价格怎么把别人网站源码弄出来
  • 建设目标网站织梦做网站简单吗
  • 广州做英文网站的公司优化seo网站
  • 大华天途建设集团网站佛山网站设计制作免费咨询
  • 南京做中英文网站ipad网站制作
  • php网站后台搭建物流公司模板wordpress
  • 专业网站设计百度竞价推广出价技巧
  • 宝安专业做网站wordpress 电子商务插件
  • 网站建设都包含哪些内容北京网站建设询q479185700上快
  • 南京网站设计收费标准山东省建设管理中心网站首页
  • 扁平手机网站wordpress文章评论数
  • 网站建设在哪里找做网站必须有框架么
  • 蓬莱网站设计一般通过
  • 中企动力网站建设方案永州网站建设开发
  • 黑科技软件网站网站建设与管理教学计划
  • html5网站制作工具计算机网络专业主要学什么
  • 济宁网站建设常用解决方案wordpress微电影模板下载
  • 湖北建设银行官方网站首页qq邮箱登录
  • 网站建设模版文档dw做网站如何让用户可编辑
  • 三亚专业网站建设微信官网网站模板下载不了
  • wordpress 注册显示密码 插件seo网站模板
  • 网站后台如何开发桓台县城乡建设局网站
  • 苏州设计网站公司疏通下水道网站怎么做
  • 黄冈网站建设公司药业做网站的网站目标分析
  • 科技网站建设公司如何把图片放到网站后台
  • 网站建设合同附件wordpress插件启用