Langkah -langkah untuk membekalkan dan menggunakan aplikasi Yii dengan Docker termasuk: 1. Buat Dockerfile dan tentukan proses bangunan imej; 2. Gunakan Docker untuk melancarkan aplikasi YII dan pangkalan data MySQL; 3. Mengoptimumkan saiz dan prestasi imej. Ini melibatkan bukan sahaja operasi teknikal tertentu, tetapi juga memahami prinsip kerja dan amalan terbaik Dockerfile untuk memastikan penggunaan yang cekap dan boleh dipercayai.
Pengenalan
Dalam pembangunan perisian moden, teknologi kontena telah menjadi bahagian yang sangat diperlukan, terutamanya untuk rangka kerja PHP seperti YII, Docker menyediakan cara yang cekap dan boleh dipercayai untuk menggunakan dan mengurus aplikasi. Hari ini kami akan meneroka cara yang mendalam bagaimana menggunakan Docker untuk membekalkan dan menggunakan aplikasi YII. Melalui artikel ini, anda akan belajar bagaimana untuk membina aplikasi Yii berasaskan Docker dari awal, memahami langkah-langkah utama dan amalan terbaik, sementara juga mengelakkan beberapa perangkap biasa.
Semak pengetahuan asas
Sebelum kita mula, mari kita mengkaji semula konsep asas Yii dan Docker. YII adalah rangka kerja PHP berprestasi tinggi yang memberi tumpuan kepada pembangunan aplikasi web moden, sementara Docker adalah platform kontena yang membolehkan pemaju untuk membungkus aplikasi dan kebergantungan mereka ke dalam bekas mudah alih. Memahami kedua -dua teknologi ini adalah langkah pertama dalam aplikasi kontena kami yang berjaya.
Bagi Yii, kita perlu tahu bagaimana ia mengendalikan permintaan, bagaimana ia mengkonfigurasi, dan bagaimana ia menguruskan kebergantungan. Bagi Docker, kita perlu memahami penulisan Dockerfile, pembinaan imej, dan operasi dan pengurusan bekas.
Konsep teras atau analisis fungsi
Kontena aplikasi Yii
Inti aplikasi YII yang terkandung adalah untuk membuat Dockerfile, yang mentakrifkan cara membina imej Docker yang mengandungi aplikasi Yii dan semua kebergantungan mereka. Mari lihat contoh Dockerfile yang mudah:
# Gunakan imej PHP rasmi sebagai asas dari PHP: 7.4-fpm # Pasang pelanjutan PHP yang diperlukan oleh YII Run Docker-PhP-Ext-Pdo PDO_MYSQL # Tetapkan Direktori Kerja Workdir/Var/www/html # Salin Composer.Json dan Composer.Lock Salin composer.json composer.lock ./ # Pemasangan Ketergantungan Run Composer Pemasangan --No-Scripts-No-Autoloader # Salin salinan kod aplikasi. . # Menjana komposer run file autoload dump-autoload-optimize # Port Expose Expose 9000 # Mula PHP-FPM CMD ["PHP-FPM"]
Dockerfile ini menunjukkan bagaimana untuk memulakan dengan imej PHP asas, pasang sambungan yang diperlukan, sediakan direktori kerja, pasang kebergantungan aplikasi Yii, dan akhirnya memulakan perkhidmatan PHP-FPM.
Bagaimana ia berfungsi
Dockerfile berfungsi dengan menentukan cara membina imej melalui satu siri arahan. Setiap arahan mencipta lapisan baru semasa proses bangunan imej, yang akhirnya menggabungkan ke dalam imej lengkap. Memahami peranan dan susunan arahan ini adalah kunci kerana mereka menentukan saiz dan prestasi imej akhir.
Sebagai contoh, arahan RUN
digunakan untuk melaksanakan arahan, arahan COPY
digunakan untuk menyalin fail, dan arahan WORKDIR
digunakan untuk menetapkan direktori kerja. Perintah arahan ini sangat penting kerana ia mempengaruhi penggunaan cache dan membina masa.
Contoh penggunaan
Penggunaan asas
Mari kita lihat fail Docker asas untuk melancarkan aplikasi Yii dan pangkalan data MySQL:
Versi: '3' Perkhidmatan: App: Membina :. Pelabuhan: - "8080: 80" Jilid: -.:/var/www/html bergantung_on: - db DB: Imej: MySQL: 5.7 Persekitaran: Mysql_root_password: root Mysql_database: yii Mysql_user: yii Mysql_password: yii
Fail ini mentakrifkan dua perkhidmatan: Satu adalah aplikasi Yii kami dan yang lain adalah pangkalan data MySQL. Dengan depends_on
, kami pastikan pangkalan data sudah siap sebelum aplikasi bermula.
Penggunaan lanjutan
Untuk senario yang lebih kompleks, kita boleh menggunakan pelbagai peringkat membina untuk mengoptimumkan saiz imej. Berikut adalah contoh membina pelbagai peringkat Dockerfile:
# Dari komposer: 2.0 sebagai binaan Workdir /App Salin composer.json composer.lock ./ Jalankan Pemasangan Komposer-NO-SCRIPTS --NO-AUTOLOADER Salin. . Jalankan Komposer Dump-Autoload-Mengoptimumkan # Fasa berjalan dari PHP: 7.4-fpm Workdir/var/www/html Salin -dari binaan/app/vendor/var/www/html/vendor Salin -dari binaan/apposer.json /var/www/html/composer.json Salin -dari binaan/binaan /p/composer.lock /var/www/html/composer.lock Salin. . Jalankan Docker-PHP-Ext-memasang PDO PDO_MYSQL Dedahkan 9000 CMD ["PHP-FPM"]
Dockerfile ini menggunakan dua peringkat: satu untuk membina dan memasang kebergantungan, dan yang lain untuk menjalankan aplikasi. Dengan cara ini, kita dapat mengurangkan saiz imej terakhir kerana hanya fail yang diperlukan untuk disalin.
Kesilapan biasa dan tip debugging
Kesalahan biasa apabila aplikasi YII kontena termasuk isu kebenaran fail, kegagalan pemasangan pergantungan, dan isu sambungan pangkalan data. Berikut adalah beberapa petua debug:
- Isu Kebenaran Fail : Pastikan pengguna dalam bekas Docker mempunyai kebenaran yang mencukupi untuk mengakses fail aplikasi. Anda boleh menggunakan Arahan
USER
untuk menubuhkan pengguna dalam bekas. - Pemasangan Ketergantungan Gagal : Semak fail
composer.json
untuk memastikan semua kebergantungan dikonfigurasi dengan betul. Gunakan arahancomposer diagnose
untuk mendiagnosis masalah. - Isu Sambungan Pangkalan Data : Pastikan perkhidmatan pangkalan data telah bermula dan maklumat sambungan pangkalan data dalam fail konfigurasi adalah betul. Anda boleh menggunakan arahan
docker logs
untuk melihat log kontena dan mengetahui masalahnya.
Pengoptimuman prestasi dan amalan terbaik
Dalam aplikasi praktikal, sangat penting untuk mengoptimumkan prestasi aplikasi YII berasaskan Docker. Berikut adalah beberapa cadangan pengoptimuman:
- Pengoptimuman Saiz Cermin : Gunakan membina pelbagai peringkat untuk mengurangkan saiz imej. Kurangkan saiz imej asas, seperti menggunakan versi
alpine
imej PHP. - Penggunaan cache : Buat penggunaan rasional mekanisme caching Docker untuk mengelakkan pembinaan semula yang tidak perlu. Sebagai contoh, tempat yang sering menukar fail di hujung fail Docker.
- Pengurusan Sumber : Gunakan pilihan
resources
Docker Compose untuk mengehadkan CPU dan penggunaan memori bekas dan mencegah penyalahgunaan sumber.
Apabila menulis Dockerfile dan Docker menyusun fail, adalah penting untuk memastikan kod itu boleh dibaca dan dikekalkan. Gunakan komen untuk mentafsirkan arahan yang kompleks, gunakan nama perkhidmatan yang bermakna dan nama pembolehubah untuk memastikan ahli pasukan dapat memahami dan mengekalkan kod dengan mudah.
Melalui artikel ini, kita bukan sahaja belajar cara menggunakan Docker untuk membekalkan dan menggunakan aplikasi YII, tetapi juga mendapat pemahaman yang mendalam tentang prinsip dan amalan terbaik. Semoga pengetahuan ini dapat membantu anda menggunakan Docker dan Yii dengan lebih cekap dalam projek -projek sebenar.
Atas ialah kandungan terperinci Yii dengan Docker: Containerizing dan Menggunakan Aplikasi Anda. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

