smazat toto network_mode: bridge
z vašeho nového souboru, pracoval pro mě =).
Poděkování tgogosovi:Jen jsem musel použít jiný než výchozí most.
Pro úplnost zde je moje pracovní konfigurace.
version: "3"
services:
main:
networks:
test:
image: python:3.5.2
entrypoint: /usr/bin/yes
another:
networks:
test:
image: python:3.5.2
entrypoint: /usr/bin/yes
networks:
test:
driver: bridge
A ping nyní funguje.
$ docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
faa9f96d46a9 python:3.5.2 "/usr/bin/yes" 9 seconds ago Up 9 seconds dockerplayground_main_1
5b2d56ac0cd7 python:3.5.2 "/usr/bin/yes" 9 seconds ago Up 8 seconds dockerplayground_another_1
$ docker exec -it faa ping another
PING another (172.18.0.2): 56 data bytes
64 bytes from 172.18.0.2: icmp_seq=0 ttl=64 time=0.054 ms
64 bytes from 172.18.0.2: icmp_seq=1 ttl=64 time=0.047 ms
64 bytes from 172.18.0.2: icmp_seq=2 ttl=64 time=0.059 ms
64 bytes from 172.18.0.2: icmp_seq=3 ttl=64 time=0.066 ms
Dalším řešením, které jsem vyzkoušel a pracoval, bylo explicitní propojení obsahu, který chcete pingnout, s názvem hostitele. Například mám postgres
kontejner a server
se k němu chce připojit.
Spusťte server
s následujícím
docker run --name server --link postgres someserver:latest
V prostředí serverového kontejneru pak můžete pingnout pomocí (s ohledem na postgres
je na stejném mostě/síti a běží)
ping postgres
Od --link
byl zastaralý, je doporučeno použít síťový most.
docker network create YOURNETWORK
docker run --name postgres --network='YOURNETWORK' postgres:latest
docker run --name server --network='YOURNETWORK' server:latest
pak se dva kontejnery mohou navzájem pingovat podle jména.
ImportError:libtk8.6.so:nelze otevřít soubor sdíleného objektu:Žádný takový soubor nebo adresář
Chyba aktualizace sudo apt-get na Ubuntu 17.04