docker网络模式 与 搭建nginx

news2024/11/17 23:36:12

目录

1. docker网络模式

2. 连接容器的三种方法

3. Docker Networking

3.1 创建网络

3.2 查看宿主机中创建的网络

3.3 删除网络

3.3 如何使用网络

4.搭建Nginx

1.准备工作

1.1 拉取镜像

1.2 在宿主机中创建挂载目录

 2.准备2个tomcat 容器集群

3.准备 Nginx配置

3.1启动Nginx容器

4.测试访问是否通过 


1. docker网络模式

docker安装成功后,会自动创建三个网络,可以通过如下的方式查看:

lisen@ubuntu:~$ sudo docker network ls
[sudo] password for lisen:
NETWORK ID          NAME                DRIVER              SCOPE
8994fe397802        bridge              bridge              local
436da757b62d        host                host                local
1b2be829b666        none                null                local
lisen@ubuntu:~$

在运行容器时可以通过--net参数指定网络模式,例如:

  • host模式: --net=host 容器不会虚拟自己的网卡,使用宿主机的ip和端口
  • none模式: --net=none 该模式等同于关闭容器的网络功能,一般在不需要网络的批处理任务中才使用
  • bridge模式: --net=bridge 默认值,如果指定--net参数,则docker就会采用这种模式,这种模式也是最强大灵活,使用的最广的网络模式。

Docker每次创建容器都会同时创建一组互联的网络接口,你可以理解为一根管道的两端, 这组接口一端作为容器的eth0接口,另一端命名类似于veth966865c@if100这样的名字,作为宿主机的一个端口。可以将veth接口的理解为虚拟网线的一端,这个虚拟网线一端插在名为docker0的网桥上,另一端插到容器中。通过这种方式Docker创建了一个虚拟子网,这个虚拟子网被宿主机和所有的Docker容器共享。

注: 可以安装bridge-utils工具查看网桥信息

如: yum install bridge-utils

查看网桥信息: brctl show

2. 连接容器的三种方法

docker的最佳实践建议为每个服务创建单独的docker容器,比例:db,redis,应用服务等等,那么不同的服务需要连接以便于作为整体为客服提供服务,例如应用服务需要连接db,redis等。常见的容器连接方法有三种:

  • Docker的内部网络
  • Docker1.9之后,可以使用Docker Networking
  • Docker 链接(Docker link)

1)这三种方式如何选择呢?

Docker的内部网络,这种方式不灵活,在重启容器需要重新配置,所以不推荐使用这种方式;如果使用Docker1.9之前的版本,则应该选择Docker link的方式; 如果使用docker1.9及更高的版本,则推荐使用Docker Networking,这种方式最灵活,功能也是最强大的。

2)Docker link和Docker Networking之间有什么区别呢?

  • Docker Networking可以连接不同的宿主机上的容器的
  • Docker Networking可以在不更新连接的情况下,停止,启动,或重启容器
  • Docker Networking不必事先创建网络,也不关心容器的启动顺序

3)也就是说只要用的docker是1.9版本之后,就应该使用Docker Networking咯?

恭喜你,答对了。

因为我们肯定会使用docker1.9之后的版本(现在docker已到19.04版本甚至更高版本了),所以我们只讲Docker Networking方式

3. Docker Networking

容器之间连接用网络创建,这个网络被称为Docker Networking,是Docker1.9版本之后的新特性。用户可以通过Docker Networking创建自己的网络,容器可以通过这个网络进行通信。

3.1 创建网络

创建一个新的网络可以使用如下的命令:

sudo docker network create app

可以使用如下的方式来查看网络的详细信息

sudo docker network inspect app

3.2 查看宿主机中创建的网络

sudo docker network ls

3.3 删除网络

sudo docker network rm app

3.3 如何使用网络

1)启动镜像时指定--net参数

sudo docker run -it --name test --net=app imagename

2)也可以将运行中的容器加入网络

sudo docker network connect app test
  • app 需要加入的网络名
  • test 需要加入到网络的容器名

创建好容器后进行测试,测试是否可以通讯 下载一个contos镜像测试

docker pull centos:7

创建两个容器 看是否可以 ping 通

docker run -itd --name ubd centos:7

删除所有 容器

4.搭建Nginx

1.准备工作

1.1 拉取镜像

1.2 在宿主机中创建挂载目录

    mkdir -p /data/text/nginx/{conf,html,logs}
    mkdir -p /data/text/tomcat/{webapps/ROOT,conf,logs}

目录结构

我们在 webapps/ROOT中创建index.html

<!DOCTYPE html>
<html>
<head>
        <meta charset="utf-8"/>
        <title>Nginx+tomcat集群</title>
