docker (2)---存储、网络(利用docker容器上线静态网站)

news/2024/5/19 21:24:57/文章来源:https://blog.csdn.net/weixin_30394669/article/details/97957177

一、docker底层依赖的核心技术

1、命名空间 (Namespaces)

2、控制组 (Control Groups)

3、联合文件系统 (Union File System)

4Linux 虚拟网络支持:本地和容器内创建虚拟接口

(1) 命名空间(Namespaces):

实现了容器间资源的隔离,每个容器拥有自己独立的命名空间 , 运行其中的应用就像是运行在独立的操作系统中一样 , 我们都可以看到文件系统,网卡等资源保证了容器之间互不影响,namesaces管理进程号 , 每个进程命名空间有一套自己的进程号管理方法 ,

程命名空间是一个父子关系的结构 , 子空间中的进程对于父空间是可见的。

(2) 控制组 (Control Groups) :

  控制组 (Control groups)--CGroups Linux 内核的一个特性 ,主要用来对共享资源进行隔离、限制、审计等 。cgroups 允许对于进程或进程组公平( 不公平 ) 的分配 CPU 时间、内存分配和 I/O 带宽。

容器通过 cgroups 来得到所能够管理资源的分配和使用。因此容器所获得资源仅为所有系统资源的一个部分

1、资源限制 : 内存子系统为进程组设置内存使用上限,内存达到上限后再申请内存,就会发出 Out of Memory

2、 优先级 : 通过优先级让一些组得到更多 CPU 等资源

3、 资源审计 : 用来统计系统上实际把多少资源用到适合的目的上 , 可以使用 cpuacct 子系统记录某个进程组使用的 CPU 时间

4、 隔离 : 为组隔离名字空间 , 这样一个组不会看到其他组的进程 .网络连接和文件系统

5、 控制 : 挂起 . 恢复和启动等操作

(3)联合文件系统 (Union File System) :

  docker 中使用AUFS(another Union File System v2 版本以后的Advanced multi-layered Unification File System) 控制为每一个成员目录设定只读 / 读写 / 写出权限 , 同时 AUFS 有一个类似分层的概念 , 对只读权限的分支可以逻辑上进行增量的修改.

二、docker的存储

docker两种存储资源类型:

1Data Volume (数据卷)

2Data Volume Dontainers --- 数据卷容器

(1) Data Volume (数据卷):

Data Volume 本质上是 Docker Host 文件系统中的目录或文件,使用类似与 Linux 下对目录或者文件进行 mount 操作。数据卷可以在容器之间共享和重用,对数据卷的更改会立马生效,对数据卷的更新不会影响镜像,卷会一直存在,直到没有容器使用。

Data Volume(数据卷)的特点:

1Data Volume 是目录或文件,而非没有格式化的磁盘(块设备)。

2、容器可以读写 volume 中的数据。

3volume 数据可以被永久的保存,即使使用它的容器已经销毁。

 Data Volume 的使用:

1、在宿主机根目录下创建一个目录(数据卷)

 

2、启动一个容器并将数据卷挂载到容器的目录下

 

3、验证  ( 持久化的需要映射目录)

 

#

 

(2)Data Volume Dontainers --- 数据卷容器

数据卷容器就是一个普通的容器,只不过是专门用它提供数据卷供其他容器挂载使用

Data Volume Dontainers使用:

1、创建一个名为 dbdata 的数据卷,并在其中创建一个数据卷挂载到 /dbdata

docker run -dti -v /dbdata --name dbser centos:latest

2、再启动两个容器,并使用数据卷容器

docker run -dti --volumes-from dbser --name db1 centos:latest

#

3、验证

 

#

容器 db1 db2 同时挂载了同一个数据卷到本地相同 /dbdata目录。三个容器任何一个目录下的写入,都可以时时同步到另外两个

三、docker 三种网络

  docker 网络从覆盖范围可分为单个 host 上的容器网络和跨多个 host 的网络,docker 目前提供了映射容器端口到宿主主机和容器互联机制来为容器提供网络服务,在启动容器的时候,如果不指定参数,在容器外部是没有办法通过网络来访问容器内部的网络应用和服务的

docker 安装时会自动在host上创建三个网络

docker   network  ls   (查看docker  网络)

(1) docker--none网络

