Docker 五、容器间通信--link 命令

机械师 · 2023年07月14日 · 3202 次阅读

使用 link 命令,可以使多个容器互联,在容器之间创建联系,接收容器可以通过容器名访问源容器,而不必使用 IP 地址。

使用 link 命令

  • 启动 s1 容器
    docker run -it --name s1 centos
    我们使用以上命令,启动一个 centos 容器,命名为 s1。
    使用 docker inspect s1 命令,查看容器的 IP。

  • 启动 s2 容器
    docker run -it --name s2 --link s1:s1 centos
    我们使用以上命令,启动一个 centos 容器,命名为 s2。其中--link 参数中,第一个 s1 是要连接的容器的名称,也就是 s1 容器的名称;第二个 s1 是别名。
    使用 docker inspect s2 命令,查看容器的 IP。

  • 通信测试
    我们在 s2 容器内,使用 ping 命令,分别使用 s1 容器的 IP 和容器名,去测试连接容器 s1。实验证明,使用 IP 和容器名都可以通信

    查看 s2 容器内的/etc/hosts 文件内容,我们可以看到,在 hosts 中有 s1 容器的 IP 配置

但是在 s1 容器内,使用 ping 命令,分别使用 s2 容器的 IP 和容器名,去测试连接容器 s2。实验证明,使用 IP 可以通信,使用容器名无法通信

查看 s1 容器内的/etc/hosts 文件内容,我们可以看到,在 hosts 中没有 s2 容器的 IP 配置

未使用 link 命令

启动 a1 和 a2 两个 centos 容器,两容器之间不使用 link 命令连接。而后,我们在 a1 中使用 ping 命令,测试连接 a2 容器的 IP,在 a2 中使用 ping 命令,测试链接 a1 容器的 IP,实验证明,通过 IP,两容器能够彼此通信。最后,我们使用 ping 命令,分别以容器名称去测试两容器的通信,实验证明,通过容器名,两容器无法通信
docker run -it --name a1 centos
docker run -it --name a2 centos

暂无回复。
需要 登录 后方可回复, 如果你还没有账号请点击这里 注册