Rumah > pembangunan bahagian belakang > PHP7 > Bagaimana cara menggunakan Docker dengan Php 7?

Bagaimana cara menggunakan Docker dengan Php 7?

Karen Carpenter
Lepaskan: 2025-03-10 18:26:46
asal
190 orang telah melayarinya

Artikel ini menerangkan menggunakan Docker dengan PHP 7, yang meliputi penciptaan Dockerfile, bangunan imej, dan runtime kontena. Ia memperincikan amalan terbaik keselamatan (pengguna bukan akar, kemas kini ketergantungan, pengesahan input), pengurusan pelbagai perkhidmatan dengan docker comp

Bagaimana cara menggunakan Docker dengan Php 7?

Bagaimana cara menggunakan Docker dengan Php 7?

Menggunakan Docker dengan PHP 7 melibatkan membuat imej Docker yang mengandungi semua aplikasi PHP anda perlu dijalankan: PHP sendiri, pelayan web (seperti Apache atau Nginx), sambungan yang diperlukan, dan kod aplikasi anda. Inilah pecahan proses:

1. Buat Dockerfile : Fail ini mengandungi arahan untuk membina imej docker anda. Contoh asas menggunakan Apache mungkin kelihatan seperti ini:

 <code class="dockerfile">FROM php:7.4-apache # Install necessary PHP extensions RUN docker-php-ext-install pdo_mysql # Copy your application code COPY . /var/www/html # Expose the port Apache listens on EXPOSE 80</code>
Salin selepas log masuk

Dockerfile ini bermula dengan imej asas Php 7.4 termasuk Apache. Ia kemudian memasang lanjutan pdo_mysql (penting untuk interaksi pangkalan data) dan menyalin kod aplikasi anda ke dalam direktori yang betul. Akhirnya, ia mendedahkan port 80, menjadikan aplikasi anda boleh diakses dari luar bekas.

2. Bina imej Docker: Navigasi ke direktori yang mengandungi Dockerfile anda dan jalankan:

 <code class="bash">docker build -t my-php-app .</code>
Salin selepas log masuk

Perintah ini membina imej dan menandakannya sebagai my-php-app .

3. Jalankan bekas Docker: Selepas bangunan, jalankan bekas:

 <code class="bash">docker run -p 8080:80 -d my-php-app</code>
Salin selepas log masuk

Perintah ini menjalankan bekas dalam mod berkembar ( -d ), pemetaan port 8080 pada mesin tuan rumah anda ke port 80 di dalam bekas. Anda kini boleh mengakses permohonan anda di http://localhost:8080 . Ingatlah untuk menggantikan 8080 dengan port pilihan anda jika perlu. Anda mungkin perlu menyesuaikan ini berdasarkan persediaan khusus anda (contohnya, menggunakan Nginx dan bukannya Apache).

Apakah amalan terbaik untuk mendapatkan aplikasi PHP 7 yang dijalankan dalam bekas Docker?

Mengamankan aplikasi PHP 7 di Docker melibatkan pendekatan pelbagai lapisan:

  • Gunakan pengguna bukan akar: Menjalankan aplikasi anda sebagai pengguna bukan akar dalam bekas yang ketara mengehadkan kerosakan yang berpotensi daripada pelanggaran keselamatan. Dockerfile anda harus membuat dan beralih kepada pengguna bukan akar.
  • Pastikan kebergantungan anda dikemas kini: Kemas kini PHP, sambungan, dan sebarang kebergantungan lain untuk menampal kelemahan yang diketahui.
  • Selamatkan Sambungan Pangkalan Data Anda: Jangan Pernah Kelayakan Pangkalan Data Hardcode dalam Kod Aplikasi Anda. Gunakan pembolehubah persekitaran untuk menyimpan maklumat sensitif dan mengaksesnya dalam bekas.
  • Pengesahan input dan sanitisasi: Melaksanakan pengesahan input dan sanitisasi yang mantap untuk mencegah serangan suntikan (suntikan SQL, skrip lintas tapak, dll.).
  • Audit keselamatan tetap: Mengendalikan audit keselamatan berkala dan ujian penembusan untuk mengenal pasti dan menangani kelemahan.
  • Dayakan HTTPS: Sentiasa gunakan HTTPS untuk menyulitkan komunikasi antara aplikasi dan pelanggan anda. Ini memerlukan mengkonfigurasi pelayan web anda (Apache atau Nginx) untuk menggunakan sijil SSL/TLS.
  • Hadkan Akses Rangkaian: Hanya mendedahkan port yang diperlukan pada bekas. Hadkan akses ke pangkalan data anda dan perkhidmatan lain menggunakan firewall.
  • Gunakan imej asas yang selamat: Mulakan dengan imej asas yang terawat dengan baik dan selamat dari sumber yang dipercayai.
  • Secara kerap mengimbas imej untuk kelemahan: Gunakan alat seperti Clair atau Trivy untuk mengimbas imej docker anda untuk kelemahan yang diketahui.

