cari
Rumahpembangunan bahagian belakangtutorial phpCara menggunakan Docker untuk menggunakan dan mengurus aplikasi PHP
Cara menggunakan Docker untuk menggunakan dan mengurus aplikasi PHPAug 02, 2023 pm 07:37 PM
dockermengerahkanmengurus

Cara menggunakan Docker untuk menggunakan dan mengurus aplikasi PHP

Pengenalan:
Dalam era pengkomputeran awan hari ini, teknologi kontena menjadi semakin popular. Sebagai peneraju di kalangan mereka, Docker telah menjadi penyelesaian kontena yang dipilih oleh kebanyakan pembangun. Artikel ini akan memperkenalkan anda kepada cara menggunakan Docker untuk menggunakan dan mengurus aplikasi PHP supaya anda boleh membangunkan dan menyampaikan aplikasi anda dengan lebih cekap.

1. Pasang Docker dan Docker Compose
Pertama, kita perlu memasang Docker dalam persekitaran setempat. Sila pasang mengikut dokumentasi rasmi mengikut versi sistem pengendalian anda: https://docs.docker.com/install/

Selepas pemasangan selesai, kami juga perlu memasang Docker Compose, yang boleh membantu kami mengurus aplikasi yang mengandungi berbilang program kontena. Begitu juga, anda boleh mendapatkan arahan pemasangan untuk sistem pengendalian anda dalam dokumentasi rasmi: https://docs.docker.com/compose/install/

2. Cipta imej Docker
Sebelum menggunakan aplikasi PHP, kita perlu mencipta Imej Docker yang mengandungi persekitaran yang diperlukan. Untuk melakukan ini, kita perlu mencipta fail yang dipanggil Dockerfile di mana kita menentukan langkah-langkah untuk membina imej. Dockerfile的文件,在其中定义构建镜像的步骤。

下面是一个示例的Dockerfile

# 使用一个基础的PHP镜像
FROM php:7.4-apache

# 安装所需的PHP扩展
RUN docker-php-ext-install pdo_mysql

# 将应用程序复制到工作目录
COPY . /var/www/html

# 设置Apache配置文件
COPY apache.conf /etc/apache2/sites-available/000-default.conf

# 设置Apache的DocumentRoot
RUN sed -ri -e 's!/var/www/html!/var/www/html/public!g' /etc/apache2/sites-available/000-default.conf

# 设置Apache访问权限
RUN chown -R www-data:www-data /var/www/html
RUN a2enmod rewrite

# 设置环境变量
ENV APACHE_DOCUMENT_ROOT=/var/www/html/public

# 暴露容器的端口
EXPOSE 80

# 启动Apache服务器
CMD ["apache2-foreground"]

以上的Dockerfile使用php:7.4-apache作为基础镜像,安装了pdo_mysql扩展,将应用程序复制到容器的指定目录中,设置Apache配置文件,启用了rewrite模块,并将DocumentRoot设置为应用程序的public目录。

三、编写Docker Compose文件
接下来,我们需要编写一个Docker Compose文件,该文件用于定义和管理多个容器的运行和交互。

下面是一个示例的docker-compose.yml文件:

version: '3'
services:
  app:
    build:
      context: .
      dockerfile: Dockerfile
    ports:
      - 8080:80
    volumes:
      - .:/var/www/html
    depends_on:
      - db
  db:
    image: mysql:5.7
    environment:
      MYSQL_ROOT_PASSWORD: secret
      MYSQL_DATABASE: mydatabase
      MYSQL_USER: myuser
      MYSQL_PASSWORD: mypassword

以上的docker-compose.yml文件定义了两个服务:appdbapp服务使用了我们之前创建的Docker镜像,将容器的80端口映射到本地的8080端口,并将当前目录挂载到容器的/var/www/html目录下。db服务使用了MySQL的官方镜像,设置了数据库的root密码、数据库名和用户密码。

四、启动容器
在命令行中,进入项目的根目录,执行以下命令来启动容器:

$ docker-compose up -d

其中,-d参数表示在后台启动容器。

五、访问应用
在容器启动后,我们可以通过浏览器访问http://localhost:8080来查看应用程序。如果一切正常,您将看到您的PHP应用程序。

六、管理容器
使用Docker Compose,我们可以轻松管理和操作多个容器。

以下是一些常用的命令:

  • 启动容器:docker-compose up -d
  • 关闭容器:docker-compose down
  • 查看容器状态:docker-compose ps
  • 查看容器日志:docker-compose logs
  • Berikut ialah contoh Dockerfile:
rrreee

Dockerfile di atas menggunakan php:7.4-apache sebagai imej asas dan memasang pdo_mysql, menyalin aplikasi ke direktori bekas yang ditentukan, menetapkan fail konfigurasi Apache, mendayakan modul penulisan semula dan menetapkan DocumentRoot ke direktori public aplikasi.

