Docker网络基础

news/2024/7/8 3:21:45 标签: 运维

目录

  • 网络
    • bridge网络
    • none网络
    • host网络
  • 端口
    • 端口绑定
  • 自定义网络

网络

docker提供几种网络,它决定容器之是以及外界和容器之间怎么样去通信。
可以通过如下方法查看docker的网络:

docker network ls
  • null:无网络,使用这种网络的容器会完全隔离
  • host:主机网络,使用这种网络的容器会使用主机的网络,这种网络对外界是完全开放的,能够访问到主机,就能访问到容器
  • bridge:桥接网络,除非创建容器的时候指定网络,否则容器默认使用桥接网络。属于这个网络的容器之间可以相互通信,不过外界想要访问这个网络的容器,需要使用桥接网络,有点儿像主机和容器之间的一座桥,对容器有一定的隔离作用

bridge网络

查看bridge网络信息:

docker network inspect bridge

会列出bridge网络的相关信息,containers表示使用了这网络的容器。

创建一个使用bridge网络的容器:

docker run -d --name web1 --net bridge nginx

none网络

创建一个使用none网络的容器:

docker run -d --name web_none --net none nginx

查看none网络信息:

docker network inspect none

host网络

创建一个使用host网络的容器:

docker run -d --name web_host -net host nginx

可以看到该容器没有IP地址,因为它直接使用宿主机IP地址

端口

如果想让外界可以访问到基于bridge网络创建的容器提供的服务,则必须要告诉docker要使用的端口。
可以通过如下方法查看镜像会使用哪些端口:

docker inspect nginx | jq .[]."ContainerConfig"."ExposedPorts"

端口绑定

在创建容器的时候可以指定这个容器的端口与主机端口的映射关系:

docker run -d --name web -p 8888:80 nginx
-p,--publis: 可以指定主机与容器的端口关系,冒号左边是主机的端口,右边是映射到容器中的端口
-P:该参数会分配镜像中所有的会使用的端口,并映射到主机上的随机端口

查看容器的端口情况:

docker port web

如果创建容器时,-p参数后面只一个指定端口,意思是主机会随机一个端口,映射到容器的该指定端口:

docker run -d --name web -p 80 nginx

自定义网络

可以基于某一个类型的网络去创建一些自定义的网络,这样属于这个网络的容器就可以单独隔离出来,它们之间可以相互通信,而不在这个网络的容器就不能直接访问到它们。一个容器可以属于多个网络,同一个自定义网络下的容器可以通过各自的容器名访问到对方,因为会使用到docker内嵌的一个dns功能。

创建一个自定义网络:

docker network create --driver bridge custom    #--driver用于指定网络类型

可以通过docker network ls 查看到新创建的custom网络相关信息,Subnet表示这个网络下的子网IP段,那么基于custom自定义网络创建的容器IP都会以该IP段开头。

基于custom网络创建容器:

docker run -d --name web2 --net custom nginx

如果想将已经创建的容器放到自定义网络中,使用如下指令:

docker network connect custom web

将web从bridge网络中移除:

docker network disconnect bridge web

转载于:https://www.cnblogs.com/breezey/p/8812022.html


http://www.niftyadmin.cn/n/735344.html

相关文章

CVPR 2022 Paper Reading List

Best Paper —— Learning to Solve Hard Minimal Problems Best Student Paper —— EPro-PnP: Generalized End-to-End Probabilistic Perspective-n-Points for Monocular Object Pose Estimation Best Student Paper Mention —— Ref-NeRF: Structured View-Dependent A…

基于OpenResty和Node.js的微服务架构实践

什么是微服务? 传统的单体服务架构是单独服务包,共享代码与数据,开发成本较高,可维护性、伸缩性较差,技术转型、跨语言配合相对困难。而微服务架构强调一个服务负责一项业务,服务可以单独部署,独…

JS 前端路由:单页面应用的路由原理和实现

JS 前端路由:单页面应用的路由原理和实现 文章目录JS 前端路由:单页面应用的路由原理和实现简介参考完整示例代码正文从页面刷新到路由跳转单页面应用的优劣前端路由分类前端路由实现项目架构Hash 实现History 实现结语简介 在浏览器的默认行为中&#…

Base64 Base64URL 编码方案(附 js 代码实现)

Base64 & Base64URL 编码方案(附 js 代码实现) 文章目录Base64 & Base64URL 编码方案(附 js 代码实现)简介参考完整示例代码正文什么是 Base64?Base64 转换规则Base64URL 规则Base64 转换字符表转换规则图解在 JavaScript 中进行 Base64 编码Base64 编码 js…

获取 CSS样式

兼容写法 : 我们这个元素里面的属性很多, left top width 我们想要某个属性, 就应该 返回改属性,所有继续封装 返回当前样式的 函数。 1 var demo document.getElementById("demo"); 1 function getStyle(obj,…

JS 动画:给网页下个雪吧

JS 动画:给网页下个雪吧 文章目录JS 动画:给网页下个雪吧简介参考完整示例代码正文1. 一朵雪花2. 很多雪花3. 让雪花动起来4. 快速划过的雪花5. 雪花摇曳6. 最终效果结语简介 前些日子面试的时候被问到 raf 的问题,写了篇 JS 动画基础: 细说…

React 项目启动2:使用 webpack 手动创建 React 项目(附加 React Router + Redux)

React 项目启动2:使用 webpack 手动创建 React 项目(附加 React Router Redux) 文章目录React 项目启动2:使用 webpack 手动创建 React 项目(附加 React Router Redux)前言正文1 项目依赖1.1 选用技术栈1.2 依赖包1.3 依赖包版本号1.4 依赖包版本选用说…

jsf和facelets的生命周期

一、JSF生命周期 JSF是基于事件驱动。JSF生命周期分为两个主要阶段:执行阶段和渲染阶段。 1.执行阶段 分为六个阶段: 恢复视图阶段当客户端请求一个JavaServer Faces页面时,JavaServer Faces实现开始恢复视图阶段。 在此阶段,JSF将…