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

网站文件怎么做/网站seo关键词排名推广

网站文件怎么做,网站seo关键词排名推广,wordpress user_register,django网站开发源码《深入浅出docker》 容器的发展之路 应用的部署从单一服务器,到虚拟机,再到容器,都是为了解决资源合理分配的问题。 虚拟机的不足: 虚拟机缺点是: 最大的缺点是依赖其专用的操作系统。OS会占用额外的CPU、RAM、和存储&#xf…

《深入浅出docker》

  • 容器的发展之路

应用的部署从单一服务器,到虚拟机,再到容器,都是为了解决资源合理分配的问题。

虚拟机的不足:

虚拟机缺点是:

  1. 最大的缺点是依赖其专用的操作系统。OS会占用额外的CPU、RAM、和存储,而这些资源本可以用于运行更多的应用
  2. OS还需要补丁和监控;
  3. 某些情况下,OS还需要许可证

这写都对运营成本和资金性支出都是一种浪费

 

容器的优点:

  1. 容器的运行不会独占操作系统,实际上运行在同一个宿主机上的容器是共享一个操作系统的
  2. 容器还具有启动快和便迁移等特点

 

第二章 走进Docker

Docker公司的一个核心哲学:含电池,但可拆卸(Batteries included but removable)

 

开放容器计划(The Open Container Initiative)OCI:一个旨在对容器基础架构中的基础组件进行标准化的管理委员会

OCI发布的两份标准:镜像标准和运行时标准

 

第三章 Docker安装

安装使用阿里云的云服务器ECS(按量计费,2核4g)

准备内容:

创建一个用户wen(useradd wen)添加到本地Docker Unix组

root@iZwz95pm4ylhqjz6z31qpuZ:~# usermod -aG docker wen

root@iZwz95pm4ylhqjz6z31qpuZ:~# cat /etc/group |grep docker

docker:x:999:wen

  1. 使用wget命令获取并运行Docker安装脚本

root@iZwz95pm4ylhqjz6z31qpuZ:~# wget -qO- https://get.docker.com/ |sh

 

root@iZwz95pm4ylhqjz6z31qpuZ:~# docker --version

Docker version 20.10.1, build 831ebea

 

Docker存储驱动的选择

       每个Docker容器都有一个本地存储空间,用于保存层叠的镜像(Image Layer)以及挂载的容器文件系统,默认情况下,容器的所有读写操作都发生在镜像层上或挂载的文件系统中

 

本地存储是通过存储驱动(Storage Driver)进行管理,也被称为Graph Driver

 

Linux上Docker可选择的存储驱动:

AUFS:最原始而古老

Overlay2:未来发展趋势

Device Mapper

Btrfs

ZFS

 

Windows上的存储驱动

Windows Filter

 

存储驱动的选择是节点级别的,即每个Docker主机只能选择一种存储驱动,而不能为每个容器配置一种存储驱动。

Linux上存储驱动的设置路径为:/etc/docker/daemon.json

root@iZwz95pm4ylhqjz6z31qpuZ:/etc/docker# cat daemon.json

{

        "storage-driver":"overlay2"

}

 

主机会根据使用的存储驱动在/var/lib/docker/下用存储驱动做标识,将镜像层存储

 

第四章 纵观Docker

镜像

容器

docker run  --name name image:tag

 

镜像容器化:

安装git后,从github上下载案例(跟书中的不一定要一样,也可以只使用一个Dockerfile构建)

案例github地址:https://github.com/nigelpoulton/pluralsight-docker-CI.git

 

构建

构建成功

 

运行

 

通过端口访问成功

 

 

 

第五章 Docker引擎

Docker首次发布的时候,Docker引擎由两个核心组件构成LXC和Docker daemon。其中Docker daemon是一个二进制文件,包含诸如Docker客户端、Docker API、容器运行时、镜像构建等;

LXC提供对命名空间(Namespace)和控制组(CGroup)等基础工具的操作能力

 

后续发展:LibContianer替换了LXC;Docker daemon逐步拆分,runc(OCI容器运行时规范的参考实现)、containerd(容器生命周期管理)

 

 

Docker daemon的架构

 

容器的启动过程:

  1. 在docker命令行工具上执行命令
  2. docker客户端将命令转化为合适的API格式,发送到正确的API端点;API是在daemon中实现
  3. daemon通过grpc协议与containerd进行通信
  4. containerd将docker镜像转换为OCI bundle,并让runc基于此创建一个新的容器
  5. runc与操作系统内核接口进行通信,基于必要的工具(Namespace、CGroup等)创建容器;容器进程作为runc的子进程启动,启动完毕后,runc将会退出

该模型也被称为无守护进程的容器

 