none 网络就是什么都没有的网络。挂在这个网络下的容器除了 lo,没有其他 任何网卡。容器创建时,可以通过 --network=none 指定使用 none 网络

 

none网络的应用

封闭的网络意味着隔离,一些对安全性要求高并且不需要联网的应用可以使用 none 网络。

(2)docker--host网络

连接到 host 网络的容器,共享 docker host 的网络栈,容器的网络配置与host 完全一样。可以通过 --network=host 指定使用 host 网络

 

host 网络的应用

  直接使用 Docker host 的网络最大的好处就是性能,如果容器对网络传输效率有较高要求,就可以选择 host 网络。当然不便之处就是牺牲一些灵活性,比如要考虑端口冲突问题,Docker host上已经使用的端口就不能再用了。

Docker host 的另一个用途是让容器可以直接配置 host 网路。比如某些跨host 的网络解决方案,其本身也是以容器方式运行的,这些方案需要对网络进行配置,比如管理 iptables

(3) docker--bridge 网络

docker 安装时会创建一个 命名为 docker0 linux bridge。如果不指定--network,创建的容器默认都会挂到 docker0

 

#

 

eth0@if29      veth04c5851 是一对 veth pair

#

  veth pair 是一种成对出现的特殊网络设备,可以把它们想象成由一根虚拟网线连接起来的一对网卡,网卡的一头(eth0@if29)在容器中,另一头( veth04c5851)挂在网桥 docker0 上,其效果就是将 eth0@if29也挂在了docker0 上。

# 查看网络配置信息 ( 设置容器ip 网段、网关)

docker network inspect bridge

 

#

注:容器创建时,docker 会自动从 172.17.0.0/16 中分配一个 IP,这里 16 位的掩码保证有足够多的 IP 可以供容器。

四、创建 user-defined网络 (自定义网络)

通过 bridge 驱动创建类似前面默认的 bridge 网络

1、利用bridge驱动创建名为my-net2网桥(docker会自动分配网段)

docker network create --driver bridge my-net2

# 查看网络配置信息

 

# 查看网桥

 

2、利用bridge驱动创建名为my-net3网桥(user-defined (自定义)网段及网关)

docker network create --driver bridge --subnet 172.33.1.0/24 --gateway 172.33.1.1 my-net3

# 查看网络配置信息

 

# 查看网桥

 

3、启动容器使用新建的my-net3网络

docker run -it  --network=my-net3  busybox:latest

