定位
容器的网络管理是为了实现容器和容器之间,或者容器与外部主机之间的网络通信

实现方式
1,通过端口映射
这种方式通过将容器内的端口映射到宿主机的端口,从而通过宿主机的ip地址和映射出来的端口实现对容器服务的访问

**随机端口映射(以nginx容器为例**)
通过-P指定,将容器的80端口映射到宿主机的一个随机端口
[root@localhost ~]# docker run -d -P --name nginx-1 nginx

WARNING: IPv4 forwarding is disabled. Networking will not work.
4a00138f70b8da9c8febac75ae432221c104dc2e5dd4fa23a8fe2fa8d6c33c41
[root@localhost ~]# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
4a00138f70b8 nginx “/docker-entrypoint.…” 4 seconds ago Up 2 seconds 0.0.0.0:49154->80/tcp, :::49154->80/tcp nginx-1

**指定端口映射**使用 -p(小写) 指定宿主机的ip:port 映射到容器服务的端口[root@localhost ~]# docker run -d -p 10.10.10.12:999:80 --name nginx-2 nginx

95114e824268b0d01c98b8e32a9ea76518be232131bdfb44462e1869cd25568f
[root@localhost ~]# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
95114e824268 nginx “/docker-entrypoint.…” 7 seconds ago Up 6 seconds 10.10.10.12:999->80/tcp nginx-2

2,网络模型

模型名称 特点 备注

bridge 默认模式,网络地址转换 网络效率低

host 使用宿主机的IP地址和端口 效率高

container 容器和容器共享网络 局域网

none 无任何网络 最干净,最复杂

overlay 容器间跨网段通信 第三方工具

示例:

创建一个bridge模型的网络

[root@localhost ~]# docker network create --driver bridge bridge-test
24f2b640cf495cba0ef3c8de7154c5bde5f527c63cacb2867a8f4af20e387ccf

[root@localhost ~]# docker network ls
NETWORK ID NAME DRIVER SCOPE
f8fdf62ddaf7 bridge bridge local
24f2b640cf49 bridge-test bridge local
a04b125c34b7 host host local
08c23d442d76 none null local

[root@localhost ~]# docker network inspect bridge-test (inspect参数用于查看具体的网络信息)
[
{
“Name”: “bridge-test”,
“Id”: “24f2b640cf495cba0ef3c8de7154c5bde5f527c63cacb2867a8f4af20e387ccf”,
“Created”: “2021-09-17T21:10:19.409579796+08:00”,
“Scope”: “local”,
“Driver”: “bridge”,
“EnableIPv6”: false,
“IPAM”: {
“Driver”: “default”,
“Options”: {},
“Config”: [
{
“Subnet”: “172.18.0.0/16”,
“Gateway”: “172.18.0.1”
}
]
},
“Internal”: false,
“Attachable”: false,
“Ingress”: false,
“ConfigFrom”: {
“Network”: “”
},
“ConfigOnly”: false,
“Containers”: {},
“Options”: {},
“Labels”: {}
}
]

使用bridge-test这个网络模型创建一个容器

docker run -itd --net=bridge-test --name=nginx-bridge nginx

[root@localhost ~]# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
6a76b822c4ba nginx “/docker-entrypoint.…” 3 seconds ago Up 2 seconds 80/tcp nginx-bridge

[root@localhost ~]# docker inspect 6a76b822c4ba (查看容器的信息,截取网络信息部分)
“NetworkID”: “24f2b640cf495cba0ef3c8de7154c5bde5f527c63cacb2867a8f4af20e387ccf”,
“EndpointID”: “7fc544275f75b139bd923f7799c0624eaa4eae16c6c446c7d3d341cdca3b502e”,
“Gateway”: “172.18.0.1”,
“IPAddress”: “172.18.0.2”,
“IPPrefixLen”: 16,
“IPv6Gateway”: “”,
“GlobalIPv6Address”: “”,
“GlobalIPv6PrefixLen”: 0,
“MacAddress”: “02:42:ac:12:00:02”,
“DriverOpts”: null

host模型 (此处不再演示创建host网络模型)

[root@localhost ~]# docker run -itd --net=host --name=nginx-host nginx
8189d33a7976ebcfac344c57e30d040545f8154b81da7fbef7d91af40d0a3701

[root@localhost ~]# docker network inspect host
[
{
“Name”: “host”,
“Id”: “a04b125c34b75e6ae3c1d24c1444430006d57e31ce1872b48736e800da3b8627”,
“Created”: “2021-09-16T22:45:52.335895818+08:00”,
“Scope”: “local”,
“Driver”: “host”,
“EnableIPv6”: false,
“IPAM”: {
“Driver”: “default”,
“Options”: null,
“Config”: []
},
“Internal”: false,
“Attachable”: false,
“Ingress”: false,
“ConfigFrom”: {
“Network”: “”
},
“ConfigOnly”: false,
“Containers”: {
“8189d33a7976ebcfac344c57e30d040545f8154b81da7fbef7d91af40d0a3701”: {
“Name”: “nginx-host”,
“EndpointID”: “478e7d1ed985309a3f90f8817ef64f317827c6b97740b74fd3ae5b399e75a0f2”,
“MacAddress”: “”,
“IPv4Address”: “”,
“IPv6Address”: “”
}
},
“Options”: {},
“Labels”: {}
}
]

