EdgeX默认使用的是映射端口模式,在服务分布部署的时候无法根据设备服务名找到对应ip.
k8s部署太复杂了,尝试使用docker swarm解决不同主机之间docker互相访问问题
1、主机间关系如下,主机2作为从机。
2、在主机1上执行
docker swarm init
执行结果
Swarm initialized: current node (8pbeemanze4hic086lg9vatgq) is now a manager. To add a worker to this swarm, run the following command: docker swarm join --token SWMTKN-1-5u7vluy344umgyreimctpoeuvabz4yp5dz4xney55cypvsv15n-9r5e5at6z1ri63b2azy0ob81p 192.168.137.6:2377 To add a manager to this swarm, run ‘docker swarm join-token manager‘ and follow the instructions.
3、在主机1上创建overlay 网络net1
docker network create -d overlay --attachable demo
返回一串数字
yxc3n42en2j8s2xewrmzax6es
4、在主机2上执行加入主机
docker swarm join --token SWMTKN-1-5u7vluy344umgyreimctpoeuvabz4yp5dz4xney55cypvsv15n-9r5e5at6z1ri63b2azy0ob81p 192.168.137.6:2377
5、docker network ls
只有一个名为ingreee的overlay网络
6、在主机1、2上分别执行
sudo docker run -it --rm --name test1 --net demo busybox /bin/sh
sudo docker run -it --rm --name test2 --net demo busybox /bin/sh
然后从新开一个ssh连接,r可以看到名为demo的
如果docker关闭,那么这个网络也会消失,说明是按需创建的。
进入容器,退出容器前后对比
7、在两个容期间互相访问
原文:https://www.cnblogs.com/zhaogaojian/p/15170757.html