У меня есть 3 докеризованных сервиса. Службы A и B запускаются в одном файле docker-compose:
докер-compose.yml
version: '3.5'
services:
service_a:
container_name: service_a
networks:
- my_net
service_b:
container_name: service_b
networks:
- my_net
networks: #This is just because I wanted to change the network default name
my_net:
name: my_net
Служба C должна выполнять запросы к службам A и B, но она запускается отдельно, используя docker без compose (это потому, что я передаю опцию --network
). Итак, я запускаю сервис C, связывающий A и B:
docker run --network my_net --link service_a --link service_b service_c_docker_image
Это работает на MacOS, но не в Ubuntu!
Если я запускаю команду ping вместо команды по умолчанию service_c_docker_image:
docker run --network my_net --link service_a --link service_b service_c_docker_image ping service_a
на MacOS, хост достигнут правильно; в Ubuntu я получаю: ping: service_a: Name or service not known
. И то же самое с service_b
.
Обе машины используют одинаковую версию docker и docker-compose.
Чего мне не хватает?