(可以看到这个容器并没有网络信息,因为host模型容器是直接使用宿主机的ip和端口的,所以使用host模型的时候要注意,宿主机的响应端口是否被占用)

[root@localhost ~]# netstat -ntulp
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name
tcp 0 0 0.0.0.0:80 0.0.0.0:* LISTEN 23776/nginx: master
tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 1032/sshd
tcp 0 0 127.0.0.1:25 0.0.0.0:* LISTEN 1189/master
tcp 0 0 127.0.0.1:6379 0.0.0.0:* LISTEN 16737/redis-server
tcp6 0 0 :::80 ::

docker之网络管理相关推荐

  1. Docker容器网络管理

    Docker容器网络管理 一.查看系统与容器版本 1.系统版本 2.查看容器版本 二.查看docker网络情况 1.查看docker网络列表 2.查看具体网络情况 二.Docker的四种网络模式 1. ...

  2. Docker默认网络管理

    在进行Docker安装时,Docker就会自动创建三种网络.客户端可以通过网络管理指令进行查看,具体操作指令如下. $ docker network ls ​ 上述指令用于列举Docker中的所有网络 ...

  3. docker 指定网卡_Docker | Docker技术基础梳理(五) Docker网络管理

    为什么需要容器的网络管理? 容器的网络默认与宿主机.与其他容器相互隔离,且容器中可以运行一些网络应用,比如nginx.web应用.数据库等,如果需要让外部也可以访问这些容器中运行的网络应用,那么就需要 ...

  4. Docker 中的网络管理与集群构建

    Docker中的网络与数据管理 一.Docker网络管理 1.Docker默认网络管理 docker的网络模式 注:docker有三种网络模式,默认的为bridge,配置后可以和宿主机通信,host和 ...

  5. Docker的使用(五:Docker中的网络与数据管理)

    实验环境 三台运行有Ubuntu 16.04 操作系统的虚拟机,并每台主机中已安装docker环境: 学习目标 docker的网络管理 docker Swarm集群的使用 Volume数据卷的使用 实 ...

  6. 【开发技术】2万字详细介绍Docker 和 web项目的部署监控,docker部署,拉取kafana,prometheus镜像监控

    SpringBoot 内容管理 Linux Redis Connnect 设置服务器redis开机自启动 修改Redis配置文件 关闭防火墙 关闭selinux 连接Redis Docker Dock ...

  7. 【docker】docker介绍

    一.什么是docker 1.1.docker起源 Docker是一个开源的应用容器引擎,基于Go语言 ,诞生于2013年初. 最初发起者是DotCloud公司((Platform-as-a-Servi ...

  8. docker swarm 集群服务编排部署指南(docker stack)

    Docker Swarm 集群管理 概述 Docker Swarm 是 Docker 的集群管理工具.它将 Docker 主机池转变为单个虚拟 Docker 主机,使得容器可以组成跨主机的子网网络.D ...

  9. docker学习日记

    快速入门 Docker的简单介绍 什么是Docker? docker翻译成中文就是搬运工的意思就如同上面图中鲸鱼通过身上的集装箱(Container)来将不同种类的货物进行隔离:而不是通过生出很多小鲸 ...

  10. Docker 学习总结(74)—— Docker Swarm 全面总结

    一.前言 Swarm 是 Docker 公司推出的用来管理 docker 集群的平台,几乎全部用 GO 语言来完成的开发的,代码开源在 https://github.com/docker/swarm: ...

最新文章

  1. 求n!(n的阶乘)和1!+2!+....n! (阶乘求和) ----C语言实现
  2. 开源Wiki系统:XWiki 2.0.2 发布
  3. 设计模式之单例模式实践
  4. 全场灭灯_海天黄豆酱《新相亲大会2》首遇滑铁卢,男嘉宾险遭全场灭灯
  5. Serverless爆发,前端又一大利好消息
  6. UI设计素材模板|游戏APP界面
  7. 针织物染色常见的6大问题
  8. 前端实践(3)——图像幻灯片
  9. 【车牌识别】基于matlab GUI字符匹配车牌识别(18省份)【含Matlab源码 1617期】
  10. golang mysql null_Golang将变量声明为NULL
  11. 设计一个密码登录程序。要求: 设定用户名为lili,密码是123321。若用户名正确,密码也正确,则显示:“lili,欢迎您”
  12. 如何分享带淘宝客的链接到新浪微博
  13. ccproxy如何设置
  14. 数组图像处理:直方图均衡化
  15. 云擎未来 万象共生:2023移动云万象生态峰会来袭
  16. STM32L+BC20 连接电信云控制继电器
  17. 陕西师范大学公费师范生计算机,陕西师范大学公费师范生2019年录取分数线-陕师大公费师范专业...
  18. classtwo_单表查询
  19. mysql官网下载ubuntu_Ubuntu下安装MySQL
  20. 人性化老人手机设计(二)

热门文章

  1. 5秒内克隆你的声音,并生成任何内容,这个工具细思极恐...还特么的开源~
  2. python求派_python求π
  3. Linux设置和取消定时关机,修改 linux 默认启动级别 设置系统时间   定时关机
  4. pyecharts 大小_[pyecharts1.7] 图表基础设置:大小、背景色、配色主题等
  5. h3c交换机配置远程管理_h3c 交换机配置VLAN和远程管理
  6. mariadb master and salve configure
  7. Python制作短信发送程序
  8. c#实现短信发送程序
  9. Scan Context回环检测解读和使用
  10. HTTP POST GET