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.