PHPMyAdmin adalah antarmuka administrasi populer untuk database MySQL dan MariaDB. Ini memungkinkan Anda berinteraksi dengan skema, tabel, dan data menggunakan browser web.
Proyek ini memiliki gambar Docker resmi yang menyederhanakan penerapan di lingkungan kemas. Berikut cara menggunakan gambar untuk menjalankan instance PHPMyAdmin baru dengan cepat.
Penggunaan Dasar
Instalasi paling sederhana memungkinkan wadah PHPMyAdmin terhubung ke server database mana pun yang dapat diakses:
docker run -d --name phpmyadmin -e PMA_ARBITRARY=1 -p 8080:80 phpmyadmin
Perintah ini memulai PHPMyAdmin pada port 8080. Kunjungi localhost:8080 di browser Anda untuk melihat layar login. Kehadiran PMA_ARBITRARY variabel lingkungan menghasilkan formulir koneksi server yang ditampilkan. Tentukan host dan kredensial pengguna database MySQL atau MariaDB Anda untuk login.

Saat Anda menggunakan metode ini, Anda biasanya akan melihat peringatan PHPMyAdmin bahwa "beberapa fitur tambahan telah dinonaktifkan." Ini terjadi ketika server yang Anda sambungkan tidak memiliki database bernama phpmyadmin . PHPMyAdmin menggunakan skema ini untuk menyimpan data konfigurasinya sendiri.