docker中rm和rmi的区别:rm命令用于删除一个或者多个容器,而rmi命令用于删除一个或者多个镜像;rm命令的语法为“docker rm [OPTIONS] CONTAINER [CONTAINER...]”,rmi命令的语法为“docker rmi [OPTIONS] IMAGE [IMAGE...]”。

docker官方镜像有:1、nginx,一个高性能的HTTP和反向代理服务;2、alpine,一个面向安全应用的轻量级Linux发行版;3、busybox,一个集成了三百多个常用Linux命令和工具的软件;4、ubuntu;5、PHP等等。

docker对于小型企业、个人、教育和非商业开源项目来说是免费的;2021年8月31日,docker宣布“Docker Desktop”将转变“Docker Personal”,将只免费提供给小型企业、个人、教育和非商业开源项目使用,对于其他用例则需要付费订阅。

docker容器重启后数据会丢失的;但是可以利用volume或者“data container”来实现数据持久化,在容器关闭之后可以利用“-v”或者“–volumes-from”重新使用以前的数据,docker也可挂载宿主机磁盘目录,用来永久存储数据。

docker能安装oracle。安装方法:1、拉取Oracle官方镜像,可以利用“docker images”查看镜像;2、启动容器后利用“docker exec -it oracle11g bash”进入容器,并且编辑环境变量;3、利用“sqlplus /nolog”进入oracle命令行即可。

