2016-06-15 4 views
1

Каков наилучший способ установки основных конфигураций в контейнере докеров во время выполнения? Я пробовал несколько подходов, но я не уверен в каждом из них.Как отправить конфигурацию в контейнер для докеров?

  1. Задайте конфигурацию с помощью переменной окружения. Пример: docker run -d -t -e HOST=www.example.com my_image my_script

  2. Задайте конфигурацию с помощью аргументов командной строки, установив ENTRYPOINT в файле Docker в команду, которую я хочу запустить, и давая CMD переопределить аргументы, которые я передаю при вызове docker. Пример: docker run -d -t my_image my_script --host=www.example.com

Настройка аргументов командной строки и переменные окружения примерно одинаковы в простоте использования для меня. Есть ли у кого-либо большие преимущества или недостатки любого подхода? Мой ENTRYPOINT/CMD в контейнере докера является скриптом python. Моя единственная мысль заключается в том, что при запуске моего скрипта вне контейнера докеров несколько проще использовать аргументы командной строки, а не переменные среды, но это в основном личные предпочтения.

Dockerfile:

FROM ubuntu:xenial 
RUN apt-get update -y 
RUN apt-get install -y python3-pip python3.5 build-essential 

COPY . /app 
WORKDIR /app 

ENTRYPOINT ["python3"] 
CMD ["-h"] 

ответ

1

Таким образом, в случае NGINX, я устанавливаю/MyData/Config/MyConfig в мой контейнер

докер запустить -v/MYDATA/конфигурации /:/и т.д./Nginx/config

Итак, все, что мне нужно сделать, это обновить мою конфигурацию в/mydata/config/myconfig, перезагрузить мой контейнер и внести изменения.

Это вы имеете в виду? Есть ли что-то конкретное, что вы хотите сделать?

+0

Ах да, я не хотел проходить все способы отправки конфигурации. Я просто искал лучший способ настройки контейнера, если у вас есть только несколько простых конфигураций. Я знаю, что есть другие способы, такие как установка тома, использование --env_file, загрузка конфигураций из внешнего хранилища ключей/значений или базы данных. Я читал статьи, которые советуют не устанавливать громкость для загрузки конфигурационного файла, потому что тогда вам придется поместить файл конфигурации в вашу хост-систему в дополнение к потянув изображение докера. – mpl

+0

Got ya. Тогда у меня будет команда RUN, что echo - это конфигурация, которую вы хотите (или аналогичная команда) в нужном файле. – PolarisUser