집 >데이터 베이스 >MySQL 튜토리얼 >컨테이너 구성을 변경하지 않고 로컬 MySQL 데이터베이스를 Docker 컨테이너에 연결하는 방법은 무엇입니까?
Dockerized 설정을 사용하여 애플리케이션을 프로덕션으로 전환할 때 컨테이너 기반 데이터베이스의 사용을 피하고 싶을 수 있습니다. 데이터베이스. 이 문서에서는 컨테이너의 데이터베이스 구성을 수정하지 않고 로컬로 호스팅된 MySQL 데이터베이스를 Docker 컨테이너 내에서 실행되는 애플리케이션에 연결하는 방법을 살펴봅니다.
제공된 docker-compose .yml 파일에는 컨테이너 내에서 MySQL 데이터베이스를 초기화하는 "app-db"라는 서비스가 포함되어 있습니다. 대신 애플리케이션을 외부 MySQL 데이터베이스에 연결하려면:
<code class="yaml">version: '3' services: web-app: build: context: . dockerfile: web-app/Dockerfile ports: - 8080:8080 environment: - MYSQL_HOST=host.docker.internal - MYSQL_PORT=3306 - MYSQL_USER=username - MYSQL_PASSWORD=password - MYSQL_DATABASE=database_name</code>
Linux 시스템의 경우 Docker 컨테이너는 호스트의 네트워크 구성에서 격리됩니다. . 웹 애플리케이션이 host.docker.internal 주소를 확인하도록 허용하려면 "--add-hosthost.docker.internal:host-gateway" 매개변수를 사용하여 컨테이너를 시작해야 합니다.
<code class="sh">docker run --add-host host.docker.internal:host-gateway ...</code>
이것은 매개변수는 컨테이너가 호스트의 IP 주소에 대해 host.docker.internal을 확인할 수 있도록 보장합니다.
수정된 docker-compose.yml 및 컨테이너 구성을 사용하면 웹 애플리케이션은 환경 변수에 지정된 대로 로컬로 호스팅되는 MySQL 데이터베이스에 연결할 수 있어야 합니다.
위 내용은 컨테이너 구성을 변경하지 않고 로컬 MySQL 데이터베이스를 Docker 컨테이너에 연결하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!