docker学习整理五 容器间通信

docker学习整理五 容器间通信

通过之前的几篇,我们已经可以拉起来一个mysql容器和一个centos容器,那么他们之间怎么通信呢?

容器间连接

  • 拉起两个容器,mysql,centos,为了便于区分分别命名与镜像一致。
  • 查看mysql的ipdocker inspect mysql可以看到IPAddress项,这就是这个容器的ip地址。
  • 进入centos容器,安装mysql客户端```yum install mysql``
  • 尝试在centos中连接mysqlmysql -h这是刚才查的ip地址 -uroot -p这是密码
  • 此时可能会报2059错误,若成功请忽略。错误说明客户端不支持新的加密方式,通过以下方式处理:
    • 从宿主进入mysqldocker exec -it mysql mysql -uroot -p密码
    • use mysql;
    • alter user 'root'@'%' identified with mysql_native_password by '数据库密码';
    • flush privileges;
  • 重新登陆成功。

docker的通信方式

桥接模式bridge

  • 这是docker的默认通信方式
  • 启docker时,宿主会创建docker0网桥,可以理解为一个交换机。
  • 之后每次拉起一个容器,无特殊说明,均连接到此交换机上。
  • 启动一个容器,会在宿主创建虚拟网卡veth,而在容器中同时生成对应的eth0
  • 网关就是docker0的地址。
自定义网络
  • docker network create 网络名
  • docker network ls可以看到你自己新建的网络
  • 当拉起容器时候,通过--network=网络名就可以把容器连接到这个网络,多个连接到这个网络的容器之间就可以进行通信。
link方式
  • docker run -it --link 已存在容器名:起个别名 --name centos2 centos bash
  • 这样,在centos2中就可以通过ping容器名测试是否能够访问:ping 起的别名
  • 这是旧版本常用的连接方式,如docker compose等都是使用该方式,docker会逐渐淘汰该方式。

host

none

overlay

(待续)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值