Docker的網(wǎng)絡(luò)

這節(jié)是對(duì)Docker的網(wǎng)絡(luò)行為進(jìn)行概括宛裕,包括默認(rèn)創(chuàng)建的所有網(wǎng)絡(luò)類型和如何創(chuàng)建自己網(wǎng)絡(luò)躬贡,同時(shí)描述了如何使用網(wǎng)絡(luò)在一臺(tái)主機(jī)或者集群中

默認(rèn)網(wǎng)絡(luò)

當(dāng)你安裝docker后,會(huì)自動(dòng)創(chuàng)建3個(gè)網(wǎng)絡(luò)設(shè)備箭昵,你可以通過(guò)命令行查看他們

$ docker network ls

NETWORK ID          NAME                DRIVER
7fca4eb8c647        bridge              bridge
9f904ee27bf5        none                null
cf03ee007fb4        host                host

這三個(gè)網(wǎng)絡(luò)設(shè)備創(chuàng)建到Docker中。當(dāng)你啟動(dòng)一個(gè)容器的時(shí)候耀态,你可以通過(guò)--network去設(shè)置容器使用的網(wǎng)絡(luò)設(shè)備

在Docker中橋接網(wǎng)絡(luò)(bridge network)是默認(rèn)的,除非你通過(guò)--network=<NETWORK>選項(xiàng)暂雹,docker的守護(hù)進(jìn)程默認(rèn)會(huì)讓容器連接這個(gè)橋接網(wǎng)絡(luò)首装。在宿主機(jī)器中你可以通過(guò)ifconfig命令看到這個(gè)橋接網(wǎng)絡(luò)

$ ifconfig

docker0   Link encap:Ethernet  HWaddr 02:42:47:bc:3a:eb
          inet addr:172.17.0.1  Bcast:0.0.0.0  Mask:255.255.0.0
          inet6 addr: fe80::42:47ff:febc:3aeb/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:9001  Metric:1
          RX packets:17 errors:0 dropped:0 overruns:0 frame:0
          TX packets:8 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0
          RX bytes:1100 (1.1 KB)  TX bytes:648 (648.0 B)

再一個(gè)無(wú)網(wǎng)絡(luò)(none network)容器中,容器是沒(méi)有網(wǎng)絡(luò)設(shè)備的,可以連接這個(gè)容器杭跪,執(zhí)行如下命令:

$ docker attach nonenetcontainer

root@0cb243cd1293:/# cat /etc/hosts
127.0.0.1   localhost
::1 localhost ip6-localhost ip6-loopback
fe00::0 ip6-localnet
ff00::0 ip6-mcastprefix
ff02::1 ip6-allnodes
ff02::2 ip6-allrouters
root@0cb243cd1293:/# ifconfig
lo        Link encap:Local Loopback
          inet addr:127.0.0.1  Mask:255.0.0.0
          inet6 addr: ::1/128 Scope:Host
          UP LOOPBACK RUNNING  MTU:65536  Metric:1
          RX packets:0 errors:0 dropped:0 overruns:0 frame:0
          TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0
          RX bytes:0 (0.0 B)  TX bytes:0 (0.0 B)

root@0cb243cd1293:/#

注意:你可以按ctrl-p ctrl-q 退出容器

在一個(gè)主機(jī)網(wǎng)絡(luò)(host network)容器中仙逻,主機(jī)和容器是沒(méi)有隔離的。例如涧尿,你在容器中啟動(dòng)一個(gè)服務(wù)監(jiān)聽(tīng)80端口系奉,那么在宿主機(jī)中80端口是可以訪問(wèn)的。

無(wú)網(wǎng)絡(luò)(none network)和主機(jī)網(wǎng)絡(luò)(host network)在Docker中是不可以直接配置的姑廉,但是你可以配置默認(rèn)橋接網(wǎng)絡(luò)像配置自定義橋接網(wǎng)絡(luò)一樣缺亮。

默認(rèn)的橋接網(wǎng)絡(luò)

這個(gè)默認(rèn)的橋接網(wǎng)絡(luò)(bridge network)會(huì)出現(xiàn)在所有Docker中,如果你沒(méi)有特殊設(shè)置網(wǎng)絡(luò)桥言,新的docker容器都會(huì)連接到這個(gè)橋接網(wǎng)絡(luò)(bridge network)

docker的inspect命令返回下面的信息:

$ docker network inspect bridge

[
   {
       "Name": "bridge",
       "Id": "f7ab26d71dbd6f557852c7156ae0574bbf62c42f539b50c8ebde0f728a253b6f",
       "Scope": "local",
       "Driver": "bridge",
       "IPAM": {
           "Driver": "default",
           "Config": [
               {
                   "Subnet": "172.17.0.1/16",
                   "Gateway": "172.17.0.1"
               }
           ]
       },
       "Containers": {},
       "Options": {
           "com.docker.network.bridge.default_bridge": "true",
           "com.docker.network.bridge.enable_icc": "true",
           "com.docker.network.bridge.enable_ip_masquerade": "true",
           "com.docker.network.bridge.host_binding_ipv4": "0.0.0.0",
           "com.docker.network.bridge.name": "docker0",
           "com.docker.network.driver.mtu": "9001"
       },
       "Labels": {}
   }
]

運(yùn)行下面兩條命令啟動(dòng)兩個(gè)橋接網(wǎng)絡(luò)(bridge network)的busybox 容器

$ docker run -itd --name=container1 busybox

3386a527aa08b37ea9232cbcace2d2458d49f44bb05a6b775fba7ddd40d8f92c

$ docker run -itd --name=container2 busybox

94447ca479852d29aeddca75c28f7104df3c3196d7b6d83061879e339946805c

在兩個(gè)容器啟動(dòng)后再次運(yùn)行inspect命令萌踱,會(huì)看到兩個(gè)busybox的容器連接到網(wǎng)絡(luò)上。他們的ip地址會(huì)在宿主機(jī)器中是不同的

$ docker network inspect bridge

{[
    {
        "Name": "bridge",
        "Id": "f7ab26d71dbd6f557852c7156ae0574bbf62c42f539b50c8ebde0f728a253b6f",
        "Scope": "local",
        "Driver": "bridge",
        "IPAM": {
            "Driver": "default",
            "Config": [
                {
                    "Subnet": "172.17.0.1/16",
                    "Gateway": "172.17.0.1"
                }
            ]
        },
        "Containers": {
            "3386a527aa08b37ea9232cbcace2d2458d49f44bb05a6b775fba7ddd40d8f92c": {
                "EndpointID": "647c12443e91faf0fd508b6edfe59c30b642abb60dfab890b4bdccee38750bc1",
                "MacAddress": "02:42:ac:11:00:02",
                "IPv4Address": "172.17.0.2/16",
                "IPv6Address": ""
            },
            "94447ca479852d29aeddca75c28f7104df3c3196d7b6d83061879e339946805c": {
                "EndpointID": "b047d090f446ac49747d3c37d63e4307be745876db7f0ceef7b311cbba615f48",
                "MacAddress": "02:42:ac:11:00:03",
                "IPv4Address": "172.17.0.3/16",
                "IPv6Address": ""
            }
        },
        "Options": {
            "com.docker.network.bridge.default_bridge": "true",
            "com.docker.network.bridge.enable_icc": "true",
            "com.docker.network.bridge.enable_ip_masquerade": "true",
            "com.docker.network.bridge.host_binding_ipv4": "0.0.0.0",
            "com.docker.network.bridge.name": "docker0",
            "com.docker.network.driver.mtu": "9001"
        },
        "Labels": {}
    }
]

連接到默認(rèn)橋接網(wǎng)絡(luò)容器可以通過(guò)ip地址彼此通信号阿。docker在默認(rèn)橋接網(wǎng)絡(luò)中不支持自動(dòng)服務(wù)發(fā)現(xiàn)( automatic service discovery)并鸵,如果你想讓容器通過(guò)容器名稱自動(dòng)解析ip,你應(yīng)該創(chuàng)建自定義網(wǎng)絡(luò)倦西∧苷妫可以通過(guò)--link參數(shù)讓兩個(gè)容器連接起來(lái),但是這個(gè)大多數(shù)時(shí)候是不推薦的扰柠。

你可以連接到一個(gè)運(yùn)行的容器中,看到容器的網(wǎng)絡(luò)狀態(tài)。連接后是root權(quán)限疼约,所以可以看見(jiàn)命令行是#開頭的

$ docker attach container1

root@0cb243cd1293:/# ifconfig

eth0      Link encap:Ethernet  HWaddr 02:42:AC:11:00:02
          inet addr:172.17.0.2  Bcast:0.0.0.0  Mask:255.255.0.0
          inet6 addr: fe80::42:acff:fe11:2/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:9001  Metric:1
          RX packets:16 errors:0 dropped:0 overruns:0 frame:0
          TX packets:8 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0
          RX bytes:1296 (1.2 KiB)  TX bytes:648 (648.0 B)

lo        Link encap:Local Loopback
          inet addr:127.0.0.1  Mask:255.0.0.0
          inet6 addr: ::1/128 Scope:Host
          UP LOOPBACK RUNNING  MTU:65536  Metric:1
          RX packets:0 errors:0 dropped:0 overruns:0 frame:0
          TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0
          RX bytes:0 (0.0 B)  TX bytes:0 (0.0 B)

在容器中卤档,通過(guò)ping命令測(cè)試是否可以連接到其他容器

root@0cb243cd1293:/# ping -w3 172.17.0.3

PING 172.17.0.3 (172.17.0.3): 56 data bytes
64 bytes from 172.17.0.3: seq=0 ttl=64 time=0.096 ms
64 bytes from 172.17.0.3: seq=1 ttl=64 time=0.080 ms
64 bytes from 172.17.0.3: seq=2 ttl=64 time=0.074 ms

--- 172.17.0.3 ping statistics ---
3 packets transmitted, 3 packets received, 0% packet loss
round-trip min/avg/max = 0.074/0.083/0.096 ms

在容器中通過(guò)cat命令查看/etc/hosts文件〕贪可以看到容器中域名和ip地址的對(duì)應(yīng)關(guān)系

root@0cb243cd1293:/# cat /etc/hosts

172.17.0.2  3386a527aa08
127.0.0.1   localhost
::1 localhost ip6-localhost ip6-loopback
fe00::0 ip6-localnet
ff00::0 ip6-mcastprefix
ff02::1 ip6-allnodes
ff02::2 ip6-allrouters

通過(guò)CTRL-p CTRL-q可以脫離容器的連接劝枣,你可以重復(fù)上述命令在另一個(gè)容器中.

通過(guò)--link參數(shù)可以配置hosts中的ip和容器對(duì)應(yīng)關(guān)系,在默認(rèn)的橋接網(wǎng)絡(luò)中织鲸,但是這個(gè)是不推薦的舔腾。如果可能你應(yīng)該用自定義橋接網(wǎng)絡(luò)替換默認(rèn)橋接網(wǎng)絡(luò)。

用戶自定義網(wǎng)絡(luò)(User-defined networks)

用戶自定義橋接網(wǎng)絡(luò)是被推薦的搂擦,用來(lái)控制哪些容器可以連接彼此稳诚,同時(shí)支持自動(dòng)dns解析容器名稱和ip地址的對(duì)應(yīng)關(guān)系。Docker提供默認(rèn)的網(wǎng)絡(luò)驅(qū)動(dòng)去創(chuàng)建自定義網(wǎng)絡(luò)瀑踢。你可以創(chuàng)建一個(gè)新的自定義橋接網(wǎng)絡(luò)扳还,覆蓋默認(rèn)網(wǎng)絡(luò)或者M(jìn)ACVLAN(mac虛擬網(wǎng)絡(luò))才避。你同時(shí)可以創(chuàng)建一個(gè)網(wǎng)絡(luò)插件或者完全定制化和控制的遠(yuǎn)程網(wǎng)絡(luò)。

You can create as many networks as you need, and you can connect a container to zero or more of these networks at any given time. In addition, you can connect and disconnect running containers from networks without restarting the container. When a container is connected to multiple networks, its external connectivity is provided via the first non-internal network, in lexical order.
如果需要你可以創(chuàng)建任意多的自定義網(wǎng)絡(luò)氨距,同時(shí)你可以在任意時(shí)間使一個(gè)容器同時(shí)連接零或多個(gè)自定義網(wǎng)絡(luò)中桑逝,同時(shí)你可以連接或者斷開一個(gè)容器的網(wǎng)絡(luò),而不用重啟容器俏让。當(dāng)一個(gè)容器鏈接到多個(gè)網(wǎng)絡(luò)中的時(shí)候楞遏,他的外部網(wǎng)絡(luò)訪問(wèn)時(shí)通過(guò)一個(gè)非內(nèi)部網(wǎng)絡(luò)提供。

下面一些章節(jié)描述了Docker內(nèi)置的所有網(wǎng)絡(luò)驅(qū)動(dòng)細(xì)節(jié)

橋接網(wǎng)絡(luò)

橋接網(wǎng)絡(luò)是docker中做常用的首昔。自定義橋接網(wǎng)絡(luò)幾乎和默認(rèn)橋接網(wǎng)絡(luò)一致橱健,只是有一些新的功能和移除了一些老的特性。下面的例子中創(chuàng)建了一些自定義橋接網(wǎng)絡(luò)和容器應(yīng)用

$ docker network create --driver bridge isolated_nw

1196a4c5af43a21ae38ef34515b6af19236a3fc48122cf585e3f3054d509679b

$ docker network inspect isolated_nw

[
    {
        "Name": "isolated_nw",
        "Id": "1196a4c5af43a21ae38ef34515b6af19236a3fc48122cf585e3f3054d509679b",
        "Scope": "local",
        "Driver": "bridge",
        "IPAM": {
            "Driver": "default",
            "Config": [
                {
                    "Subnet": "172.21.0.0/16",
                    "Gateway": "172.21.0.1/16"
                }
            ]
        },
        "Containers": {},
        "Options": {},
        "Labels": {}
    }
]

$ docker network ls

NETWORK ID          NAME                DRIVER
9f904ee27bf5        none                null
cf03ee007fb4        host                host
7fca4eb8c647        bridge              bridge
c5ee82f76de3        isolated_nw         bridge

當(dāng)你創(chuàng)建了網(wǎng)絡(luò)沙廉,通過(guò)--network=<NETWORK>參數(shù)拘荡,你可以讓容器應(yīng)用這個(gè)網(wǎng)絡(luò)

$ docker run --network=isolated_nw -itd --name=container3 busybox

8c1a0a5be480921d669a073393ade66a3fc49933f08bcc5515b37b8144f6d47c

$ docker network inspect isolated_nw
[
    {
        "Name": "isolated_nw",
        "Id": "1196a4c5af43a21ae38ef34515b6af19236a3fc48122cf585e3f3054d509679b",
        "Scope": "local",
        "Driver": "bridge",
        "IPAM": {
            "Driver": "default",
            "Config": [
                {}
            ]
        },
        "Containers": {
            "8c1a0a5be480921d669a073393ade66a3fc49933f08bcc5515b37b8144f6d47c": {
                "EndpointID": "93b2db4a9b9a997beb912d28bcfc117f7b0eb924ff91d48cfa251d473e6a9b08",
                "MacAddress": "02:42:ac:15:00:02",
                "IPv4Address": "172.21.0.2/16",
                "IPv6Address": ""
            }
        },
        "Options": {},
        "Labels": {}
    }
]

在同一臺(tái)Docker宿主機(jī)中和這個(gè)網(wǎng)絡(luò)中的所有容器,可以快速的彼此通信撬陵。但是在這個(gè)網(wǎng)絡(luò)外的容器是不可以訪問(wèn)的珊皿。


An isolated network

在自定義橋接網(wǎng)絡(luò)中 link是不允許的。在這個(gè)自定義橋接網(wǎng)絡(luò)中你可以導(dǎo)出和發(fā)布這些容器的端口巨税,你這樣可以在自定義橋接網(wǎng)絡(luò)外訪問(wèn)這些端口蟋定。


Bridge network

如果你想創(chuàng)建一個(gè)小型的網(wǎng)絡(luò)在單個(gè)宿主機(jī)上,自定義橋接網(wǎng)絡(luò)是很有用的草添。如果想創(chuàng)建一個(gè)大型網(wǎng)絡(luò)結(jié)構(gòu)驶兜,那么需要通過(guò)創(chuàng)建覆蓋網(wǎng)絡(luò)(overlay network)。

docker_gwbridge網(wǎng)關(guān)橋接網(wǎng)絡(luò)

docker_gwbridge網(wǎng)關(guān)橋接網(wǎng)絡(luò)是一個(gè)本地橋接網(wǎng)絡(luò)远寸,由docker在兩個(gè)不同的主機(jī)環(huán)境中自動(dòng)創(chuàng)建的

  • 當(dāng)你初始化或者叫加入一個(gè)集群抄淑,Docker會(huì)創(chuàng)建一個(gè)docker_gwbridge網(wǎng)絡(luò),用來(lái)集群中的不同宿主機(jī)節(jié)點(diǎn)的通信
  • 當(dāng)docker容器的網(wǎng)絡(luò)中沒(méi)有一個(gè)提供外部鏈接時(shí),Docker鏈接這些容器到docker_gwbridge網(wǎng)絡(luò)用來(lái)和外部容器通信驰后,這樣這些容器就可以鏈接到外部網(wǎng)絡(luò)或者其它的集群節(jié)點(diǎn)肆资。

你可以創(chuàng)建一個(gè)自定義配置的docker_gwbridge網(wǎng)絡(luò),下面的例子展示如何創(chuàng)建一個(gè)自定義配置的docker_gwbridge網(wǎng)絡(luò)

$ docker network create --subnet 172.30.0.0/16 \
                        --opt com.docker.network.bridge.name=docker_gwbridge \
            --opt com.docker.network.bridge.enable_icc=false \
            docker_gwbridge

當(dāng)你使用覆蓋網(wǎng)絡(luò)時(shí)灶芝,docker_gwbridge 網(wǎng)關(guān)橋接網(wǎng)絡(luò)總會(huì)出現(xiàn)郑原。

覆蓋網(wǎng)絡(luò)在集群模式中

在集群模式中,不需要key-value緩存夜涕,你可以創(chuàng)建一個(gè)覆蓋網(wǎng)絡(luò)在一個(gè)集群管理節(jié)點(diǎn)犯犁。在集群中所有節(jié)點(diǎn)都可以訪問(wèn)覆蓋網(wǎng)絡(luò)。當(dāng)你在覆蓋網(wǎng)絡(luò)中創(chuàng)建一個(gè)服務(wù)女器,管理節(jié)點(diǎn)可以自動(dòng)擴(kuò)展覆蓋網(wǎng)絡(luò)到其它集群節(jié)點(diǎn)酸役。

學(xué)習(xí)更多關(guān)于docker集群模式可以看 集群模式預(yù)覽.
下面是如何創(chuàng)建一個(gè)覆蓋網(wǎng)絡(luò)并用它作為集群服務(wù)的網(wǎng)絡(luò)

$ docker network create \
  --driver overlay \
  --subnet 10.0.9.0/24 \
  my-multi-host-network

400g6bwzd68jizzdx5pgyoe95

$ docker service create --replicas 2 --network my-multi-host-network --name my-web nginx

716thylsndqma81j6kkkb5aus

只有集群服務(wù)可以連接覆蓋網(wǎng)絡(luò),單獨(dú)的容器是不可以的。更多關(guān)于集群的信息簇捍,請(qǐng)查看 Docker集群模式和覆蓋網(wǎng)絡(luò)的安全在覆蓋網(wǎng)絡(luò)中連接容器.

覆蓋網(wǎng)絡(luò)在非集群模式中

如果你的Docker機(jī)器不是用在集群模式中只壳,那么覆蓋網(wǎng)絡(luò)需要一個(gè)key-value緩存服務(wù)。支持的key-value緩存服務(wù)包括Consul, Etcd,和 ZooKeeper (Distributed store).在創(chuàng)建這個(gè)覆蓋網(wǎng)絡(luò)之前暑塑,你必須安裝和配置你的key-value緩存服務(wù)吼句。在宿主機(jī)器必須可以上網(wǎng),而且key-value緩存服務(wù)是可以訪問(wèn)的事格。

注意: Docker在集群模式中是不需要key-value緩存服務(wù)的

不在集群模式下使用覆蓋網(wǎng)絡(luò)是不推薦的惕艳。但是在單宿主機(jī)中和Docker開發(fā)者這種模式可能很有用。在未來(lái)它很可能被刪掉驹愚。如果你需要在這種模式中啟動(dòng)远搪,可以查看 介紹.

自定義網(wǎng)絡(luò)插件

如果你的需求上述網(wǎng)絡(luò)都不能滿足,那么你可以根據(jù)docker的插件基礎(chǔ)開發(fā)自己的網(wǎng)絡(luò)插件逢捺。這個(gè)插件將會(huì)單獨(dú)運(yùn)行在一個(gè)進(jìn)程里谁鳍。用網(wǎng)絡(luò)插件是一個(gè)高級(jí)的課題。

網(wǎng)絡(luò)插件跟其他docker插件有一樣的規(guī)則和約束劫瞳。所有的插件都用同一套API倘潜,有同樣的生命周期,包括安裝志于,啟動(dòng)涮因,停止,和激活伺绽。

一旦你創(chuàng)建并安裝了一個(gè)自定義網(wǎng)絡(luò)插件养泡,你可以通過(guò)driver參數(shù)指定通過(guò)插件創(chuàng)建你需要的網(wǎng)絡(luò)。

$ docker network create --driver weave mynet

你可以檢查一個(gè)網(wǎng)絡(luò)奈应,容器跟網(wǎng)絡(luò)的鏈接和斷開鏈接澜掩,或者移除他。網(wǎng)絡(luò)插件可能有自己的特殊依賴钥组,檢查插件的文檔獲取信息输硝。寫網(wǎng)絡(luò)插件的更多信息打開鏈接 docker擴(kuò)展寫一個(gè)網(wǎng)絡(luò)插件.

內(nèi)置dns服務(wù)

docker守護(hù)進(jìn)程會(huì)運(yùn)行一個(gè)內(nèi)置的dns服務(wù),用來(lái)提供在同一個(gè)網(wǎng)絡(luò)下容器之間可以通過(guò)域名(容器名稱)解析彼此程梦,即把容器名解析成ip。如果內(nèi)置的dns服務(wù)器不能解析橘荠,則會(huì)交給外部主機(jī)的dns解析屿附。當(dāng)容器創(chuàng)建的時(shí)候,內(nèi)置的dns服務(wù)的ip是127.0.0.11 容器域名會(huì)列在resolv.conf文件里哥童。獲取更多關(guān)于內(nèi)置dns服務(wù)的信息挺份,看 內(nèi)置dns服務(wù)在自定義網(wǎng)絡(luò)的使用

暴露和發(fā)布端口

docker的網(wǎng)絡(luò)環(huán)境中,有兩種方式開放端口,發(fā)布端口和暴露端口贮懈。在默認(rèn)橋接網(wǎng)絡(luò)和自定義網(wǎng)絡(luò)都可以匀泊。

  • 暴露端口通過(guò)EXPOSE關(guān)鍵字在Dockerfile或者通過(guò)docker run --expose參數(shù)
  • 發(fā)布端口通過(guò)PUBLISH關(guān)鍵字在Dockerfile中优训,或者通過(guò)docker run的--publish參數(shù)。docker會(huì)根據(jù)這些參數(shù)或者關(guān)鍵字打開端口給網(wǎng)絡(luò)接口各聘。當(dāng)發(fā)布端口后揣非,宿主機(jī)會(huì)有一個(gè)大于30000的端口與之對(duì)應(yīng),除非你在運(yùn)行時(shí)指定宿主機(jī)哪個(gè)端口與之對(duì)應(yīng)躲因。 你不能在Dockerfile中指定對(duì)應(yīng)端口早敬,因?yàn)椴荒艽_定宿主機(jī)那個(gè)端口是否可用。

