Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Penskalaan kontena untuk aplikasi PHP menggunakan Docker Compose, Nginx dan MariaDB

Penskalaan kontena untuk aplikasi PHP menggunakan Docker Compose, Nginx dan MariaDB

WBOY
WBOYasal
2023-10-12 11:06:12860semak imbas

使用Docker Compose、Nginx和MariaDB实现PHP应用程序的容器扩展

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!

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