호스트 머신과 동일한 Docker 컨테이너의 호스트 이름을 설정합니다.
컨테이너 호스트 이름을 호스트 시스템과 동일하게 설정
사소하게 들리지만 호스트 이름을 설정하려면 약간의 조정이 필요합니다.
Host Machine과 동일해야 합니다.
대본
특정 컨테이너의 호스트 이름을 설정해야 하는 작업 요구 사항이 있었습니다.
그것이 실행되어야 하는 기계의 것이 되는 것입니다.
고려 중인 Linux 배포판은 Ubuntu 20.04 LTS였습니다.
Ubuntu의 신비한 HOST 및 HOSTNAME 환경 변수
지금 Ubuntu 시스템을 사용 중인 경우
echo $HOS
를 시도하고 TAB 키를 눌러 bash 완료가 채워지도록 합니다. HOST
및 HOSTNAME
를 볼 가능성이 높습니다.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 기반 환경과 관련하여 유사한 솔루션을 찾으려는 사람들에게 도움이 되기를 바랍니다.
Reference
이 문제에 관하여(호스트 머신과 동일한 Docker 컨테이너의 호스트 이름을 설정합니다.), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/shandesai/set-the-hostname-of-a-docker-container-same-as-that-of-your-host-machine-26h5텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)