![](/img/trans.png)
[英]How to scan docker containers IPs from a docker container that is in the same network?
[英]Docker Container Attached to Network, Network Inspect Shows No Containers
我只是想将笔记本电脑上 Ubuntu 22.04 VM 的 ROS2 节点连接到另一台运行 Ubuntu 18.04 的机器上的另一个 ROS2 节点。 理想情况下,我在第二台机器上只有 Docker(第一台机器运行一个永远不会改变的普通节点),但我一直在尝试在每台机器上使用一个单独的容器。
这是我正在做的以及检查时看到的内容:
(从 VM 1 ssh 进入机器 2。)
sudo docker network create -d overlay --attachable my-attachable-ovrlay
sudo docker run -it --rm test1
sudo docker network connect dwgyau64pvpenxoj2edu4liqu bold_murdock
sudo docker inspect -f '{{range $key, $value := .NetworkSettings.Networks}}{{$key}} {{end}}' bold_murdock
印刷:
bridge my-attachable-ovrlay
sudo docker network inspect my-attachable-ovrlay
打印(除其他外):
"Containers": null,
我是 Docker AND.networking 的新手,所以我可能会遗漏一些重要的东西,但我已经尝试了我在网上找到的所有标准建议,包括禁用我的防火墙,在两台机器上使用ufw allow打开大量端口,确保节点是活跃的等等等等等等等等等等。
我尝试从机器 2 加入 .network 并且成功了,并且在使用 .network inspect 时显示了容器。 但是当我这样做时,机器 1 只是拒绝连接到.network。 F:在这种情况下它会报错。
sudo docker network connect dwgyau64pvpenxoj2edu4liqu objective_mendel
印刷:
Error response from daemon: attaching to network failed, make sure your network options are correct and check manager logs: context deadline exceeded
此外,在尝试任何 docker.networking 之前,我已经尝试从 VM1 直接 ping 到机器 2,这两种方式都有效。 我曾尝试使用 .netcat 在端口 1234(根据此资源的随机端口)上打开一个老式聊天 window,并且只能以一种方式工作。 我可以通过两种方式进行通信,但只有当机器 1 发送 initial.netcat 请求并且机器 2 侦听时。 当机器 2 发送请求并且 1 侦听时,没有任何反应。
我一直在努力让这个工作 3 个星期。 我知道这是愚蠢的事情,我就是知道。 任何建议将不胜感激。 请像我对.networking一无所知一样解释一下,因为我即将这样做。
编辑:我将图像(仍然超链接)转换为代码块。
如果两台 PC 在同一个 LAN 上,您可以完全跳过 whole.network 配置并使用 ROS2 自动发现。
例如
PC1:
docker run -it --rm --net=host -v /dev/shm:/dev/shm osrf/ros:foxy-desktop
export ROS_DOMAIN_ID=1
ros2 run demo_nodes_py talker
PC2:
docker run -it --rm --net=host -v /dev/shm:/dev/shm osrf/ros:foxy-desktop
export ROS_DOMAIN_ID=1
ros2 run demo_nodes_py listener
如果PC不在同一个网络上,我通常使用ZeroTier在PC1、PC2和PC(N)之间创建一个虚拟局域网,然后重复上面的例子。
Bruh 路由器设置为 1969。当我们通过连接到 inte.net 15 秒更新时间,然后断开连接时,它开始工作。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.