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
Lepaskan: 2024-10-29 16:36:02
asal
895 orang telah melayarinya

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>
Salin selepas log masuk

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>
Salin selepas log masuk

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!

sumber:php.cn
Kenyataan Laman Web ini
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
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan