关于Docker容器互联的初步实践

栏目: 编程工具 · 发布时间: 5年前

内容简介:一、Docker容器之间的互联Docker现在已经成为一种轻量级的虚拟化方案,在同一宿主机下,所有的容器都可以通过网桥进行互联。如果之前有docker的使用经验,可能已经习惯了使用–link来对容器进行互联。随着docker的逐步完善,强烈推荐大家使用网桥(bridge)来对容器进行互联。二、实践过程

一、 Docker 容器之间的互联

Docker现在已经成为一种轻量级的虚拟化方案,在同一宿主机下,所有的容器都可以通过网桥进行互联。如果之前有docker的使用经验,可能已经习惯了使用–link来对容器进行互联。随着docker的逐步完善,强烈推荐大家使用网桥(bridge)来对容器进行互联。

二、实践过程

1.创建一个网络my-net:

[root@linuxidc ~]# docker network create my-net

71b42506de62797889372ea4a5270f905f79a19cf80e308119c02e529b89c94e

[root@linuxidc ~]# docker network ls

NETWORK ID          NAME                DRIVER              SCOPE

3dec5cbb852e        bridge              bridge              local

6dd6dcfc2f26        host                host                local

71b42506de62        my-net              bridge              local

4c142a02cd6b        none                null                local

2.在创建docker容器的时候就指定桥接网络:

[root@linuxidc docker]# docker create -it --name d1 --network my-net -p 8080:80Ubuntu:14.04

4776b65db566f370cad5da3a9354a12c7e4f9badab53647b7e30e1e8f343ae3d

[root@linuxidc docker]# docker start d1

d1

在该命令中,docker create也可以用docker container create,二者等价。–name指定了容器的名称,–network指定了该容器的网络名称,桥接形式默认为网桥,-p或–publish指定了映射的端口。如果在这一步指定的网络没有预先被创建,那么这个容器时无法正常启动的。此时,可以为该容器创建网络后再次启动容器即可。

3.还可以在运行一个docker容器的时候指定一个已经创建好的网络:

[root@linuxidc docker]# docker run -it --name d2 --network my-net --publish 8081:80 ubuntu:14.04 /bin/bash

root@07fd516911d0:/# ping d1

PING d1 (172.18.0.2) 56(84) bytes of data.

64 bytes from d1.my-net (172.18.0.2): icmp_seq=1 ttl=64 time=0.115 ms

root@4776b65db566:/# ping d2

PING d2 (172.18.0.3) 56(84) bytes of data.

64 bytes from d2.my-net (172.18.0.3): icmp_seq=1 ttl=64 time=0.062 ms

通过容器名称即可ping通在同一网桥的容器。也可以直接ping其IP。

三、总结

1.在docker安装完成之后,docker容器有三个网络,如下:

[root@linuxidc ~]# docker network ls

NETWORK ID          NAME                DRIVER              SCOPE

3dec5cbb852e        bridge              bridge              local

6dd6dcfc2f26        host                host                local

4c142a02cd6b        none                null                local

2.在同一网络中的所有容器网络都是互通的。

3.容器的网络配置中的dns配置可以在主机的/etc/docker/daemon.json文件进行配置,参照官方格式:

{

"bip": "192.168.1.5/24",

"fixed-cidr": "192.168.1.5/25",

"fixed-cidr-v6": "2001:db8::/64",

"mtu": 1500,

"default-gateway": "10.20.1.1",

"default-gateway-v6": "2001:db8:abcd::89",

"dns": ["10.20.1.2","10.20.1.3"]

}

根据实际情况进行配置即可。

Linux公社的RSS地址https://www.linuxidc.com/rssFeed.aspx

本文永久更新链接地址: https://www.linuxidc.com/Linux/2018-10/154961.htm


以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,也希望大家多多支持 码农网

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

The Haskell School of Expression

The Haskell School of Expression

Paul Hudak / Cambridge University Press / 2000-01 / USD 95.00

Functional programming is a style of programming that emphasizes the use of functions (in contrast to object-oriented programming, which emphasizes the use of objects). It has become popular in recen......一起来看看 《The Haskell School of Expression》 这本书的介绍吧!

CSS 压缩/解压工具
CSS 压缩/解压工具

在线压缩/解压 CSS 代码

HTML 编码/解码
HTML 编码/解码

HTML 编码/解码

XML、JSON 在线转换
XML、JSON 在线转换

在线XML、JSON转换工具