4、启动容器使用my-net3网络并指定ip(只有使用 --subnet 创建的网络才能指定静态 IP,如果是docker自动分配的网段不可以指定ip

docker run -it --network=my-net3  --ip 172.33.1.100  busybox:latest

 

5、让已启动不同vlanbusybox容器,可以连接到my-net2(其实在busybox中新建了my-net2的网卡)(添加网卡。访问不同的网段)

 

# #docker network connect my-net3  08493ae30117   ( 连接)

6、使用--name指定启动容器名字,可以使用docker自带DNS通信,但只能工作在user-defined 网络,默认的 bridge 网络是无法使用 DNS 的。

#docker run -it --network=my-net3 --name=bbox1 busybox:latest#docker run -it --network=my-net3 --name=bbox2 busybox:latest

7、容器之间的网络互联

&1、创建一个 db 容器

docker run -dti --name db centos:latest

&2、创建一个 web 容器,并使其连接到 容器db

docker run -dti --name web --link db:dblink centos:latest /bin/bash

--link db:dblink 实际是连接对端的名字和这个链接的名字,也就是和 db 容器建立一个叫做 dblink 的链接

 

# 测试  

 

注:此链接通信是单向的

8、容器端口映射

在启动容器的时候,如果不指定参数,在容器外部是没有办法通过网络来访问容器内部的网络应用和服务的,当容器需要通信时,我们可以使用 -P (大) &&-p (小)来指定端口映射

(1)   -P Docker 会随机映射一个 49000 49900 的端口到容器内部开放的网络端口

(2)   -p :则可以指定要映射的端口,并且在一个指定的端口上只可以绑定一个容器。

支持的格式

 IP HostPort ContainerPort

 IP : : ContainerPort

 IP HostPort

&1、 查看映射

docker port   CONTAINER ID/NAMES

&2、映射所有接口地址,此时绑定本地所有接口上的 5200 到容器的 5200 接口,访问任何一个本地接口的 5000 ,都会直接访问到容器内部

docker run -dti -p 5200:5200 centos:latest  /bin/bash

&3、多次使用可以实现多个接口的映射

docker run -dti -p 5400:5400  -p 5300:5300 centos:latest  /bin/bash

&4、映射到指定地址的指定接口

此时会绑定本地 192.168.226.147 接口上的 5100 到容器的 5100 接口

docker run -dti -p 192.168.226.147:5100:5100 centos:latest /bin/bash

 

&5、映射到指定地址的任意接口

此时会绑定本地 192.168.226.147 接口上的任意一个接口到容器的 5500 接口

docker run -dti -p 192.168.226.147::5500 centos:latest /bin/bash

实验、通过端口映射实现访问本地的 IP:PORT 可以访问到容器内的 web

1、将容器80端口映射到主机8090端口

docker run -itd -p 192.168.226.147:8090:80 --name http-test httpd:latest

2、查看刚运行docker容器

docker  ps

 

3、进入 容器

 

4、容器内部编辑网页文件 index.html

 

5、到宿主机上打开浏览器输入 IP:PORT 访问验证

http://192.168.226.147:8090/

 

6、宿主机上传静态网站测试文件

 

7、解压

 

8、把解压的目录上传至容器下的网站根目录

docker cp jd 67b3daf15a40:/usr/local/apache2/htdocs

9、进入容器,删除原来的index.html 文件

 

10、展开目录

 

11web 访问

http://192.168.226.147:8090/

 

 

转载于:https://www.cnblogs.com/myxxjie/p/11087345.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.luyixian.cn/news_show_823288.aspx

如若内容造成侵权/违法违规/事实不符,请联系dt猫网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

从QQ网站中提取的纯JS省市区三级联动

今天收到园友信息,想问我要原来写的一个 《 纯JS省市区三级联动 》文章中最新的省市区数据。 那个是老早以前搞的。记得数据是从数据库中提取生成的。一时也找不到当时的数据库了。 我发现在 http://ip.qq.com/ 的网站中有QQ自己的JS省市区三级联动。所以研究了一下…

无需注册支持快速安全视频的网站

大家好,我是你们的小金子。今天要分享的是一个无需注册支持快速安全视频的网站,既然说到快速,那么我们先来看看到底有多快速。首先打开网站 https://brie.fi/ng/ 会展示如下网页。点击 Start Video Chat,即可直接开始视频。分享右…

Google 出品网站性能质量及错误分析工具

大家好,我是你们的章鱼猫。今天给大家推荐一款由 Google 出品的 Chrome 插件:Lighthouse,它能够分析网站的性能、质量及错误等。市面上类似工具很少,可以看出越大的公司对性能和质量越看重。这款工具通过 Chrome 安装后使用也非常…

GitHub Star 10K,让你的网站更炫酷的开源库

大家好,我是你们的章鱼猫。现在不少网站都支持了骨架屏,能够在网页数据加载前,展示固定的布局,能够减少用户在进入网页时感受到白屏的不适感。今天要给大家推荐一个标星 1 万的开源库:react-content-loader&#xff0c…

1 分钟提升网站使用体验,这么香的方法不想知道吗?

大家好,我是你们的章鱼猫。今天要推荐的开源项目是 instant.page,在介绍项目之前,我们先说说项目的介绍语,如下:Make your site’s pages instant in 1 minute and improve your conversion rate by 1%.什么意思呢&…

非常棒的练手项目, 一个基于 SpringBoot 开源的小说和漫画在线阅读网站

大家好,我是章鱼猫。今天给大家推荐的这个开源项目是一个基于 SpringBoot 实现的小说和漫画在线阅读网站。这个开源项目叫:fiction_house。这个开源项目是一个多平台(web、安卓 app、微信小程序)、功能完善的小说弹幕网站&#xf…

「硬核推荐」一份网站流量变现教程及资料大全

文章首发于微信公众号「GitHub精选」,欢迎大家关注。大家好,我是章鱼猫。今天推荐的这个项目是「awesome-seo」,Google SEO 研究及流量变现。作者为什么要做 SEO?在互联网中,流量就是钱。掌握一定的 SEO 技术&#xff…

天若有情天亦老,我为网站加一秒

文章首发于微信公众号「GitHub 精选」,欢迎大家关注。打开微信,使用 “搜一搜”,搜索「GitHub 精选」,即可关注。大家好,我是章鱼猫。今天推荐的这个项目是「1s」,有些网站,当我们给它 1s 时&am…

开发者论坛一周精粹(第三十六期) 网站备案 oss存储

开发者论坛每周选取精华内容总结,精选论坛优质贴,每周更新一期,方便大家阅读! 依赖SDK时发生错误 ziyeyc http://bbs.aliyun.com/read/576757.html 域名认证,时间太慢了吧 追梦天使11 http://bbs.aliyun.com/read/57…

小爬虫demo——爬取“妹子”等网站链接____使用requests库

# 文章分为三个部分:1. po代码 ;2. 提示运行过程中的一些细节 和需要改进的地方; 3. 常规送福利# 文章将持续完善和补充# 欢迎拍砖、交流、指正第一部分:Po 代码:import re import requestskey input("请输入爬…

知名工具网站-开发、设计

这两年收藏了不少网站,特地整理一下,把一些大家都可能用得上的分享出来,希望能对你有用。 考虑到有一些网站大多数人都知道,所以我就不列出来了。 我把这些网站分为了几大类: 工具类素材类社区类 工具类 1、start.…

HTTPS时代的到来是大势所趋!阿里云CDN如何助力企业网站进入HTTPS时代

摘要: 在2015年,天猫和淘宝已经实现了全站HTTPS,并且在2015年底,阿里云CDN HTTPS产品化并且开始全面对外,并且为越来越多的客户提供HTTPS服务。无论是从阿里内部还是外部的同行,还从是Google的Chrome以及Mo…

在web项目中使用WebBrowser类-----给网站抓图

最近做一个WEB项目,其中要求有个功能就是程序能网页抓图,举个例子: 在test.aspx页面上放一个TextBox和一个Button,TextBox用来输入要抓取的网页地址,然后按了Button之后,服务器要对前面输入的网址进行抓图&…

【新手教程】阿里云视频点播,轻轻松松给网站加上视频的翅膀

您是不是被 网站 视频 问题 弄的焦头烂额、心烦意乱、夜不能寐、寝食难安?那么,看完这里,以上问题统统都可以解决啦。首先,我们开通 阿里云 视频点播功能,传送门: https://www.aliyun.com/product/vod开通需…

2018最受欢迎开源免费CMS建站系统排行榜

随着互联网及web应用技术的蓬勃发展,网上针对企业建站的各种CMS建站系统层出不穷,如今企业建站和维护的成本已不像过去那么高。经常在网上看见有人问及”哪个CMS系统最好用”、”企业建站用哪个CMS系统最多”等类似问题,所以本文将和大家一起…

记一次真实的网站被黑经历

前言 距离上次被DDOS攻击已经有10天左右的时间,距离上上次已经记不起具体那一天了,每一次都这么不了了只。然而近期一次相对持久的攻击,我觉得有必要静下心来,分享一下被黑的那段经历。 在叙述经历之前,先简单的介绍一…

开发者论坛一周精粹(第五十一期) 阿里云上建的网站国外能访问吗?

开发者论坛每周选取精华内容总结,精选论坛优质贴,每周更新一期,方便大家阅读! (钉钉)IoT开发者俱乐部合伙人火热招募中 云栖青年 摘要:IoT开发者俱乐部,是阿里云IoT事业部发…

大型网站的负载均衡器、db proxy和db

本文主要分析网站后台架构中的负载均衡器,企业常用的硬件负载均衡器软件负载均衡器、数据库代理服务器和数据库。 1.1 负载均衡 在大型网站部署中,负载均衡至少有三层部署。第一层为web server或者缓存代理之上的负载均衡,第二层为数据库之上…

解决github网站慢

使用Google 搜索 http://www.qtshare.cn/archives/520 1、进入 C:\Windows\System32\drivers\etc 路径 2、打开 hosts0 文件 3、在末端加入 # GitHub Start 192.30.253.112 github.com 192.30.253.119 gist.github.com 151.101.100.133 assets-cdn.github.com 151.101.1…

【自用建设中小型网站工具】快速生成后台

前言:此”快速生成后台“为本人参考discuz开源代码效果组装而成。无高深技术,只讲究快速生成,适合建设中小型网站。运用得当可以批量生产网站后台。 以一个新闻系统为例子,写出详细建设过程,分享一下,以备后…