Linux에서 호스트 Docker 내부
Docker를 사용하면 개발자는 애플리케이션을 컨테이너라고 하는 표준화된 단위로 래핑하여 애플리케이션을 효율적으로 빌드, 테스트 및 배포할 수 있습니다. Docker 컨테이너로 작업할 때 컨테이너를 호스트와 연결하려는 시나리오가 발생할 수 있습니다.
host.docker.internal
명령과 동등한 Linux
18.03
이전의 Docker 버전은 Mac 및 Windows 시스템에서만 host.docker.internal
명령을 지원했습니다. 그러나 Docker의 20.10.0
버전은 2020년 12월에 릴리스되었으며 후속 버전에서는 host.docker.internal
명령을 사용하여 Linux 시스템의 호스트에 연결할 수 있습니다.
Docker 설명서에 따르면 호스트에 변경되는 IP 주소가 있는 경우 호스트의 내부 IP 주소로 확인되는 host.docker.internal
을 사용하여 호스트에 연결할 수 있습니다. 그러나 이것은 개발 환경에서만 사용할 수 있습니다.
Windows 및 Mac에서는 host.docker.internal
을 사용하여 호스트에 연결하는 것이 훨씬 쉽습니다. 호스트의 기본 포트 3606
에서 실행되는 MySQL 서비스에 연결하려고 한다고 가정합니다.
아래 명령을 사용하여 Docker 컨테이너를 이 서비스에 연결할 수 있습니다.
암호:
host.docker.internal:3306
반면 Linux 시스템에서는 호스트에 성공적으로 연결하기 전에 추가 태그를 추가해야 합니다. 이는 docker run
명령과 함께 --add-host
플래그를 추가하여 20.10.0
이후의 Docker 버전에만 적용됩니다.
암호:
docker run -d --add-host host.docker.internal:host-gateway new_container
이 명령은 etc/hosts
디렉터에 새 항목을 추가하여 host.docker.internal
을 호스트 게이트웨이에 매핑합니다. 또는 Docker의 기본 브리지 네트워크에 대한 게이트웨이 주소인 localhost
라고도 하는 172.17.0.1
을 사용할 수도 있습니다.
Docker 네트워킹은 광범위한 주제이며 수행하려는 작업에 따라 위의 명령 또는 방법을 다르게 사용할 수 있습니다.
Isaac Tony is a professional software developer and technical writer fascinated by Tech and productivity. He helps large technical organizations communicate their message clearly through writing.
LinkedIn