下面是發(fā)布80端口的例子大脉,會(huì)有隨機(jī)的一個(gè)大于30000的端口與之對(duì)應(yīng)

$ docker run -it -p 80 nginx
$ docker ps
64879472feea        nginx               "nginx -g 'daemon ..."   43 hours ago
       Up About a minute   443/tcp, 0.0.0.0:32768->80/tcp   blissful_mclean

這個(gè)例子是指定80端口與8080端口對(duì)應(yīng)搞监,如果8080不可用,會(huì)失敗镰矿。

$ docker run -it -p 80:8080 nginx
$ docker ps
b9788c7adca3        nginx               "nginx -g 'daemon ..."   43 hours ago
        Up 3 seconds        80/tcp, 443/tcp, 0.0.0.0:80->8080/tcp   goofy_brahmagupta

鏈接Links

在Docker提供自定義網(wǎng)絡(luò)前琐驴,你只能通過(guò)--link功能讓容器間網(wǎng)通過(guò)容器名稱解析ip地址,也讓兩個(gè)容器可以互相通信。現(xiàn)在你應(yīng)該避免使用--link標(biāo)記秤标。

當(dāng)你創(chuàng)建links時(shí)绝淡,它和自定義橋接網(wǎng)絡(luò)是不同的。更多信息查看 link功能在默認(rèn)橋接網(wǎng)絡(luò)的傳統(tǒng)鏈接 和 用戶自定義橋接網(wǎng)絡(luò)容器通信自定義橋接網(wǎng)絡(luò)中容器通信

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末抛杨,一起剝皮案震驚了整個(gè)濱河市够委,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌怖现,老刑警劉巖茁帽,帶你破解...
    沈念sama閱讀 218,755評(píng)論 6 507
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異屈嗤,居然都是意外死亡潘拨,警方通過(guò)查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,305評(píng)論 3 395
  • 文/潘曉璐 我一進(jìn)店門饶号,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)铁追,“玉大人,你說(shuō)我怎么就攤上這事茫船±攀” “怎么了?”我有些...
    開封第一講書人閱讀 165,138評(píng)論 0 355
  • 文/不壞的土叔 我叫張陵算谈,是天一觀的道長(zhǎng)涩禀。 經(jīng)常有香客問(wèn)我,道長(zhǎng)然眼,這世上最難降的妖魔是什么艾船? 我笑而不...
    開封第一講書人閱讀 58,791評(píng)論 1 295
  • 正文 為了忘掉前任,我火速辦了婚禮,結(jié)果婚禮上屿岂,老公的妹妹穿的比我還像新娘践宴。我一直安慰自己,他們只是感情好爷怀,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,794評(píng)論 6 392
  • 文/花漫 我一把揭開白布阻肩。 她就那樣靜靜地躺著,像睡著了一般霉撵。 火紅的嫁衣襯著肌膚如雪磺浙。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,631評(píng)論 1 305
  • 那天徒坡,我揣著相機(jī)與錄音撕氧,去河邊找鬼。 笑死喇完,一個(gè)胖子當(dāng)著我的面吹牛伦泥,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播锦溪,決...
    沈念sama閱讀 40,362評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼不脯,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來(lái)了刻诊?” 一聲冷哼從身側(cè)響起防楷,我...
    開封第一講書人閱讀 39,264評(píng)論 0 276
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎则涯,沒(méi)想到半個(gè)月后复局,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,724評(píng)論 1 315
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡粟判,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,900評(píng)論 3 336
  • 正文 我和宋清朗相戀三年亿昏,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片档礁。...
    茶點(diǎn)故事閱讀 40,040評(píng)論 1 350
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡角钩,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出呻澜,到底是詐尸還是另有隱情递礼,我是刑警寧澤,帶...
    沈念sama閱讀 35,742評(píng)論 5 346
  • 正文 年R本政府宣布羹幸,位于F島的核電站宰衙,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏睹欲。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,364評(píng)論 3 330
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望窘疮。 院中可真熱鬧袋哼,春花似錦、人聲如沸闸衫。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,944評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)蔚出。三九已至弟翘,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間骄酗,已是汗流浹背稀余。 一陣腳步聲響...
    開封第一講書人閱讀 33,060評(píng)論 1 270
  • 我被黑心中介騙來(lái)泰國(guó)打工, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留诬像,地道東北人蔽挠。 一個(gè)月前我還...
    沈念sama閱讀 48,247評(píng)論 3 371
  • 正文 我出身青樓锯玛,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親师骗。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,979評(píng)論 2 355

推薦閱讀更多精彩內(nèi)容