Bolehkah saya menggunakan Docker Compose untuk menguruskan pelbagai perkhidmatan PHP 7 dalam satu aplikasi?

Ya, Docker Compose sangat sesuai untuk menguruskan pelbagai perkhidmatan dalam satu aplikasi. Sebagai contoh, anda mungkin mempunyai bekas yang berasingan untuk aplikasi PHP anda, pangkalan data (seperti MySQL atau PostgreSQL), barisan mesej (seperti RabbitMQ), dan cache Redis.

Fail docker-compose.yml akan menentukan setiap perkhidmatan:

 <code class="yaml">version: "3.9" services: web: build: ./web ports: - "8080:80" depends_on: - db db: image: mysql:8 environment: MYSQL_ROOT_PASSWORD: my-secret-password MYSQL_DATABASE: mydatabase MYSQL_USER: myuser MYSQL_PASSWORD: mypassword</code>
Salin selepas log masuk

Contoh ini menunjukkan perkhidmatan web (aplikasi PHP anda) dan perkhidmatan db (MySQL). Arahan depends_on memastikan pangkalan data bermula sebelum aplikasi web. Anda akan mempunyai Dockerfile yang berasingan untuk setiap perkhidmatan. Docker mengarang memudahkan pengurusan perkhidmatan yang saling berkaitan ini, memastikan mereka dimulakan, dihentikan, dan berskala bersama.

Apakah langkah penyelesaian masalah biasa untuk aplikasi PHP 7 yang digunakan menggunakan Docker?

Menyelesaikan masalah PHP 7 Aplikasi di Docker sering melibatkan memeriksa beberapa bidang:

  • Sahkan log permohonan: Periksa log di dalam bekas untuk mengenal pasti kesilapan atau amaran. Gunakan docker logs <container_id></container_id> untuk melihat log.
  • Semak status kontena: Gunakan docker ps untuk memeriksa sama ada bekas sedang berjalan dan docker inspect <container_id></container_id> untuk mendapatkan maklumat yang lebih terperinci mengenai keadaan dan konfigurasi kontena.
  • Periksa DockerFile: Pastikan Dockerfile dengan betul memasang sambungan yang diperlukan, menetapkan direktori kerja yang betul, dan salinan semua fail yang diperlukan.
  • Periksa konfigurasi rangkaian: Sahkan bahawa port dipetakan dengan betul di antara tuan rumah dan bekas dan bekas boleh mencapai perkhidmatan lain (pangkalan data, dll.). Gunakan docker network inspect bridge (atau nama rangkaian anda) untuk menyemak sambungan.
  • Semak pembolehubah persekitaran: Pastikan pembolehubah persekitaran ditetapkan dengan betul dalam bekas.
  • Membangun semula imej: Jika anda telah membuat perubahan pada kod aplikasi anda atau Dockerfile , membina semula imej untuk mencerminkan perubahan tersebut.
  • Gunakan debugger: Gunakan alat debugging seperti Xdebug untuk melangkah melalui kod anda dan mengenal pasti sumber kesilapan.
  • Pertimbangkan menggunakan imej asas yang lebih kecil: Imej asas yang terlalu besar boleh menyebabkan masa membina yang lebih perlahan dan peningkatan risiko keselamatan.

Ingatlah untuk berunding dengan dokumentasi Docker dan PHP rasmi untuk maklumat penyelesaian masalah yang lebih terperinci. Menyesuaikan langkah -langkah ini untuk mesej persediaan dan ralat khusus anda akan membantu anda menyelesaikan masalah dengan cekap.

Atas ialah kandungan terperinci Bagaimana cara menggunakan Docker dengan Php 7?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

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
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan