docker容器之间互联

 

1.什么是docker容器之间互联

  • 以前直接在服务器部署的时候,通过服务器地址直接进行注册,比较方便。
  • 但是放到docker容器中后,每个子服务都是一个容器,那么就涉及到了容器与容器之间的互相访问!
  • 启动的两个容器之间本就可以互通,但是容器过多就会导致容器ip混乱。这时我们启动两个容器,让后者启动的容器关联第一个容器来实现互联。

 

2.docker容器互联简单例子

#启动一个名字叫kod的容器
[root@docker01 ~]# docker run -d --name kod kod:v9
9ad919342252b9ab25fed90539e33406880c24bce67a7919cb26af709a6ad668
[root@docker01 ~]# docker ps -a -l
CONTAINER ID        IMAGE               COMMAND                CREATED             STATUS              PORTS               NAMES
9ad919342252        kod:v9              "/bin/bash /init.sh"   11 seconds ago      Up 10 seconds                           kod


#link第一个叫kod的容器,并且起一个别名为web01
[root@docker01 ~]# docker run -it --link kod:web01 centos:7

#检测是否互联
[root@74a3024714ab /]# ping web01
PING web01 (172.17.0.2) 56(84) bytes of data.
64 bytes from web01 (172.17.0.2): icmp_seq=1 ttl=64 time=0.078 ms
64 bytes from web01 (172.17.0.2): icmp_seq=2 ttl=64 time=0.048 ms
64 bytes from web01 (172.17.0.2): icmp_seq=3 ttl=64 time=0.107 ms
^C
--- web01 ping statistics ---
3 packets transmitted, 3 received, 0% packet loss, time 1999ms
rtt min/avg/max/mdev = 0.048/0.077/0.107/0.026 ms
[root@74a3024714ab /]# 


#由hosts文件可见做了web01的解析
[root@74a3024714ab /]# cat /etc/hosts
127.0.0.1	localhost
::1	localhost ip6-localhost ip6-loopback
fe00::0	ip6-localnet
ff00::0	ip6-mcastprefix
ff02::1	ip6-allnodes
ff02::2	ip6-allrouters
172.17.0.2	web01 9ad919342252 kod
172.17.0.3	74a3024714ab


PS:
被link的容器必须是启动的
此例为单向解析,也就是说A容器只能被B容器link,A容器不需要访问其他容器

 

3.zabbix服务dcoker容器互联例子

docker容器之间互联

#将docker包导入为镜像
[root@docker01 zabbix]# for n in `ls *.tar.gz`; do docker load -i $n;done
#启动数据库容器并传递变量
docker run --name mysql-server -t \
-e MYSQL_DATABASE="zabbix" \
-e MYSQL_USER="zabbix" \
-e MYSQL_PASSWORD="zabbix_pwd" \
-e MYSQL_ROOT_PASSWORD="root_pwd" \
-d mysql:5.7 \
--character-set-server=utf8 --collation-server=utf8_bin

#启动监控java业务所需容器
docker run --name zabbix-java-gateway -t \
-d zabbix/zabbix-java-gateway:latest

#启动zabbix收集客户端信息中间件容器(关联数据库和java业务组件)
docker run --name zabbix-server-mysql -t \
-e DB_SERVER_HOST="mysql-server" \
-e MYSQL_DATABASE="zabbix" \
-e MYSQL_USER="zabbix" \
-e MYSQL_PASSWORD="zabbix_pwd" \
-e MYSQL_ROOT_PASSWORD="root_pwd" \
-e ZBX_JAVAGATEWAY="zabbix-java-gateway" \
--link mysql-server:mysql \
--link zabbix-java-gateway:zabbix-java-gateway \
-p 10051:10051 \
-d zabbix/zabbix-server-mysql:latest

#启动zabbix—web容器(关联数据库和收集中间件)
docker run --name zabbix-web-nginx-mysql -t \
-e DB_SERVER_HOST="mysql-server" \
-e MYSQL_DATABASE="zabbix" \
-e MYSQL_USER="zabbix" \
-e MYSQL_PASSWORD="zabbix_pwd" \
-e MYSQL_ROOT_PASSWORD="root_pwd" \
--link mysql-server:mysql \
--link zabbix-server-mysql:zabbix-server \
-p 80:80 \
-d zabbix/zabbix-web-nginx-mysql:latest

 

4.检查是否正常使用

docker容器之间互联

 

赞赏

微信赞赏支付宝赞赏

下载权限

查看
  • ¥{{right.value}}
    {{right.value}}
    免费下载
    评论后下载
    登录后下载

  • {{attr.name}}:
您当前的等级为
您有每天下载所有资源次的特权,今日剩余 已取得下载权限
Docker

docker-compose单机版的容器编排

2020-3-5 8:06:47

Docker

docker跨宿主机容器间的通讯之overlay

2020-3-6 8:37:59

0 条回复 A文章作者 M管理员
    暂无讨论,说说你的看法吧
个人中心
购物车
优惠劵
今日签到
有新私信 私信列表
有新消息 消息中心
搜索