런타임시 고정 컨테이너에 기본 구성을 설정하는 가장 좋은 방법은 무엇입니까? 몇 가지 접근법을 시도했지만 각자의 프로와 죄수에 대해 잘 모르겠습니다.도커 컨테이너에 구성을 보내는 방법은 무엇입니까?
환경 변수를 통해 구성을 설정하십시오. 예 :
docker run -d -t -e HOST=www.example.com my_image my_script
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"]
아 그래, 구성을 보내는 모든 방법을 통해 가고 싶지 않았습니다. 몇 가지 간단한 구성 만 가지고 있다면 컨테이너를 구성하는 가장 좋은 방법을 찾고있었습니다. 볼륨 마운트, --env_file 사용, 외부 키/값 저장소 또는 데이터베이스에서 구성로드 등의 다른 방법이 있음을 알고 있습니다. docker 이미지를 가져 오는 것 외에도 구성 파일을 호스트 시스템에 저장해야하기 때문에 구성 파일을로드하기 위해 볼륨 마운트를 권장하지 않는 기사를 읽었습니다. – mpl
예. 그런 다음 원하는 파일에 원하는 명령 (또는 유사한 명령)을 echo하는 RUN 명령을 갖게됩니다. – PolarisUser