Linux에서 호스트 Docker 내부

Isaac Tony 2023년6월20일
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
Isaac Tony avatar Isaac Tony avatar

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