AUFS是docker最早支持的存储引擎。AUFS是一种Union File System,是文件级的存储驱动,是Docker早期用的存储驱动,是Docker18.06版本之前,Ubuntu14.04版本前推荐的,支持xfs、ext4文件。

解决方法:1、停止docker服务后,利用“rsync -avz /var/lib/docker 大磁盘目录/docker/lib/”将docker迁移到大容量磁盘中;2、编辑“/etc/docker/daemon.json”添加指定参数,将docker的目录迁移绑定;3、重载和重启docker服务即可。

容器管理ui工具有:1、Portainer,是一个轻量级的基于Web的Docker管理GUI;2、Kitematic,是一个GUI工具,可以更快速、更简单的运行容器;3、LazyDocker,基于终端的一个可视化查询工具;4、DockStation,一款桌面应用程序;5、Docker Desktop,能为Docker设置资源限制,比如内存,CPU,磁盘镜像大小;6、Docui。


Alat AI Hot

Undresser.AI Undress
Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover
Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool
Gambar buka pakaian secara percuma

Clothoff.io
Penyingkiran pakaian AI

AI Hentai Generator
Menjana ai hentai secara percuma.

Artikel Panas

Alat panas

EditPlus versi Cina retak
Saiz kecil, penyerlahan sintaks, tidak menyokong fungsi gesaan kod

VSCode Windows 64-bit Muat Turun
Editor IDE percuma dan berkuasa yang dilancarkan oleh Microsoft

ZendStudio 13.5.1 Mac
Persekitaran pembangunan bersepadu PHP yang berkuasa

MantisBT
Mantis ialah alat pengesan kecacatan berasaskan web yang mudah digunakan yang direka untuk membantu dalam pengesanan kecacatan produk. Ia memerlukan PHP, MySQL dan pelayan web. Lihat perkhidmatan demo dan pengehosan kami.

SublimeText3 versi Cina
Versi Cina, sangat mudah digunakan
