Docker переопределяет мой файл /etc/resolv.conf внутри контейнеров

Я хочу установить /etc/resolv.conf моего контейнера:

nameserver 208.67.222.222 nameserver 208.67.220.220 

Мой файл Dockerfile имеет следующую строку:

 ADD resolv.conf /etc/resolv.conf 

Этот добавленный файл содержит правильные серверы имен.

В моем файле /etc/resolv.conf моего докера содержится правильная информация.

Я запускаю контейнер следующим образом:

 docker run -itd --cap-add=NET_ADMIN --device /dev/net/tun \ -v /home/pi/share/ovpn:/ovpn \ --privileged --network=internet_disabled --name vpn-client \ --dns=208.67.222.222 \ openvpn-client_nat-gateway /bin/bash 

Несмотря на все это, контейнер дает этот результат:

 root@642b0f4716ba:/# cat /etc/resolv.conf nameserver 127.0.0.11 options ndots:0 

Это происходит только после того, как я вручную изменяю resolv.conf из контейнера (или с помощью docker exec), который выглядит правильно.

Я бы предпочел не исправлять его с помощью команды exec. У кого-нибудь есть идея, что здесь происходит?

2 Solutions collect form web for “Docker переопределяет мой файл /etc/resolv.conf внутри контейнеров”

Как я вижу, вы используете user-defined networks и версию Docker Engine> = 1.10. Таким образом, из документации официального docker engine о Embedded DNS server in user-defined networks :

Эти –dns IP-адреса управляются встроенным DNS-сервером и не будут обновляться в файле /etc/resolv.conf контейнера.

Ваши dns должны работать, но вы не увидите ни одного файла конфигурации.

Ссылки .

AFAIK, докер переопределяет некоторые файлы в изображении, когда он запущен , даже если они были добавлены в файл Dockerfile. Это наверняка включает /etc/hosts , и, скорее всего, это тоже происходит для /etc/resolv.conf . Это, по-видимому, используется для правильной сборки «внутренней» сети Docker по умолчанию (чтобы изображения смотрели друг на друга, но не на хост и т. Д.). Если вы действительно уверены, что хотите переопределить или изменить некоторые из этих файлов, я считаю, что вы должны сделайте это как часть действий во время выполнения, то есть как часть линии CMD . Например:

 ... ADD resolv.conf /etc/resolv.conf.override CMD cp /etc/resolv.conf.override /etc/resolv.conf && \ your_old_commands... 
  • Получение «Ошибка протокола» при попытке создания символической ссылки в Docker
  • Почему некоторые докеры используют докерную сеть вместо параметра ссылки?
  • Возможно ли запустить 10,04 или 12,04 или более ранние LTS в контейнерах под LXC или Docker on Trusty?
  • Блочный порт на boot2docker vm на виртуальной машине
  • Как разбирать строку для номера порта в ksh
  • Установленный Docker, затем потерянное подключение к Интернету при перезагрузке!
  • Не удается подключиться к netcat
  • Как настроить синхронизацию + диско-сервер на Docker?
  • Dockerfile: ADD, где <src> - это URL-адрес, создает каталог вместо загруженного файла
  • Docker - ПРЕДУПРЕЖДЕНИЕ: отсутствие поддержки ограничения подкачки
  • Почему Docker нуждается в привилегиях root?
  • Файловая система Docker не имеет открытых файлов, но не может размонтировать
  • Interesting Posts

    Выполнение команд после символа амперсанда и в удаленной сессии ssh

    Не удается заставить Tiger-Vnc работать на Fedora 21

    grep фильтрует все линии плюс один перед каждым нажатием

    Включается ли контекстный переключатель при прерывании?

    Есть ли способ для стороннего приложения узнать, контролирует ли пользователь использование ЦП?

    Невозможно chroot bash после установки RUNPATH в ld-linux-x86-64.so.2 с patchelf 0.6 и 0.8

    Hexdump строки, начинающейся с новых строк?

    Есть ли debian / другой пакет для гипотетических имен / адресов / городов людей?

    Список писем по темам

    Создание сети VPN между живым сервером и частными сетями

    Проблемы с scp, если я использую bashrc для открытия рыбы, если она присутствует

    rsync только отсутствующие каталоги

    Debian 8.6 – Большой файл в корневой папке с именем EMPTY

    Linux заблокирован на df

    Будет ли установка среды рабочего стола замедлять работу сервера?

    Linux и Unix - лучшая ОС в мире.