学弟教程-Docker-容器间通信

文章目录

  • 一、--link命令
    • 1.1 容器互ping
    • 1.2 跨容器访问
  • 二、网络互联

一、–link命令

1.1 容器互ping

拉取镜像

docker pull busybox

建立名为box_1的容器

docker run -itd --name box_1 busybox /bin/sh

建立名为box_2的容器,并且link到box_1容器

docker run -itd --name box_2 --link box_1 busybox /bin/sh

获取容器的IP地址

docker exec -it <container name> ip a|grep 172

学弟教程-Docker-容器间通信_第1张图片

box_1容器IP : 172.17.0.2 ; box_2 容器IP : 172.17.0.3

使用box_1容器ping box_2容器

学弟教程-Docker-容器间通信_第2张图片

学弟教程-Docker-容器间通信_第3张图片

1.2 跨容器访问

建立一个ubuntu容器,使用–link命令连接建立的mysql容器,实现从ubuntu容器中访问mysql服务

建立MySQL容器

docker run -itd --name mysql_server -e MYSQL_ROOT_PASSWORD=123 mysql:5.7

建立ubuntu容器

docker run -itd --name ubuntu_demo --link mysql_server:db ubuntu

进入ubuntu容器,安装mysql-client

docker exec -it uubuntu_demo bash

apt-get update

apt-get install -y mysql-client

学弟教程-Docker-容器间通信_第4张图片

登录mysql服务

mysql -h db -u root -p123
  • h : 主机地址,db 使用–link命令时为mysql_server设置的别名
  • p : 创建mysql容器时设置的密码

学弟教程-Docker-容器间通信_第5张图片

二、网络互联

查看当前docker 可使用网络

docker network ls

创建一个docker网络my_bridge

docker network create -d bridge my_bridge
  • d : 指定类型

学弟教程-Docker-容器间通信_第6张图片

新建容器box_3,使用my_bridge网络

docker run -itd --name box_3 --network my_bridge  busybox /bin/sh

学弟教程-Docker-容器间通信_第7张图片

可看到box_3容器的IP为172.18.0.2,与之前创建的容器网段不同

再建立容器box_4,使用my_bridge网络

学弟教程-Docker-容器间通信_第8张图片

box_3 ping box_4

学弟教程-Docker-容器间通信_第9张图片

box_4 ping box_3

学弟教程-Docker-容器间通信_第10张图片

学弟教程-Docker-容器间通信_第11张图片


你可能感兴趣的:(Docker,Linux)