shim的作用:当containerd指挥runc创建新容器过程中,每次创建容器都会fork一个新的runc实例。容器启动完成,随即runc退出,相关联的containerd-shim进程就成为容器的父进程。

shim的职责:保持所有的STDIN和STDOUT流时开启状态,从而当前的daemon重启时,容器不会因为管道(pipe)的关闭而终止;将容器的退出状态反馈给daemon。

 

第六章 Docker镜像

docker中的镜像相当于模具,容器就是那些从模具中生产出来的产品

docker镜像的拉取遵循格式:

docker image pull 账户/仓库:标签

 

docker中的镜像是由多个文件层构成的,每个文件层都有对应的唯一标识,这些组合起来就是docker 的镜像标识,所以对一个镜像打标签的时候,可能会存在多个标签对应同一镜像,因为文件层没有变更。

 

过滤docker image ls的输出内容

返回悬虚镜像(没有标签的镜像为悬虚镜像)

 

使用reference完成过滤并且仅显式标签为latest的示例

 

使用—format参数通过GO模板对输出内容格式化

 

 

搜索镜像

 

搜索官方镜像

搜索自动创建的镜像

 

 

dockers镜像由一些松散耦合的只读镜像层组成

查看镜像的分层方式

镜像的构建历史

 

镜像构建的过程:

  1. 所有的docker镜像都起始于一个基础镜像层,当进行修改或增加新的内容时,就会在当前镜像层之上,创建新的镜像层
  2. 当上层的文件是下层文件的变更的时候,会默认覆盖

 

共享镜像层:

多个镜像之间可以并且确实会共享镜像层

 

删除镜像:

 

删除所有的镜像

docker image rm $(docker image ls -q) -f

 

 

第七章 Docker容器

创建并启动容器

 

-it参数可以将当前终端连接到容器的Shell终端之上

 

容器启动的时候会默认启动一个与容器生命后期一致的bash(pid为1的进程),当此bash结束的时候,容器也就跟随结束

 

检查Docker daemon是否正常运行

 

容器启动的过程:docker container run <options> <image>:<tag> <app>

  1. 客户端执行命令转换工作,将命令使用合适的API调用docker daemon
  2. docker daemon接收到命令并搜索Docker本地缓存,观察是否有命令请求的镜像,如果没有则查询Docker Hub并拉取
  3. docker创建容器并在其中运行指定的应用

 

容器停止(stop)与容器销毁(rm)

 

容器的停止本质是向容器内容pid为1 的进程发送SIGTERM信号,让进程预留一个清理并优雅停止的机会

容器的销毁则是直接发送SIGKILL信号,直接杀死进程

 

容器的重启策略

 

always:除非容器被明确停止(stop),否则策略会尝试一直重启停止的容器;daemon重启的时候,停止的容器也会重启

unless-stop:daemon重启的时候,容器不会重启

on-failure:策略会在退出容器并且返回值不是0的时候重启容器

 

 

 

查看容器详情

 

快速清理容器

 

命令总结:

  1. docker container run 是启动新容器的命令。-it会连接入容器中启动的程序
  2. Ctrl+PQ会端口Shell和容器终端之间的连接,并在退出后保持容器在后台处于运行状态
  3. docker container ls列出处于运行状态的容器,-a 列出所有的容器
  4. docker container exec 允许用户在运行状态的容器中,启动一个新的进程
  5. docker container stop 停止运行中的容器,并将状态置为Exited(0)。
  6. docker container inspect 显示容器的配置细节和运行信息

 

 

第八章 应用的容器化

应用容器化的过程:

  1. 编写应用代码
  2. 创建一个Dockerfile,其中包括当前应用的描述,依赖以及该如何运行这个应用
  3. 对该Dockerfile执行docker image build命令
  4. 等待docker将应用程序构建到Docker镜像中

 

分析Dockerfile

 

  1. 以centos:centos8为基础镜像(FROM)
  2. 指定维护者(LABEL)
  3. 容器中执行命令yum -y(RUN)
  4. 复制当前资源到容器中(COPY)
  5. 容器中执行命令(RUN)
  6. 记录应用网络端口(EXPOSE)
  7. 指定容器启动命令(CMD)

 

 

 

 

 

 

 

 

构建

 

 

 

Dockerfile的用途

  1. 对当前应用的描述
  2. 指导Docker完成应用的容器化(创建一个包含当前应用的镜像)

 

镜像推送到仓库

  1. 登录docker账户
  2. 镜像打标签
  3. 推送

多阶段构建

镜像构建过程中,docker会根据指令产生新的镜像层,这样会导致镜像的大小比较大,采用多阶段构建可以有效控制镜像的大小。

构建前端内容

  1. 构建后端内容
  2. 从签名构建的镜像中将结果内容取出,再构建新的镜像

 

COPY --from指令从之前构建的镜像中仅复制生产环境相关的应用代码,而不复制生产环境不需要的构件

 

