容器间网络连接

Docker内部网络

  • 在安装Docker时, 会创建一个新的网络接口docker0, 每个docker容器都会在这个接口上分配一个IP地址, docker0是一个虚拟的以太网桥, 用于连接容器以及本地宿主网络
  • docker0会默认使用172.17.x.x作为子网地址, 若被占用, 则会在172.16~172.30这个范围尝试创建子网
  • 重启容器, Docker会改变容器的IP地址

Docker Networking(推荐使用)

  • 允许自定义网络, 容器可以通过该网络跨越不同的宿主机互相通信
  • 对应服务的配置文件中, host=自定义网络名
  • Docker会通过/etc/hosts文件将容器地址保存在本地DNS中, 任何一个容器重启, IP地址会在/etc/hosts文件中自动更新
  • 一个容器可以同时隶属于多个docker网络 ```shell

    创建自定义网络

    docker network create test1

查看网络

docker network inspect test1

查看当前系统所有网络

docker network ls

删除网络

docker network rm test1

容器运行时使用自定义网络

docker run -d —net=test1 —name ubuntu-test1 ubuntu

将已存在容器连接到Docker网络(断开连接为disconnect)

docker network connect test1 ubuntu-test2

  1. <a name="Eodv7"></a>
  2. ### Docker link
  3. - 只能工作在同一台宿主机中
  4. ```shell
  5. docker run -d --name ubuntu-test2 --link ubuntu-test1:test_link ubuntu
  6. --link 创建容器时指定与另一个容器建立连接, :后接连接别名, 可以指定多次--link来连接到多个容器