2016-10-12 4 views
0

나는 용기 만들 비슷한 명령이 있습니다Dockerfile에서 인수로 전달 된 hostname을 사용하는 방법은 무엇입니까?

docker create --name=myname \ 
    --publish "80:80" \ 
    --hostname myhostname \ 
    local/local 

을 그리고 웹 서버에 가상 호스트를 생성하기위한 호스트 이름을 사용하고 싶습니다.

나는 테스트 명령을 사용하려고 :

RUN touch ~/aaa-${HOSTNAME} 

을하지만 결과를 얻었다 : aaa-719d8d68f3dc을하지만 aaa-myhostname을 기대했다.

그래서 중간 컨테이너 환경 변수를 사용합니다.

+0

로컬/로컬이란 무엇입니까? 컨테이너의 이미지는 무엇입니까? – cantSleepNow

+0

@cantSleepNow, 예, 이미지입니다. – Kirby

+0

:) 확실 하나, 우분투 기반? 페도라? something – cantSleepNow

답변

0

--hostname 옵션은 컨테이너 호스트 이름을 설정하지만 환경 변수는 설정하지 않습니다.

--hostname 대신 -e hostname=my.host.name을 사용하면 환경 변수로 액세스 할 수 있습니다.

+0

이 방법은 작동하지 않습니다. – Kirby

0

RUN 명령어의 내용은 중간 컨테이너 내부에서 발생하므로 호스트 정보에 따라 상태를 생성하면 이미지 레이어에 저장되는 내용은 중간 컨테이너에 대한 정보입니다.

각 컨테이너마다 다른 내용은 CMD 또는 ENTRYPOINT에서 수행해야 컨테이너가 실행될 때 실행됩니다. 호스트에서 상태를 설정 한 다음 응용 프로그램 프로세스를 실행하는 엔트리 포인트로 부트 스트랩 스크립트를 가질 수 있습니다.

관련 문제