总结:

  1. docker image build 命令会读取Dockerfile并将应用程序容器化。使用-t参数为镜像打标签,使用-f指定Dockerfile的路径和名称
  2. Dockerfile中FROM指令用于指定构建的镜像的基础镜像,常位于第一条指令
  3. RUN指令用于在镜像中执行命令,会创建新的镜像层
  4. COPY指令用于将文件作为一个新的层添加到镜像中,会创建新的层
  5. EXPOSE指令用于记录应用所使用的网络端口
  6. ENTRYPOINT指令用于指定镜像以容器方式启动后默认运行的程序

 

 

第九章 使用Docker Compose部署应用

安装Docker Compose

root@iZwz95pm4ylhqjz6z31qpuZ:~# curl -L https://github.com/docker/compose/releases/download/1.18.0/docker-compose-`uname -s`-`uname -m` -o /usr/local/bin/docker-compose

下载案例

 

version必须指定,且位于文件的第一行,定义Compose文件格式

  1. Services用于定义不同的应用服务
  2. network用于指引Docker创建新的网络;默认情况下,Docker Compose会创建bridge网络(一种单主机网络,只能实现同一主机上容器的互连)
  3. volumes用于指引Docker创建新的卷
  4. build . 指定Docker基于当前目录(.)下的Dockerfile中定义的指令来构建一个新镜像。该镜像会被用于启动该服务的容器
  5. command:python app.py指定Docker在容器中执行名为app.py的Python脚本作为主程序
  6. port:指定容器的端口映射,将容器内的(-target)5000端口映射到主机的(published)的5000端口
  7. network:使得Docker可以将服务连接到指定的网络上
  8. volumes指定Docker将卷挂在到容器的指定目录

 

指定docker compose启动文件位置

docker-compose -f prod-equus-bass.yml up

 

通常情况下,启动一个Compose应用,系统会默认寻找docker-compose.yml或docker-compose.yaml的文件;使用-d参数可以后台启动;使用&可以将终端窗口返回,让日志显示在终端窗口上

正常启动

列出各个服务(容器)内运行的进程

停止应用删除资源(网络等),不删除卷

停止应用不删除资源

总结:

  1. docker-compose up命令用于部署一个Compose应用。默认情况下会去读取docker-compose.yml或docker-compose.yaml的文件,可以使用-f指定其他文件名。通常情况下,使用-d参数令应用后台启动
  2. docker-compose stop会停止应用相关的容器,但不删除资源
  3. docker-compose rm 用于删除已停止的应用,删除容器和网络,但不删除卷和镜像
  4. docker-compose ps 列出Compose应用中的各个容器。输出内容包括当前状态、容器运行的命令以及网络端口
  5. docker-compose down 停止并删除运行中的compose应用。删除容器和网络,但不删除镜像和卷
http://www.jmfq.cn/news/5276773.html

相关文章:

  • 网站开发架构mvc/百度seo是什么
  • java网站做微信分享/互联网登录的网站名
  • 沈阳外贸网站制作公司/国内最近发生的重大新闻
  • 政务网站开发方案/seo公司的选上海百首网络
  • 个人外贸网站/seo深圳优化
  • cms哪个好用/seo初级入门教程
  • 开发公司资质审查用假资料后果/seo入门培训学校
  • 怎么做展示型网站/大连网站排名推广
  • 做设计的一般在什么网站找素材/百度竞价托管一月多少钱
  • 外贸网站建设广州/网站推广基本方法是
  • 安徽建设厅网站进不去/做企业网站建设公司哪家好
  • 兼职网站建设 开源/营销心得体会感悟300字
  • 宿迁建设企业网站/排名优化公司
  • 微商城手机网站设计公司/网络广告的发布方式包括
  • 网站怎么做app吗/网店运营培训
  • 邮轮哪个网站是可以做特价/百度明星人气排行榜
  • 南通优化网站费用/怎样做网络推广营销
  • 网站建设与管理好吗/微信客户管理系统
  • 带dede后台的整套网站源码 数据库连接不上/百度搜索引擎收录入口
  • 做企业网站用哪个软件/爱站网 关键词挖掘工具站长工具
  • 网站开发程序/seo快速排名软件价格
  • 中国建设网站的公司/企业网站优化排名
  • 金坛建设银行总行网站/公司网站如何推广
  • 网站优化软件方案/谷歌账号注册入口官网
  • 国土资源局加强网站建设/阿里云官网首页
  • 域名备案注销流程/佛山网站优化软件
  • 多语言的网站/手机优化软件哪个好用
  • wordpress 关闭网站/北京网站营销与推广
  • 长沙网站建设推广服务/百度的竞价排名是哪种方式
  • 专业的河南网站建设公司排名/今日最新消息新闻