前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Docker 网络

Docker 网络

作者头像
康怀帅
发布2018-02-28 16:09:26
9210
发布2018-02-28 16:09:26
举报
文章被收录于专栏:康怀帅的专栏康怀帅的专栏

本文介绍 Docker 网络。

官方文档:https://docs.docker.com/engine/userguide/networking/

网络类型

bridge

桥接类型 是创建容器时默认连接的网络类型,用的比较多,这里不再详细介绍。

host

容器将不会虚拟出自己的网卡,配置自己的 IP 等,而是使用宿主机的 IP 和端口,容器可以和宿主机一样,使用宿主机的 eth0 实现和外界的通信。换言之容器的 IP 地址即为宿主机 eth0 的 IP 地址。

代码语言:javascript
复制
$ docker run -dit --network host nginx:alpine

现在访问 主机 IP 即可看到 nginx 默认页面。

none

这样创建出来的容器完全没有网络。

代码语言:javascript
复制
$ 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

通过此参数启动的容器,拥有与被连接的容器相同的网络。

创建网络

代码语言:javascript
复制
$ docker network create -d bridge [ --subnet 172.25.0.0/16 ] NETWORK_NAME

-d 指定网络驱动,默认为 bridge,在 Swarm mode 中也可以创建 overlay 类型的网络。

查看网络

代码语言:javascript
复制
$ docker network ls

NETWORK ID          NAME                DRIVER              SCOPE
369f1b30c236        bridge              bridge              local
991412261a72        host                host                local
269fb25e6d2d        none                null                local

查看网络详情

代码语言:javascript
复制
$ docker network inspect bridge

容器连接网络

可以固定容器 IP

代码语言:javascript
复制
$ docker run --network=NETWORK_NAME [ --ip=172.25.3.3 ] ...

$ docker run --network="container:id or name"

$ docker network connect NETWORK_NAME CONTAINER_NAME

断开网络

代码语言:javascript
复制
$ docker network disconnect NETWORK_NAME CONTAINER_NAME

移除网络

代码语言:javascript
复制
$ docker network rm NETWORK_NAME

$ docker network prune

Swarm mode

代码语言:javascript
复制
$ 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

代码语言:javascript
复制
{
  "proxies":
  {
    "default":
    {
      "httpProxy": "http://127.0.0.1:3001",
      "noProxy": "*.test.example.com,.example2.com"
    }
  }
}

other

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

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2017-10-14,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 网络类型
    • bridge
      • host
        • none
          • container:name or id
          • 创建网络
          • 查看网络
            • 查看网络详情
            • 容器连接网络
            • 断开网络
            • 移除网络
            • Swarm mode
              • Overlay network
                • ingress network
                  • docker_gwbridge
                  • 设置代理
                    • 17.07+
                      • other
                      相关产品与服务
                      容器镜像服务
                      容器镜像服务(Tencent Container Registry,TCR)为您提供安全独享、高性能的容器镜像托管分发服务。您可同时在全球多个地域创建独享实例,以实现容器镜像的就近拉取,降低拉取时间,节约带宽成本。TCR 提供细颗粒度的权限管理及访问控制,保障您的数据安全。
                      领券
                      问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档