2016-06-15 4 views
1

런타임시 고정 컨테이너에 기본 구성을 설정하는 가장 좋은 방법은 무엇입니까? 몇 가지 접근법을 시도했지만 각자의 프로와 죄수에 대해 잘 모르겠습니다.도커 컨테이너에 구성을 보내는 방법은 무엇입니까?

  1. 환경 변수를 통해 구성을 설정하십시오. 예 : docker run -d -t -e HOST=www.example.com my_image my_script

  2. Dockerfile의 ENTRYPOINT를 실행하려는 명령으로 설정하고 CMC가 docker를 호출 할 때 전달한 인수로 CMD를 재정의하도록 설정하여 명령 줄 인수를 통해 구성을 설정하십시오. 예 : docker run -d -t my_image my_script --host=www.example.com

설정하기 쉬운 명령 줄 인수와 환경 변수는 나와 사용하기 쉽도록 거의 동일합니다. 누구든지 두 가지 접근법의 큰 장점이나 단점이 있습니까? 도커 컨테이너에있는 ENTRYPOINT/CMD는 파이썬 스크립트입니다. 내 생각에 독점 컨테이너 외부에서 스크립트를 실행할 때 환경 변수와는 달리 명령 줄 인수를 사용하는 것이 약간 쉬우나, 주로 개인적인 취향입니다.

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을/설정/MyConfig를 장착

고정 표시기 실행 -v/mydata을/설정/:을/etc/nginx를/config

그런 다음/mydata/config/myconfig에서 구성을 업데이트하고 컨테이너를 다시 시작하면 변경 사항이 적용됩니다.

그게 무슨 뜻이야? 특정 일을하고 싶습니까?

+0

아 그래, 구성을 보내는 모든 방법을 통해 가고 싶지 않았습니다. 몇 가지 간단한 구성 만 가지고 있다면 컨테이너를 구성하는 가장 좋은 방법을 찾고있었습니다. 볼륨 마운트, --env_file 사용, 외부 키/값 저장소 또는 데이터베이스에서 구성로드 등의 다른 방법이 있음을 알고 있습니다. docker 이미지를 가져 오는 것 외에도 구성 파일을 호스트 시스템에 저장해야하기 때문에 구성 파일을로드하기 위해 볼륨 마운트를 권장하지 않는 기사를 읽었습니다. – mpl

+0

예. 그런 다음 원하는 파일에 원하는 명령 (또는 유사한 명령)을 echo하는 RUN 명령을 갖게됩니다. – PolarisUser

관련 문제