Ikuti tautan peringatan ke "Buat database" untuk menyelesaikan instalasi. Akun pengguna Anda memerlukan izin untuk membuat database baru di server.
Mereset Server
Sebagai alternatif untuk mengizinkan akses arbitrer, Anda dapat memulai wadah PHPMyAdmin dengan koneksi server yang telah dikonfigurasi sebelumnya. Berikan PMA_HOST dan PMA_PORT variabel lingkungan alih-alih PMA_ARBITRARY :
docker run -d --name phpmyadmin -e PMA_HOST=mysql.example.com -e PMA_PORT=33060 -p 8080:80 phpmyadmin
PMA_PORT adalah opsional. Ini akan menggunakan default MySQL 3306 ketika tidak ada nilai yang diberikan.
Memulai penampung dengan variabel-variabel ini akan membatasi PHPMyAdmin untuk bekerja dengan mysql.example.com server. Anda akan dimintai nama pengguna dan sandi di layar login, tetapi Anda tidak perlu memberikan nama host.
PHPMyAdmin juga dapat dikonfigurasi untuk menyajikan beberapa opsi server. Sediakan PMA_HOSTS dan PMA_PORTS sebagai daftar koneksi yang dipisahkan koma untuk mengaktifkan fungsi ini.
Menggunakan Kontainer Docker MySQL
Kasus penggunaan umum lainnya adalah menghubungkan ke server MySQL atau MariaDB yang berjalan di wadah Docker terpisah. Anda dapat mengekspos server database pada port atau menghubungkan kedua kontainer ke jaringan Docker bersama. Dalam kedua kasus, gunakan PMA_HOST dan PMA_PORT variabel lingkungan akan menginstruksikan PHPMyAdmin cara terhubung ke server.
Tautan Docker lawas juga didukung:
docker run -d --name phpmyadmin --link my_mysql_container:db -p 8080:80 phpmyadmin
Perintah ini memungkinkan Anda menghubungkan PHPMyAdmin ke my_mysql_container wadah tanpa mengatur tautan jaringan secara manual. Fungsionalitas ini tidak digunakan lagi di Docker, jadi beralih ke perintah jaringan lebih disukai:
docker network create phpmyadmin docker network connect phpmyadmin mysql_container_name --ip 172.17.0.1 docker network connect phpmyadmin phpmyadmin_container_name
Sebagai alternatif, Anda dapat memulai PHPMyAdmin dengan koneksi jaringan yang telah dikonfigurasi sebelumnya menggunakan --network Docker bendera:
docker run -d --name phpmyadmin --network phpmyadmin -p 8080:80 phpmyadmin
Sekarang PHPMyAdmin akan dapat mencapai wadah MySQL melalui jaringan bersama. Setel PMA_HOST variabel lingkungan ke 172.17.0.1 saat Anda memulai penampung.
Menyederhanakan Deployment Dengan Docker Compose
Menulis file Docker Compose menyederhanakan penerapan non-sepele. Anda dapat memunculkan wadah PHPMyAdmin baru secara berulang menggunakan docker-compose up -d perintah.
Berikut adalah docker-compose.yml untuk PHPMyAdmin dalam mode koneksi arbitrer:
version: "3"
services:
phpmyadmin:
image: phpmyadmin:latest
ports:
- 8080:80
environment:
- PMA_ARBITRARY=1
restart: unless-stopped Docker Compose juga membantu Anda membuat tumpukan dengan instalasi database MySQL baru dan wadah PHPMyAdmin:
version: "3"
service:
mysql:
image: mysql:latest
expose:
- 3306
environment:
- MYSQL_ROOT_PASSWORD
volumes:
- mysql:/var/lib/mysql
restart: unless-stopped
phpmyadmin:
image: phpmyadmin:latest
ports:
- 8080:80
environment:
- PMA_HOST: mysql
- PMA_PASSWORD: ${MYSQL_ROOT_PASSWORD}
restart: unless-stopped
volumes:
- mysql
Jalankan docker-compose up -d untuk membuka MySQL dengan wadah PHPMyAdmin berjaringan penuh. PMA_HOST PHPMyAdmin variabel diatur ke mysql , merujuk nama layanan MySQL. Docker Compose secara otomatis menyetel nama host agar sesuai dengan nama layanan, memungkinkan PHPMyAdmin terhubung ke MySQL menggunakan jaringan bersama.
Mengonfigurasi Instalasi
Gambar Docker PHPMyAdmin mendukung file konfigurasi yang disediakan pengguna yang dapat Anda masukkan melalui volume Docker. Jalurnya adalah /etc/phpmyadmin/config.user.inc.php :
docker run -d
--name phpmyadmin
-e PMA_ARBITRARY=1
-p 8080:80
-v my-config-file.php:/etc/phpmyadmin/config.user.inc.php
phpmyadmin Anda dapat menambahkan variabel konfigurasi apa pun yang didukung oleh PHPMyAdmin.
Gambar juga mendukung variabel lingkungan untuk banyak pengaturan umum. Ini termasuk MEMORY_LIMIT , UPLOAD_LIMIT dan MAX_EXECUTION_TIME , yang masing-masing sesuai dengan nilai PHP INI yang mungkin perlu disesuaikan jika Anda menggunakan kueri yang berjalan lama atau rumit.
Nilai sensitif, seperti PMA_HOST , PMA_PASSWORD , dan MYSQL_ROOT_PASSWORD , dapat disuntikkan menggunakan rahasia Docker alih-alih variabel lingkungan biasa. Tambahkan _FILE ke nama variabel, lalu atur nilainya ke jalur di dalam penampung yang memberikan nilai sebenarnya.
docker run -d --name phpmyadmin -e PMA_HOST_FILE=/run/secrets/pma_host -p 8080:80 phpmyadmin
Ringkasan
PHPMyAdmin adalah salah satu utilitas administrasi MySQL yang paling populer dan paling terkenal. Instalasi bare-metal menambahkan beberapa dependensi ke sistem Anda, menggabungkan Apache dan PHP di samping kode sumber aplikasi.
Menginstal PHPMyAdmin di Docker memberi Anda lingkungan terisolasi yang dapat dibuat, diganti, dan dihapus menggunakan beberapa perintah Docker CLI. Gambar resmi dapat terhubung ke server MySQL apa pun yang dapat diakses dari host Anda, termasuk database yang berjalan di wadah Docker lainnya.
Panduan lebih rinci tentang menjalankan dan menggunakan PHPMyAdmin dapat ditemukan di dokumentasi resmi. Sangat penting untuk meninjau panduan keamanan sehingga Anda tidak secara tidak sengaja meninggalkan database Anda dengan risiko serangan eksternal. Anda juga harus mempertimbangkan praktik terbaik keamanan Docker saat menerapkan PHPMyAdmin di dalam wadah yang terbuka ke dunia luar.