호스트 머신과 동일한 Docker 컨테이너의 호스트 이름을 설정합니다.

3390 단어 dockerdevopslinux

컨테이너 호스트 이름을 호스트 시스템과 동일하게 설정



사소하게 들리지만 호스트 이름을 설정하려면 약간의 조정이 필요합니다.
Host Machine과 동일해야 합니다.

대본



특정 컨테이너의 호스트 이름을 설정해야 하는 작업 요구 사항이 있었습니다.
그것이 실행되어야 하는 기계의 것이 되는 것입니다.

고려 중인 Linux 배포판은 Ubuntu 20.04 LTS였습니다.

Ubuntu의 신비한 HOST 및 HOSTNAME 환경 변수



지금 Ubuntu 시스템을 사용 중인 경우 echo $HOS를 시도하고 TAB 키를 눌러 bash 완료가 채워지도록 합니다. HOSTHOSTNAME를 볼 가능성이 높습니다.
bash 셸의 세션에서 이미 사용 가능한 환경 변수로.

매우 간단합니다. Compose 파일에서 hostname 키에 대한 환경 변수로 둘 중 하나를 사용할 수 있으며 즉시 사용할 수 있습니다! 좀 빠지는!

간단한 예를 통한 조사



다음docker-compose.yml 파일을 가져옵니다.

services:
  test:
    image: alpine:latest
    container_name: hostname-tester
    hostname: alpine-${HOST}
    command:
      - hostname


다음 test 서비스는 HOST 변수 값을 검색하여 알파인 컨테이너의 호스트 이름으로 설정할 수 있어야 합니다. command는 예를 들어 alpine-my-ubuntu와 같은 것을 인쇄할 수 있어야 합니다.

실행할 때 어떤 일이 발생하는지 살펴보겠습니다docker compose up.

WARN[0000] The "HOST" variable is not set. Defaulting to a blank string. 
[+] Running 1/1
 ⠿ Container hostname-tester  Recreated                                    0.1s
Attaching to hostname-tester
hostname-tester  | alpine-
hostname-tester exited with code 0


보시다시피 HOST 변수는 쉘에서 사용할 수 있지만
파일을 작성합니다.

대부분의 셸 환경 변수는 호스트 시스템에서 printenv를 사용하여 볼 수 있으므로 HOST 또는 HOSTNAME를 빠르게 검색하면 이러한 특정 환경 변수가 셸의 env에 없음을 알 수 있습니다.

printenv | grep -i "host"


해결책



쉘 세션에서 변수를 사용할 수 있게 만드는 가장 표준적인 방법은 변수를 내보내는 것입니다.

다음을 사용하여 HOST를 내보냅니다.

export HOST


컨테이너를 다시 가져와 변수 값을 선택하는지 확인해 보겠습니다.

export HOST
❯ docker compose up
[+] Running 1/0
 ⠿ Container hostname-tester  Recreated                                    0.0s
Attaching to hostname-tester
hostname-tester  | alpine-shan-pc
hostname-tester exited with code 0


내 컴퓨터(Manjaro Linux(Rolling))의 경우 이제 컨테이너의 호스트 이름을 호스트 컴퓨터의 호스트 이름과 동일하게 설정할 수 있습니다.
printenv를 다시 충분히 검색하면 내보내기HOST 변수를 찾을 수 있습니다.

이러한 구성이 필요할 수 있는 온프레미스 서버 또는 클라우드 이미지가 있는 경우 해결 방법은 사용자의 export HOST 또는 ~/.bashrc(ZSH를 사용하는 경우)에 ~/.zshrc를 추가하는 것입니다.
해당 Compose 스택을 가져올 때 값을 사용할 수 있습니다.

이 정보가 Docker 및 Docker Compose 기반 환경과 관련하여 유사한 솔루션을 찾으려는 사람들에게 도움이 되기를 바랍니다.

좋은 웹페이지 즐겨찾기