</head>
<body>
        <h1>Nginx+tomcat集群部署示例</h1>
</body>
<html>

 2.准备2个tomcat 容器集群

docker run -d --name tomcat1 -v /data/text/tomcat/webapps:/usr/local/tomcat/webapps tomcat:9
docker run -d --name tomcat2 -v /data/text/tomcat/webapps:/usr/local/tomcat/webapps tomcat:9

 

容器的IP可以通过 docker inspect tomcat1 进行查看

3.准备 Nginx配置

修改nginx 配置文件

3.1启动Nginx容器

docker run -d -p 80:80 \
 --name nginx -v /data/text/nginx/html/:/usr/share/nginx/html \
  -v /data/text/nginx/conf/nginx.conf/:/etc/nginx/nginx.conf \
  -v /data/text/nginx/logs/:/var/log/nginx nginx

4.测试访问是否通过 

通过宿主机ip 进行访问

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

ffmpeg 命令的简单使用

ffmpeg命令是在windows端使用的&#xff0c;使用前&#xff0c;需要先下载对应的 exe文件 1.准备环境 访问FFmpeg官网的下载地址&#xff08;https://www.gyan.dev/ffmpeg/builds/&#xff09;下载对应的压缩包&#xff0c;解压后即可使用 2.使用 ffmpeg.exe的使用 • 功能 …

利用Clion编译器完成C++的头文件与源文件的映射

1、前言 嘿嘿&#xff0c;众所周知&#xff0c;本人是一名Java后端人员&#xff0c;那么为什么开始搞C/C了咧&#xff1f; 因为Java是在C/C的基础上开发的语言&#xff0c;而且性能也是业界公认的除了机器语言外最好的编程语言&#xff0c;所以我就想啊&#xff0c;如果将Java…

记一次返工

记一次返工 作者&#xff1a;Grey 原文地址&#xff1a; 博客园&#xff1a;记一次返工 CSDN&#xff1a;记一次返工 本文搬运自自己的博客园博客&#xff0c;发布于 2018-05-12 说明 本周我经历了参加工作以来&#xff0c;最大的一次返工&#xff0c;这一周都是茶饭不思…

安全灵活,华为云桌面成为数字化办公最佳搭档

目前云上数字化办公已经是大势所趋&#xff0c;但是如何快速高效地为用户提供便捷高效的工作和生活体验&#xff0c;依然需要大量的技术投入来实现。而华为云桌面就是云上办公的门户与平台&#xff0c;它可以将各种业务系统在云端进行集中管理与调度&#xff0c;通过统一的接口…

二、collection接口

文章目录Collection接口和常用方法(以ArrayList为例)基本使用方法遍历元素方式1(iterator)遍历元素方式2(增强for)练习Collection接口和常用方法(以ArrayList为例) 以ArrayList&#xff0c;其他集合同理使用 基本使用方法 注&#xff1a;集合添加基本数据类型会自动装箱成对…

非零基础自学Golang 第15章 Go命令行工具 15.1 编译相关指令 15.1.2 run

非零基础自学Golang 文章目录非零基础自学Golang第15章 Go命令行工具15.1 编译相关指令15.1.2 run第15章 Go命令行工具 15.1 编译相关指令 15.1.2 run 我们在调试代码时通常会使用go run命令。 该命令会编译执行Go语言源码&#xff0c;不会在当前目录生成可执行文件&#x…

【LeetCode每日一题:1799. N 次操作后的最大分数和~~~记忆化搜索+动态规划+状态压缩+最大公约数】

题目描述 给你 nums &#xff0c;它是一个大小为 2 * n 的正整数数组。你必须对这个数组执行 n 次操作。 在第 i 次操作时&#xff08;操作编号从 1 开始&#xff09;&#xff0c;你需要&#xff1a; 选择两个元素 x 和 y 。 获得分数 i * gcd(x, y) 。 将 x 和 y 从 nums 中…

07. 渗透测试之针对网站的信息收集

07. 渗透测试之针对网站的信息收集 01 信息收集简介 什么是信息收集 信息收集&#xff08;Information Gathering&#xff09;是指通过各种方式获取所需要的信息。信息收集是信息得以利用的第一步&#xff0c;也是关键的一步。信息收集工作的好坏&#xff0c;会影响整个渗透…

全国各城市疫情达峰进度条感染高峰时间表最新

防疫政策放开之后&#xff0c;多位专家就研判&#xff0c;未来一个多月内全国疫情将达到感染高峰。而近日&#xff0c;一张全国各地疫情进度和最终高峰的预计时间表流传&#xff0c;对各城市首轮感染高峰期进行了预测。那么&#xff0c;全国各城市疫情达峰进度条如何了&#xf…

