Tajuk: Melaksanakan sambungan kontena untuk aplikasi PHP menggunakan Docker Compose, Nginx dan MariaDB
Dengan perkembangan teknologi kontena, semakin ramai pembangun mula menggunakan Docker untuk membina dan mengurus persekitaran aplikasi. Dalam artikel ini, kami akan mengambil aplikasi PHP sebagai contoh untuk menunjukkan cara menggunakan Docker Compose, Nginx dan MariaDB untuk menskalakan persekitaran kontena.
Docker Compose ialah alat yang disediakan secara rasmi oleh Docker untuk mentakrif dan mengurus gabungan berbilang bekas. Nginx ialah pelayan HTTP berprestasi tinggi dan pelayan proksi terbalik, manakala MariaDB ialah sistem pengurusan pangkalan data hubungan sumber terbuka.
Pertama, kita perlu mencipta fail yang dipanggil docker-compose.yml untuk mentakrif dan mengkonfigurasi bekas yang diperlukan. Dalam fail ini, kami akan menggunakan tiga perkhidmatan: web, db dan phpmyadmin.
version: '3' services: web: image: nginx:latest ports: - "80:80" volumes: - ./app:/var/www/html - ./config/nginx:/etc/nginx/conf.d depends_on: - php networks: - app-network db: image: mariadb:latest environment: - MYSQL_ROOT_PASSWORD=password - MYSQL_DATABASE=app_database - MYSQL_USER=app_user - MYSQL_PASSWORD=password volumes: - ./data:/var/lib/mysql networks: - app-network phpmyadmin: image: phpmyadmin/phpmyadmin:latest links: - db:db ports: - "8080:80" environment: - PMA_HOST=db - MYSQL_ROOT_PASSWORD=password networks: - app-network networks: app-network: driver: bridge
Dalam fail ini, kami mentakrifkan tiga perkhidmatan. Perkhidmatan web menggunakan pencerminan Nginx dan memetakan port 80 hos ke port 80 bekas. volumes menentukan memetakan direktori ./app pada hos ke direktori /var/www/html bekas (kod aplikasi pada hos akan diletakkan dalam direktori ./app), dan memetakan direktori ./config/nginx pada hos Peta ke direktori /etc/nginx/conf.d bekas (digunakan untuk mengkonfigurasi Nginx). depends_on menyatakan bahawa perkhidmatan web bergantung pada permulaan perkhidmatan php. networks mentakrifkan rangkaian yang dipanggil app-network untuk menyambungkan ketiga-tiga perkhidmatan ini ke rangkaian yang sama.
Perkhidmatan db menggunakan imej MariaDB dan menentukan beberapa pembolehubah persekitaran melalui persekitaran, seperti kata laluan akar, nama pangkalan data, pengguna dan kata laluan. volume memetakan direktori ./data pada hos ke direktori /var/lib/mysql bekas (untuk kegigihan data).
Perkhidmatan phpmyadmin menggunakan imej phpmyadmin, dan menentukan sambungan kepada perkhidmatan db melalui pautan, dan menentukan pemetaan port 8080 hos ke port kontena 80 melalui port. persekitaran menentukan beberapa pembolehubah persekitaran, seperti hos pangkalan data dan kata laluan akar.
Seterusnya, kita perlu mencipta direktori dan fail yang sepadan pada hos. Dalam terminal, laksanakan arahan berikut:
mkdir app mkdir config/nginx mkdir data
Kemudian, letakkan kod aplikasi dalam direktori aplikasi dan buat fail konfigurasi Nginx bernama default.conf dalam direktori config/nginx. Fail konfigurasi ini akan dipetakan ke direktori /etc/nginx/conf.d bekas.
Kini, kita boleh mulakan bekas. Dalam terminal, laksanakan arahan berikut:
docker-compose up -d
Arahan ini akan mencipta dan memulakan semua bekas dan menjalankannya di latar belakang. Anda boleh menggunakan arahan ps docker untuk melihat semua bekas yang sedang berjalan.
Akhir sekali, akses http://localhost melalui penyemak imbas, dan anda boleh melihat hasil berjalan aplikasi PHP dalam bekas. Anda juga boleh mengakses phpMyAdmin di http://localhost:8080 untuk mengurus pangkalan data MariaDB.
Pada ketika ini, kami telah berjaya melaksanakan sambungan kontena untuk aplikasi PHP menggunakan Docker Compose, Nginx dan MariaDB. Dengan Docker Compose, kami boleh mentakrif dan mengurus berbilang bekas dengan mudah, manakala Nginx dan MariaDB menyediakan kami perkhidmatan yang cekap dan boleh dipercayai.
Saya harap artikel ini dapat membantu anda dan membolehkan anda memahami dan menggunakan teknologi Docker dengan lebih baik. Selamat berprogram!
Atas ialah kandungan terperinci Penskalaan kontena untuk aplikasi PHP menggunakan Docker Compose, Nginx dan MariaDB. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!