Docker 网络

本文介绍 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

设置环境变量,请查看 官方文档

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏测试开发架构之路

Docker学习以及镜像制作流程

32730
来自专栏实用工具入门教程

如何部署 Docker Compose

Docker是一个很好的工具,用于在软件容器中自动部署Linux应用程序,但要充分利用其潜力,应用程序的每个组件都应该在自己的单独容器中运行。对于具有大量组件的...

5.2K30
来自专栏应兆康的专栏

Docker 简介与安装

Github:https://github.com/yingzk/MyDocker 1. Docker 简介 Docker是一个开源(Github地址: htt...

366120
来自专栏吴伟祥

Docker学习——创建镜像(四) 顶

16440
来自专栏喵了个咪的博客空间

Docker使用命令和技巧

17750
来自专栏应兆康的专栏

Docker 简介与安装

Github: https://github.com/yingzk/MyDocker

457230
来自专栏编码前线

使用Dockerfile创建docker镜像

21630
来自专栏云计算教程系列

如何在CentOS 7上安装和使用Docker

Docker是一个应用程序,它使得在容器中运行应用程序进程变得简单易行,就像虚拟机一样,只是更便携,更加资源友好,更依赖于主机操作系统。

86400
来自专栏快乐八哥

运行第一个Docker容器-Docker for Web Developers(1)

1. Docker介绍 Docker由dotCloud公司发起的一个内部项目,后来Docker火了,dotCloud公司改名为Docker了; Docker使用...

227100
来自专栏云计算教程系列

如何在Ubuntu上安装使用Docker

在本教程中,您将安装Docker,并学会使用容器和镜像,将镜像推送到Docker存储库。

12.6K1970

扫码关注云+社区

领取腾讯云代金券