Docker 网络
时间:2022-04-29
本文章向大家介绍Docker 网络,主要内容包括网络类型、host、none、container:name or id、创建网络、查看网络、容器连接网络、断开网络、移除网络、Swarm mode、ingress network、docker_gwbridge、设置代理、other、基本概念、基础应用、原理机制和需要注意的事项等,并结合实例形式分析了其使用技巧,希望通过本文能帮助到大家理解应用这部分内容。
本文介绍 Docker 网络。
官方文档:https://docs.docker.com/engine/userguide/networking/
网络类型
bridge
桥接类型
是创建容器时默认连接的网络类型,用的比较多,这里不再详细介绍。
host
容器将不会虚拟出自己的网卡,配置自己的 IP 等,而是使用宿主机的 IP 和端口,容器可以和宿主机一样,使用宿主机的 eth0
实现和外界的通信。换言之容器的 IP 地址即为宿主机 eth0 的 IP 地址。
$ docker run -dit --network host nginx:alpine
现在访问 主机 IP
即可看到 nginx 默认页面。
none
这样创建出来的容器完全没有网络。
$ docker run -it --rm nginx:alpine ip addr
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN qlen 1000
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
valid_lft forever preferred_lft forever
5: eth0@if6: <BROADCAST,MULTICAST,UP,LOWER_UP,M-DOWN> mtu 1500 qdisc noqueue state UP
link/ether 02:42:ac:11:00:02 brd ff:ff:ff:ff:ff:ff
inet 172.17.0.2/16 scope global eth0
valid_lft forever preferred_lft forever
后边可以通过 docker network connect bridge CONTAINER_ID
来将没有设置网络的容器连接到一个网络。
container:name or id
--network="container:name or id
通过此参数启动的容器,拥有与被连接的容器相同的网络。
创建网络
$ docker network create -d bridge [ --subnet 172.25.0.0/16 ] NETWORK_NAME
-d
指定网络驱动,默认为 bridge
,在 Swarm mode
中也可以创建 overlay
类型的网络。
查看网络
$ docker network ls
NETWORK ID NAME DRIVER SCOPE
369f1b30c236 bridge bridge local
991412261a72 host host local
269fb25e6d2d none null local
查看网络详情
$ docker network inspect bridge
容器连接网络
可以固定容器 IP
$ docker run --network=NETWORK_NAME [ --ip=172.25.3.3 ] ...
$ docker run --network="container:id or name"
$ docker network connect NETWORK_NAME CONTAINER_NAME
断开网络
$ docker network disconnect NETWORK_NAME CONTAINER_NAME
移除网络
$ docker network rm NETWORK_NAME
$ docker network prune
Swarm mode
$ docker network create
--driver overlay
--subnet 10.0.9.0/24
NETWORK_NAME
$ docker service create
--replicas 2
--network NETWORK_NAME
--name my-web
nginx
Overlay network
ingress network
The ingress network is created automatically when you initialize or join a swarm.
docker_gwbridge
The docker_gwbridge network is created automatically when you initialize or join a swarm.
设置代理
17.07+
~/.config.json
{
"proxies":
{
"default":
{
"httpProxy": "http://127.0.0.1:3001",
"noProxy": "*.test.example.com,.example2.com"
}
}
}
other
设置环境变量,请查看 官方文档
- 3892: [Usaco2014 Dec]Marathon
- BZOJ 2793: [Poi2012]Vouchers(调和级数)
- 3891: [Usaco2014 Dec]Piggy Back
- Java8-如何构建一个Stream
- 2016: [Usaco2010]Chocolate Eating
- javascript 闭包详解
- 3016: [Usaco2012 Nov]Clumsy Cows
- POJ 3207 Ikki's Story IV - Panda's Trick(2-SAT)
- 3359: [Usaco2004 Jan]矩形
- 漫谈Java IO之 Netty与NIO服务器
- Java线程的几种状态
- POJ3683 Priest John's Busiest Day(2-SAT)
- javascript 面向对象(实现继承的几种方式)
- Base64 的 JavaScript 实现 js-base64
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- ffmpeg视频处理神器学习基础笔记
- 5分钟就能做一个Excel动态图表,你确定不学学?(纯gif教学)
- 使用Logstash接收Netflow日志并发送到syslog服务器
- Flask搭建ES搜索引擎(二)
- Java 通过RestHighLevelClient 使用ES的date_histogram 根据年月日做统计
- Debug HashMap
- NSum及股票系列
- 从0开始搭建编程框架——主框架和源码
- C++拾取——使用stl标准库生成等差、等比数列的方法
- C++拾取——使用stl标准库实现排序算法及评测
- 机器人实践课程镜像分享及使用说明(Arduino+ROS1+ROS2+Gazebo+SLAM+...)
- ROS 2 Foxy Fitzroy遇见Ubuntu 20.04
- ROS Noetic Ninjemys遇见Ubuntu 20.04
- Kustomize ConfigMapGenerate自动生成ConfigMap中的坑
- ThreadLocal的使用及原理