3 Tulis fail Docker Compose🎜Seterusnya, kita perlu menulis fail Docker Compose, yang digunakan untuk mentakrifkan dan mengurus jalan dan interaksi berbilang bekas. 🎜🎜Berikut ialah contoh fail docker-compose.yml: 🎜rrreee🎜Fail docker-compose.yml di atas mentakrifkan dua perkhidmatan: app dan <code>db. Perkhidmatan app menggunakan imej Docker yang kami buat sebelum ini, memetakan port kontena 80 ke port tempatan 8080 dan melekapkan direktori semasa ke /var/www/html code> bekas. direktori. Perkhidmatan <code>db menggunakan imej rasmi MySQL dan menetapkan kata laluan akar, nama pangkalan data dan kata laluan pengguna pangkalan data. 🎜🎜4 Mulakan bekas🎜Dalam baris arahan, masukkan direktori akar projek dan laksanakan arahan berikut untuk memulakan bekas: 🎜rrreee🎜Antaranya, parameter -d menunjukkan permulaan bekas di latar belakang. 🎜🎜5 Akses aplikasi🎜Selepas bekas dimulakan, kita boleh melihat aplikasi dengan mengakses http://localhost:8080 melalui penyemak imbas. Jika semuanya baik-baik saja, anda akan melihat aplikasi PHP anda. 🎜🎜6 Uruskan Bekas🎜Menggunakan Docker Compose, kami boleh mengurus dan mengendalikan berbilang kontena dengan mudah. 🎜🎜Berikut ialah beberapa arahan yang biasa digunakan: 🎜
  • Mulakan bekas: docker-compose up -d🎜
  • Tutup bekas: docker-compose down 🎜<li>Lihat status kontena: <code>docker-compose ps🎜
  • Lihat log kontena: docker-compose log🎜🎜🎜VII🎜VII Docker dan Docker Compose, kami boleh menggunakan dan mengurus aplikasi PHP dengan lebih mudah. Dengan membungkus aplikasi dan persekitaran ke dalam bekas, kami memastikan aplikasi berjalan secara konsisten merentasi persekitaran yang berbeza dan lebih mudah untuk skala dan dihantar. Semoga artikel ini dapat memberi anda pengetahuan dan panduan asas tentang menggunakan dan mengurus aplikasi PHP dengan Docker. Saya doakan anda berjaya menggunakan Docker untuk membangunkan dan menyampaikan aplikasi anda. 🎜

Atas ialah kandungan terperinci Cara menggunakan Docker untuk menggunakan dan mengurus aplikasi PHP. 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
docker中rm和rmi有什么区别docker中rm和rmi有什么区别Jul 14, 2022 am 11:02 AM

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

docker官方镜像有哪些docker官方镜像有哪些May 12, 2022 pm 02:23 PM

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

docker容器重启后数据会丢吗docker容器重启后数据会丢吗Jun 17, 2022 am 10:41 AM

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

docker是免费的吗docker是免费的吗Jul 08, 2022 am 11:21 AM

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

docker能安装oracle吗docker能安装oracle吗Jul 08, 2022 pm 04:07 PM

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

docker存储空间不足怎么办docker存储空间不足怎么办Jul 22, 2022 pm 03:44 PM

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

什么是docker最早支持的存储引擎什么是docker最早支持的存储引擎May 12, 2022 pm 03:27 PM

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

docker容器管理ui有哪些docker容器管理ui有哪些May 11, 2022 pm 03:39 PM

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

See all articles

Alat AI Hot

Undresser.AI Undress

Undresser.AI Undress

Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover

AI Clothes Remover

Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool

Undress AI Tool

Gambar buka pakaian secara percuma

Clothoff.io

Clothoff.io

Penyingkiran pakaian AI

AI Hentai Generator

AI Hentai Generator

Menjana ai hentai secara percuma.

Alat panas

Dreamweaver CS6

Dreamweaver CS6

Alat pembangunan web visual

SecLists

SecLists

SecLists ialah rakan penguji keselamatan muktamad. Ia ialah koleksi pelbagai jenis senarai yang kerap digunakan semasa penilaian keselamatan, semuanya di satu tempat. SecLists membantu menjadikan ujian keselamatan lebih cekap dan produktif dengan menyediakan semua senarai yang mungkin diperlukan oleh penguji keselamatan dengan mudah. Jenis senarai termasuk nama pengguna, kata laluan, URL, muatan kabur, corak data sensitif, cangkerang web dan banyak lagi. Penguji hanya boleh menarik repositori ini ke mesin ujian baharu dan dia akan mempunyai akses kepada setiap jenis senarai yang dia perlukan.

Pelayar Peperiksaan Selamat

Pelayar Peperiksaan Selamat

Pelayar Peperiksaan Selamat ialah persekitaran pelayar selamat untuk mengambil peperiksaan dalam talian dengan selamat. Perisian ini menukar mana-mana komputer menjadi stesen kerja yang selamat. Ia mengawal akses kepada mana-mana utiliti dan menghalang pelajar daripada menggunakan sumber yang tidak dibenarkan.

EditPlus versi Cina retak

EditPlus versi Cina retak

Saiz kecil, penyerlahan sintaks, tidak menyokong fungsi gesaan kod

mPDF

mPDF

mPDF ialah perpustakaan PHP yang boleh menjana fail PDF daripada HTML yang dikodkan UTF-8. Pengarang asal, Ian Back, menulis mPDF untuk mengeluarkan fail PDF "dengan cepat" dari tapak webnya dan mengendalikan bahasa yang berbeza. Ia lebih perlahan dan menghasilkan fail yang lebih besar apabila menggunakan fon Unicode daripada skrip asal seperti HTML2FPDF, tetapi menyokong gaya CSS dsb. dan mempunyai banyak peningkatan. Menyokong hampir semua bahasa, termasuk RTL (Arab dan Ibrani) dan CJK (Cina, Jepun dan Korea). Menyokong elemen peringkat blok bersarang (seperti P, DIV),