怎么高效的开发一款成功的产品?Working Backwards

过去的几天一直在回顾整个产品团队过去一年所做的工作&#xff0c;有的工作有亮点&#xff0c;有的工作可以说是乏善可陈。对于不好的&#xff0c;发现其中的一个核心原因就是没有坚持“以终为始”的原则。现将我2021年10月写的一篇公司内部博客再次分享给团队&#xff0c;也分…

Simple Yet Effective Graph Contrastive Learning for Recommendation

1. 摘要 图神经网络(GNN)是一种强大的基于图的推荐系统学习方法。最近&#xff0c;结合对比学习的gnn在处理高度稀疏数据时&#xff0c;在数据增强方案的推荐方面表现出了优异的性能。尽管它们取得了成功&#xff0c;但大多数现有的图对比学习方法要么在用户-项目交互图上执行随…

JAVA零基础小白学习教程之day08_接口多态

day08-JAVAOOP 课程目标 1. 【理解】什么是接口 2. 【掌握】接口的定义格式 3. 【掌握】接口的使用 4. 【理解】接口的成员特点 5. 【理解】类和接口 抽象类和接口之间的关系 6. 【掌握】单继承多实现 7. 【理解】接口之间的多继承 8. 【掌握】接口的案例 9. 【理解】什么是…

一个程序员的新冠防护最佳实践

至今未阳&#xff0c;做了几次抗原检测都是阴性&#xff0c;所以把个人的防护经验给广大程序员朋友分享一下&#xff0c;尤其家里有小孩老人的可以参考一下。 我一天的防护操作 1、午餐 吃午饭时&#xff0c;走楼梯不去挤电梯&#xff0c;而且是在其他人吃完饭后&#xff0c…

Unreal Engine中调试常用方法

目录 常用调试方法 AddOnScreenDebugMessage UE_LOG&#xff1a;在控制台看调试信息 在蓝图中直接调用PrintString 自定义日志分类 声明 定义 简化日志输出的宏 日志格式化输出 常用调试方法 在虚幻引擎中常用的打印日志方法有三种&#xff0c;分别是&#xff1a;UE_…

C++运算符重载,匿名对象

目录 1、加号运算符重载 1.1 通过自己写成员函数&#xff0c;实现两个对象相加属性后返回新的对象 1.2通过成员函数实现加法运算符重载 1.3通过全局函数实现加法运算符重载&#xff0c;运算符重载也可以发生函数重载 1.4总结--对于内置的数据类型的表达式运算符是不可以改变…

Python+Requests实现接口自动化测试

一般对于自动化的理解&#xff0c;有两种方式的自动化。 第一&#xff0c;不需要写代码&#xff0c;完全由工具实现&#xff0c;这种方式的工具一般是公司自己研发的&#xff0c;方便黑盒测试人员使用。这种工具的特点是学习成本低&#xff0c;方便使用&#xff0c;但是通用性…

面向5G C-RAN组网的机房配置标准与模型

【摘 要】当前5G网络建设成本高,投资压力大,基站建设进度受铁塔公司制约;基站机房电费、租赁、服务费用逐年上升,运营维护压力大。面向未来5G建设,通过C-RAN组网,实现BBU集中化部署,可促进降本增效,实现低成本建网。首先分析了C-RAN区所处的网络位置,其次从BBU框多基…

java基于springboot的心理健康管理网站-计算机毕业设计

运行环境&#xff1a; 开发工具:IDEA /Eclipse 数据库:MYSQL5.7 应用服务:Tomcat7/Tomcat8 使用框架springbootvue 项目介绍 心灵治愈交流平台的主要使用者分为管理员和用户、心理咨询师&#xff0c;实现功能包括管理员&#xff1a;首页、个人中心、系统公告管理、用户管理、心…

网上订餐项目(附源代码及数据库)

目录 一、项目概要 二、项目展示 三、数据库 四、项目源码 五、毕设专栏 首页 登录界面 注册页面 一、项目概要 系统主要功能模块有&#xff1a; &#xff08;1&#xff09;首页菜品&#xff1a;主要包括购买菜品、菜品加入购物车的功能 &#xff08;2&#xff09;我的…

django-rest-framework

文章目录 &#xff08;1&#xff09;Web应用模式及API接口 &#xff08;2&#xff09;Restful规范 &#xff08;3&#xff09;drf安装和简单使用 &#xff08;4&#xff09;源码分析 &#xff08;5&#xff09;序列化器-Serializer &#xff08;6&#xff09;局部和全局响应配…