Rumah >pangkalan data >tutorial mysql >Bagaimana untuk Menyambungkan Pangkalan Data MySQL Tempatan ke Kontena Docker Tanpa Menukar Konfigurasi Kontena?

Bagaimana untuk Menyambungkan Pangkalan Data MySQL Tempatan ke Kontena Docker Tanpa Menukar Konfigurasi Kontena?

Barbara Streisand
Barbara Streisandasal
2024-10-29 16:36:02897semak imbas

How to Connect a Local MySQL Database to a Docker Container Without Changing Container Configuration?

Menyambungkan Pangkalan Data MySQL Tempatan ke Bekas Docker

Apabila mengalihkan aplikasi kepada pengeluaran menggunakan persediaan Dockerized, mungkin terdapat keinginan untuk mengelakkan penggunaan berasaskan kontena pangkalan data. Artikel ini meneroka cara menyambungkan pangkalan data MySQL yang dihoskan secara tempatan kepada aplikasi yang dijalankan dalam bekas Docker, tanpa mengubah suai konfigurasi pangkalan data kontena.

Mengubah suai docker-compose.yml

Docker-compose yang disediakan Fail .yml termasuk perkhidmatan bernama "app-db" yang memulakan pangkalan data MySQL dalam bekas. Untuk menyambungkan aplikasi kepada pangkalan data MySQL luaran sebaliknya:

  1. Alih keluar perkhidmatan "app-db" daripada fail docker-compose.yml.
  2. Tambah bahagian "environment" ke perkhidmatan "apl web", di mana butiran sambungan pangkalan data ditentukan:
<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>

Memastikan Resolusi Hos

Untuk sistem Linux, bekas Docker diasingkan daripada konfigurasi rangkaian hos . Untuk membenarkan aplikasi web menyelesaikan alamat host.docker.internal, bekas mesti dimulakan dengan parameter "--add-host host.docker.internal:host-gateway":

<code class="sh">docker run --add-host host.docker.internal:host-gateway ...</code>

Ini parameter memastikan bahawa bekas boleh menyelesaikan hos.docker.internal kepada alamat IP hos.

Menyambung ke Pangkalan Data Luar

Dengan konfigurasi docker-compose.yml dan bekas yang diubah suai, aplikasi web seharusnya dapat menyambung ke pangkalan data MySQL yang dihoskan secara tempatan seperti yang dinyatakan dalam pembolehubah persekitaran.

Atas ialah kandungan terperinci Bagaimana untuk Menyambungkan Pangkalan Data MySQL Tempatan ke Kontena Docker Tanpa Menukar Konfigurasi Kontena?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn