В более новой версии docker это можно сделать с помощью docker-compose и его extra_hostsдирективы
Добавьте сопоставления имен хостов.
Используйте те же значения, что и параметр docker runклиента--add-host (который уже должен быть доступен для docker 1.8).
extra_hosts:
- "somehost:162.242.195.82"
- "otherhost:50.31.209.229"
Вкратце: модифицируйте /etc/hostsваш контейнер при его запуске, а не строите его.
С Docker 17.x + у вас есть docker build --add-hostупомянутое ниже , но, как прокомментировано в проблеме 34078 и в этом ответе :
--add-hostОсобенность во время сборки разработана , чтобы позволить переопределение хозяина во время сборки, но не сохранять эту конфигурацию в изображении.
Упомянутые решения действительно относятся к docker-compose, который я предлагал выше:
- Запустите внутренний DNS; вы можете установить DNS-сервер по умолчанию для использования в демоне; таким образом каждый запущенный контейнер будет автоматически использовать настроенный DNS по умолчанию
- Используйте docker compose и предоставьте
docker-compose.ymlсвоим разработчикам.
Файл docker compose позволяет указать все параметры, которые следует использовать при запуске контейнера, поэтому разработчики могут просто создать docker compose, чтобы запустить контейнер со всеми параметрами, которые им нужно установить.