我是docker的初学者。如果有任何错误,请纠正我。
如本docker swarm教程https://www.youtube.com/watch?v=nGSNULpHHZc中所示,我正在尝试为我的超级账本结构应用程序设置multhost设置。
我正在使用两个Oracle Linux服务器,即服务器1和服务器2。 我使用docker swarm作为管理器连接了两台服务器,并创建了名为my-net的覆盖网络。
我遵循上述教程中给出的语法,并使用beolw提到的语法创建了服务。
docker服务create --name myservice --network my-net --replicas 2 alpine sleep 1d
按预期,它在每台服务器中创建了一个conatianer。 假设服务器1协同容器IP为10.0.0.4,服务器2容器IP为10.0.0.5。 现在,我正在尝试从第二个服务器容器ping到第一个服务器的容器,如下所示,并且正在pinging。
#docker exec -it ContainerID sh
/#ping 10.0.0.4
PING 10.0.0.4(10.0.0.4):56个数据字节
从10.0.0.4开始的64个字节:seq = 0 ttl = 64时间= 0.082 ms
从10.0.0.4开始的64个字节:seq = 1 ttl = 64时间= 0.062 ms
从10.0.0.4开始的64个字节:seq = 2 ttl = 64时间= 0.067 ms
^ C
--- 10.0.0.4 ping统计信息---
传输了3个数据包,接收了3个数据包,数据包丢失率为0%
往返最小值/平均值/最大值= 0.062 / 0.070 / 0.082毫秒
现在,我正在尝试使用上述提到的语法创建service(1)。
docker服务create --name myservice1 --network my-net --replicas 2 hyperledger / fabric-peer sleep 1d
正如预期的那样,这还在每台服务器中创建了一个conatianer。
假设服务器1协同容器IP为10.0.0.6,服务器2容器IP为10.0.0.7。
现在,我尝试从第二个服务器容器ping到第一个服务器的容器,如下所示。
这次我收到ping not found错误,
#docker exec -it ContainerID sh
#ping 10.0.0.6
sh:1:ping:找不到
任何人都可以帮助第二个myservice1问题吗。
答案 0 :(得分:0)
Fabric Docker映像基于基本的Ubuntu映像,并且不包含ping之类的实用程序。一旦“执行”到对等容器中,就可以使用“ apt”安装ping:
apt-get update
apt-get install inetutils
答案 1 :(得分:0)
根据Gari Singh的回答,在我本周纺出的Fabric网络上,inetutils
已分为不同的包装:
# apt-cache search inetutils
inetutils-ftp - File Transfer Protocol client
inetutils-ftpd - File Transfer Protocol server
inetutils-inetd - internet super server
inetutils-ping - ICMP echo tool
inetutils-syslogd - system logging daemon
inetutils-talk - talk to another user
inetutils-talkd - remote user communication server
inetutils-telnet - telnet client
inetutils-telnetd - telnet server
inetutils-tools - base networking utilities (experimental pac
因此要安装例如ping
正确的命令已变为:
# apt-get install inetutils-ping
对等方的Ubuntu版本是:
# cat /etc/lsb-release
DISTRIB_ID=Ubuntu
DISTRIB_RELEASE=16.04
DISTRIB_CODENAME=xenial
DISTRIB_DESCRIPTION="Ubuntu 16.04.5 LTS"