programing

도커 합성과 함께 --add-hosts 또는 extra_hosts 사용

topblog 2023. 8. 6. 09:06
반응형

도커 합성과 함께 --add-hosts 또는 extra_hosts 사용

사용 중docker-compose약 5개의 서로 다른 컨테이너로 구성된 테스트 환경을 실행합니다.컨테이너 간 링크와 공유 볼륨(볼륨-원)은 훌륭하게 작동합니다.또한 일부 포트를 호스트 시스템에 노출하여 잘 작동합니다.

제가 놓치고 있는 것은 하드 코딩 IP 주소 없이 실제 서버 중 일부를 이 환경에 연결하는 방법입니다.와 함께docker run당신은 사용할 수 있습니다.--add-host다른 행을 추가하려면/etc/hosts파일입니다. 도커 컴포지와 비슷한 방법이 있나요?

https://github.com/compose-spec/compose-spec/blob/master/spec.md#extra_hosts

extra_hosts - 호스트 이름 매핑을 추가합니다.도커 클라이언트 --add-host 매개 변수와 동일한 값을 사용합니다.

extra_hosts:
 - "somehost:162.242.195.82"
 - "otherhost:50.31.209.229"

IP 주소와 호스트 이름을 가진 항목이 이 서비스의 /etc/hosts > 내부 컨테이너에 생성됩니다. 예:

162.242.195.82  somehost
50.31.209.229   otherhost

좋은 소식이 있습니다: 이것은 컴포지트 1.3에 있을 것입니다!

현재 RC(RC1)에서 다음과 같이 사용하고 있습니다.

rng:
  build: rng
  extra_hosts:
    seed: 1.2.3.4
    tree: 4.3.2.1

기본의docker-compose.yml추가 호스트 포함:

version: '3'
services:
api:
    build: .
    ports:
        - "5003:5003"
    extra_hosts:
        - "your-host.name.com:162.242.195.82" #host and ip
        - "your-host--1.name.com your-host--2.name.com:50.31.209.229" #multiple hostnames with same ip
        

의 내용/etc/hosts생성된 컨테이너의 파일:

162.242.195.82  your-host.name.com
50.31.209.229   your-host--1.name.com your-host--2.name.com

다음을 확인할 수 있습니다./etc/hosts다음 명령을 사용하여 파일을 만듭니다.

$ docker-compose -f path/to/file/docker-compose.yml run api bash  # 'api' is service name
#then inside container bash
root@f7c436910676:/app# cat /etc/hosts

언급URL : https://stackoverflow.com/questions/29076194/using-add-host-or-extra-hosts-with-docker-compose

반응형