Docker exec и docker запускают, давая мне разные хосты resolv.conf - PullRequest
0 голосов
/ 21 ноября 2018

Я использую docker compose для запуска двух контейнеров 1. флешка webapp 2. база данных mysql.У меня все сценарии написаны, и Dockerfile готов к работе.Мое приложение выполняет проверку связи с другими компьютерами по именам хостов и требует, чтобы resolv.conf совпадал с хост-компьютером.После запуска моего docker-compose я вижу, что оба моих контейнера работают следующим образом:

#:~/home/user # docker-compose images
/bin/sh: /tmp/_MEIXmPrg9/libreadline.so.7: no version information available (required by /bin/sh)
/bin/sh: /tmp/_MEIXmPrg9/libreadline.so.7: no version information available (required by /bin/sh)
         Container             Repository     Tag       Image Id      Size
---------------------------------------------------------------------------
webapp-gui_app_1_1b87619cd08b   webapp-gui_app   latest   f0982b82c556   467 MB
webapp-gui_db_1_bd74de835067    mysql          5.7      702fb0b7837f   355 MB

В моем веб-приложении команда ping не позволяет мне пинговать по имени хоста, поэтому при попыткеЗапустить интерактивный режим для устранения неполадок. Я заметил, что при работе с:

docker run -it webapp-gui_app_1_1b87619cd08b /bin/sh 

Это дает правильный resolv.conf, и я могу успешно пропинговать имена хостов, однако, когда я запускаю его так, как это

docker exec -u 0 -it webapp-gui_app_1_1b87619cd08b sh

Мой файл resolv.conf изменяется на следующий (неверный resolv.conf), и я больше не могу пропинговать другие локальные машины по имени хоста.Кто-нибудь знает почему?

/etc # cat resolv.conf
search mydomain.com
nameserver 127.0.0.11
options ndots:0
...