도커 합성에서 호스트 이름을 설정하려면 어떻게 해야 합니까?
내 안에서docker-compose.yml
파일, 나는 다음을 가지고 있습니다.그러나 컨테이너는 호스트 이름 값을 선택하지 않습니다.아이디어 있어요?
dns:
image: phensley/docker-dns
hostname: affy
domainname: affy.com
volumes:
- /var/run/docker.sock:/docker.sock
컨테이너에서 호스트 이름을 확인해도 수신되지 않습니다.affy
.
Docker Composite 파일 버전 3.0 이상에서는 다음을 사용할 수 있습니다.hostname
키:
version: "3.0"
services:
yourservicename:
hostname: your-name
사용할 때 호스트 이름이 다른 컨테이너에 표시되지 않는 것을 발견했습니다.docker run
이는 알려진 문제(아마도 더 알려진 기능)로 밝혀졌으며, 논의의 일부는 다음과 같습니다.
호스트 이름 사용에 대한 경고를 문서에 추가해야 합니다.저는 그것이 거의 유용하지 않다고 생각합니다.
컨테이너 네트워킹 측면에서 호스트 이름을 할당하는 올바른 방법은 다음과 같이 별칭을 정의하는 것입니다.
services:
some-service:
networks:
some-network:
aliases:
- alias1
- alias2
불행하게도 이것은 여전히 작동하지 않습니다.docker run
이 문제를 해결하려면 컨테이너에 다음과 같은 이름을 할당해야 합니다.
docker-compose run --name alias1 some-service
그리고.alias1
그런 다음 다른 컨테이너에서 ping할 수 있습니다.
업데이트: @grilix가 지적했듯이, 당신은 다음을 사용해야 합니다.docker-compose run --use-aliases
정의된 별칭을 사용할 수 있도록 설정합니다.
이것은 올바르게 작동하는 것 같습니다.구성을 파일에 넣으면 다음과 같이 됩니다.
$ cat > compose.yml <<EOF
dns:
image: phensley/docker-dns
hostname: affy
domainname: affy.com
volumes:
- /var/run/docker.sock:/docker.sock
EOF
그런 다음 일을 제기합니다.
$ docker-compose -f compose.yml up
Creating tmp_dns_1...
Attaching to tmp_dns_1
dns_1 | 2015-04-28T17:47:45.423387 [dockerdns] table.add tmp_dns_1.docker -> 172.17.0.5
그런 다음 컨테이너 내부의 호스트 이름을 확인합니다. 모든 것이 정상인 것 같습니다.
$ docker exec -it stack_dns_1 hostname
affy.affy.com
도커 설명서 기반: https://docs.docker.com/compose/compose-file/ #/command
간단히 말하면hostname: <string>
제 도커 파일에 있습니다.
예:
[...]
lb01:
hostname: at-lb01
image: at-client-base:v1
[...]
그리고 컨테이너 lb01 픽업at-lb01
호스트 이름으로
내가 찾은 가장 간단한 방법은 컨테이너 이름을 설정하는 것입니다.docker-compose.yml
container_name 설명서를 참조하십시오.도커 구성 v1+에 적용할 수 있습니다.호스트 시스템에서 컨테이너로 작동하는 것이 아니라 컨테이너에서 컨테이너로 작동합니다.
services:
dns:
image: phensley/docker-dns
container_name: affy
이제 액세스할 수 있습니다.affy
다른 컨테이너에서 컨테이너 이름을 사용합니다.개발 환경에서 여러 대의 redisaster 서버에 대해 이 작업을 수행해야 했습니다.
참고 솔루션은 확장할 필요가 없는 한 작동합니다.일관된 개별 개발자 환경 등.
작동하는 kdc를 가지려면 freipa 컨테이너를 회전시켜야 했고 그렇지 않으면 실행되지 않는 호스트 이름을 지정해야 했습니다.결국 제게 효과가 있었던 것은HOSTNAME
구성 시 env 변수:
version: 2
services:
freeipa:
environment:
- HOSTNAME=ipa.example.test
이제 작동합니다.
docker exec -it freeipa_freeipa_1 hostname
ipa.example.test
언급URL : https://stackoverflow.com/questions/29924843/how-do-i-set-hostname-in-docker-compose
'source' 카테고리의 다른 글
jQuery의 ajax crossDomain 속성을 사용하시겠습니까? (0) | 2023.08.15 |
---|---|
어떻게 하면 jQuery가 유효한 json으로 표현되는 내 오류 응답을 구문 분석할 수 있습니까? (0) | 2023.08.15 |
함수가 있는 JavaScript 3차 연산자 예제 (0) | 2023.08.15 |
Android - 보기 안에 어린이를 넣습니까? (0) | 2023.08.15 |
Angular 2 - 구독에서 서버 오류 확인 (0) | 2023.08.15 |