Docker 记录 ------ 使用weave实现docker跨网段通信
(1)我们使用weave虚拟工具配置,完成两台主机上的DDS接收端和发送端的实时通信。首先保证两台宿主机在同一网段下,这里我的主机(简称c1),皓淳主机(简称c2)的ip地址分别是192.168.1.241和192.168.1.168
(2)weave的安装过程:首先我们完成对6783接口的处理:sudo ufw allow 6783
(3)安装weave:首先将weave文件移动到/usr/loacl/bin,然后执行:chmod a+x /usr/local/bin/weave。之后执行:sudo weave launch
latest: Pulling from weaveworks/weave
21c83c524219: Pull complete 
02ec35b6f627: Pull complete 
c40f141adde9: Pull complete 
a63db11be476: Pull complete 
e8d3a1b4fb09: Pull complete 
Digest: sha256:a4f1dd7b4fcd3a391c165f1ab20c5f72330c22fe0918c899be67763717bb2a28
Status: Downloaded newer image for weaveworks/weave:latest
docker.io/weaveworks/weave:latest
latest: Pulling from weaveworks/weavedb
a53a673d456f: Pull complete 
Digest: sha256:69451a2121b288e09329241de9401af1aeddd05d93f145764bbb735a4ea05c76
Status: Downloaded newer image for weaveworks/weavedb:latest
docker.io/weaveworks/weavedb:latest
Unable to find image 'weaveworks/weaveexec:latest' locally
latest: Pulling from weaveworks/weaveexec
21c83c524219: Already exists 
02ec35b6f627: Already exists 
c40f141adde9: Already exists 
a63db11be476: Already exists 
e8d3a1b4fb09: Already exists 
a32777c54c9c: Pull complete 
62ae831e3996: Pull complete 
4dce36b0e389: Pull complete 
6f3464413eb4: Pull complete 
Digest: sha256:847cdb3eb0d38ff6590b6066ec0f6b02ced47c1d76a78f3f93d8ca6145aecaa5
Status: Downloaded newer image for weaveworks/weaveexec:latest
46fbc8bf317be2515ccd93892a14de1c7709bc32f16762c30d6329c38f4f5045
(4)观察docker的运行内容:sudo docker ps -a
CONTAINER ID   IMAGE                         COMMAND                  CREATED          STATUS          PORTS     NAMES
46fbc8bf317b   weaveworks/weave:latest       "/home/weave/weaver …"   12 seconds ago   Up 11 seconds             weave
e9f579397e8d   weaveworks/weaveexec:latest   "data-only"              12 seconds ago   Created                   weavevolumes-latest
0aff14057936   weaveworks/weavedb:latest     "data-only"              12 seconds ago   Created                   weavedb
(5)观察docker镜像是否齐全:sudo docker images
REPOSITORY              TAG       IMAGE ID       CREATED         SIZE
10.71.22.141:5000/dds   latest    1d5dcc0655e7   28 hours ago    807MB
weaveworks/weaveexec    latest    e8d7a2b95ca2   17 months ago   71.2MB
weaveworks/weave        latest    c5f94c391f12   17 months ago   61.2MB
weaveworks/weavedb      latest    19661b1dbf28   18 months ago   698B
(6)观察brctl,但是这里没有安装相关功能: sudo brctl show
(7)观察weave的ip:sudo ifconfig weave
weave: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1376
        inet6 fe80::cca5:c9ff:feba:a664  prefixlen 64  scopeid 0x20<link>
        ether ce:a5:c9:ba:a6:64  txqueuelen 1000  (Ethernet)
        RX packets 42  bytes 4910 (4.9 KB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 22  bytes 2897 (2.8 KB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0
(8)观察docker的network:sudo docker network ls
NETWORK ID     NAME      DRIVER      SCOPE
41ff08ec42c4   bridge    bridge      local
bf346cea5356   host      host        local
312a84361715   none      null        local
8264adb53fd2   weave     weavemesh   local
(9)在c1上进行对c2的weave功能的连接:
sudo weave connect 192.168.1.168
在c2上进行对c1的weave功能的连接:
sudo weave connect 192.168.1.241
(10)开始run需要的DDS镜像,注意到这里添加了参数"--net=none"使得运行的容器不使用docker自动分配的ip,实用意义不明,但是加上是通的,故保留。
sudo docker run -itd --net=none 10.71.22.141:5000/dds
结果会返回该容器的container id
(11)查看docker是否正常运行:sudo docker ps
CONTAINER ID   IMAGE                     COMMAND                  CREATED         STATUS         PORTS     NAMES
a4d9495dd5f7   10.71.22.141:5000/dds     "/bin/bash"              4 seconds ago   Up 4 seconds             compassionate_wright
46fbc8bf317b   weaveworks/weave:latest   "/home/weave/weaver …"   3 minutes ago   Up 3 minutes             weave
(12)这步较为关键,要使用weave工具命令该容器在c1上使用192.168.10.11/24这个地址:
sudo weave attach 192.168.10.20/24 a4d9495dd5f7
(13)查看weave的相关状态:sudo weave version
weave script unreleased
weave git-34de0b10a69c
sudo weave status
Version: git-34de0b10a69c (up to date; next check at 2022/07/30 17:26:33)
        Service: router
       Protocol: weave 1..2
           Name: ce:a5:c9:ba:a6:64(yhc-virtual-machine)
     Encryption: disabled
  PeerDiscovery: enabled
        Targets: 1
    Connections: 2 (2 established)
          Peers: 3 (with 6 established connections)
 TrustedSubnets: none
        Service: ipam
         Status: all IP ranges owned by unreachable peers - use 'rmpeer' if they are dead
          Range: 10.32.0.0/12
  DefaultSubnet: 10.32.0.0/12
        Service: dns
         Domain: weave.local.
       Upstream: 127.0.0.53
            TTL: 1
        Entries: 0
        Service: proxy
        Address: unix:///var/run/weave/weave.sock
        Service: plugin (legacy)
     DriverName: weave
(14)执行该容器:sudo docker exec -it a4d /bin/bash。并在进入后首先查看是否ip地址正确:(这里是c2)
root@a4d9495dd5f7:/# ifconfig
ethwe: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1376
        inet 192.168.10.20  netmask 255.255.255.0  broadcast 192.168.10.255
        ether f2:f0:9d:22:f9:90  txqueuelen 0  (Ethernet)
        RX packets 25  bytes 3142 (3.1 KB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 1  bytes 42 (42.0 B)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0
lo: flags=73<UP,LOOPBACK,RUNNING>  mtu 65536
        inet 127.0.0.1  netmask 255.0.0.0
        loop  txqueuelen 1000  (Local Loopback)
        RX packets 0  bytes 0 (0.0 B)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 0  bytes 0 (0.0 B)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0
(15)进入测试目录:cd home/dds/Debug,执行:./test_Recv.
突然有一天假期结束,时来运转,人生才是真正开始了。
 
                    
                
 
                
            
         
         浙公网安备 33010602011771号
浙公网安备 33010602011771号