使用docker部署php服務(wù)的詳細(xì)步驟
前言
前期準(zhǔn)備,服務(wù)器需要先安裝好docker、docker-compose,文章內(nèi)容不涉及如何安裝docker的相關(guān)內(nèi)容。
制作的內(nèi)容,使用nginx+php的新基礎(chǔ)鏡像部署php服務(wù),然后使用openresty做反向代理。
nginx+php的新基礎(chǔ)鏡像制作過程,可以參考之前的文章,地址如下:nginx+php的新基礎(chǔ)鏡像制作全過程_nginx_腳本之家 (jb51.net)
一、安裝openresty
1、創(chuàng)建openresty相關(guān)目錄,執(zhí)行如下命令。
mkdir -p /docker/openresty/{conf.d,logs,html,cert}
cd /docker/openresty/2、編寫yaml文件,內(nèi)容如下;version替換成自己的docker-compose版本。
vim docker-compose.yml
version: '2.2.2'
services:
openresty:
image: openresty/openresty
restart: unless-stopped
ports:
- "80:80"
- "443:443"
container_name: openresty
volumes:
- "./nginx.conf:/usr/local/openresty/nginx/conf/nginx.conf"
- "./conf.d:/usr/local/openresty/nginx/conf/conf.d"
- "./html:/usr/local/openresty/nginx/html"
- "./logs:/usr/local/openresty/nginx/logs"
- "./cert:/usr/local/openresty/nginx/cert"
networks:
- mynet
networks:
mynet:
name: mynet
driver: bridge3、編寫nginx配置,內(nèi)容如下。
vim nginx.conf
worker_processes 1;
error_log logs/error.log;
events {
worker_connections 1024;
}
http {
server {
listen 80;
location / {
default_type text/html;
content_by_lua_block {
ngx.say("<p>hello, ayzen!$</p>")
}
}
}
}4、啟動(dòng)openresty,執(zhí)行如下命令。
docker-compose up -d
5、檢查服務(wù)是否正常運(yùn)行,執(zhí)行如下命令。
docker-compose ps -a
返回如下內(nèi)容,說明服務(wù)已正常啟動(dòng),正在運(yùn)行。

6、檢查請(qǐng)求是否正常,執(zhí)行如下命令。
curl http://127.0.0.1
請(qǐng)求正常,會(huì)返回nginx配置的內(nèi)容,比如下面這樣。

7、至此openresty已部署完成,并且可以正常運(yùn)行響應(yīng)請(qǐng)求。
二、部署php服務(wù)
1、創(chuàng)建test1項(xiàng)目相關(guān)目錄,執(zhí)行如下命令。
mkdir -p /docker/test1/html cd /docker/test1/
2、編寫index.php文件,內(nèi)容如下。
vim html/index.php <?php echo "hello ayzen!this is test1!\r\n";
3、編寫yaml文件,內(nèi)容如下;version替換成自己的docker-compose版本。
vim docker-compose.yml
version: '2.2.2'
services:
web:
image: ayzen/nginx-php8.3.3
ports:
- "8081:80"
container_name: test1
command: ["/start.sh"]
volumes:
- "./html:/usr/local/nginx/html"
networks:
- mynet
networks:
mynet:
name: mynet
driver: bridge4、啟動(dòng)test1項(xiàng)目,執(zhí)行如下命令。
docker-compose up -d
5、檢查項(xiàng)目是否正常運(yùn)行,執(zhí)行如下命令。
docker-compose ps -a
返回如下內(nèi)容,說明項(xiàng)目已正常啟動(dòng),正在運(yùn)行。

6、檢查項(xiàng)目請(qǐng)求是否可以正常響應(yīng),執(zhí)行如下命令。
curl http://127.0.0.1:8081/index.php
請(qǐng)求正常會(huì)返回如下內(nèi)容。

7、至此test1項(xiàng)目已正常部署完成。
三、項(xiàng)目配置對(duì)外提供服務(wù)
1、前面的test1項(xiàng)目雖然可以正常提供服務(wù)了,但是也只限制與內(nèi)網(wǎng)當(dāng)中;如果需要對(duì)外提供服務(wù)需要加上openresty配合。
2、修改nginx配置增加域名請(qǐng)求,在http模塊增加server內(nèi)容如下。
server {
listen 80;
server_name test1.ayzen.cn;
location / {
proxy_pass http://test1;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
}3、重啟openresty,執(zhí)行如下命令。
docker-compose down && docker-compose up -d
4、域名解析,將test1.ayzen.cn指向服務(wù)器IP;此刻沒有域名的可以通過修改hosts實(shí)現(xiàn),執(zhí)行如下命令。
vim /etc/hosts #增加一行內(nèi)容如下 127.0.0.1 test1.ayzen.cn
5、驗(yàn)證請(qǐng)求是否可以正常代理到test1容器,執(zhí)行如下命令。
curl http://test1.ayzen.cn/index.php
如果請(qǐng)求正常返回如下內(nèi)容,說明配置已生效。

6、至此,代理配置已完成,test1可以正常對(duì)外提供服務(wù)了。
總結(jié)
如何使用docker部署php服務(wù),簡(jiǎn)單來說只需要三個(gè)步驟。
1、使用docker運(yùn)行openresty容器;
2、部署php服務(wù);
3、配置域名;
因?yàn)檠菔镜脑颍琾hp項(xiàng)目只有一個(gè)index.php文件。在使用過程中可以替換成真正的項(xiàng)目代碼。
到此這篇關(guān)于使用docker部署php服務(wù)的詳細(xì)步驟的文章就介紹到這了,更多相關(guān)docker部署php服務(wù)內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
docker將鏡像打包為.tar包實(shí)現(xiàn)方法
使用tar包格式進(jìn)行壓縮,方便在不同的docker主機(jī)之間進(jìn)行遷移和備份,下面這篇文章主要給大家介紹了關(guān)于docker將鏡像打包為.tar包的實(shí)現(xiàn)方法,需要的朋友可以參考下2024-07-07
Docker實(shí)現(xiàn)進(jìn)入容器內(nèi)部的方法
這篇文章主要介紹了Docker實(shí)現(xiàn)進(jìn)入容器內(nèi)部的方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2024-01-01
Dockerfile中ENTRYPOINT 和 CMD的區(qū)別說明
這篇文章主要介紹了Dockerfile中ENTRYPOINT 和 CMD的區(qū)別說明,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2020-11-11
在Docker中的ubuntu中安裝Python3和Pip的問題
這篇文章主要介紹了在Docker中的ubuntu中安裝Python3和Pip的問題,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2021-02-02
如何解決安裝docker的yum工具時(shí)報(bào)錯(cuò)問題
在安裝Docker時(shí)遇到y(tǒng)um工具錯(cuò)誤可通過更新yum源解決,先卸載舊Docker,備份原yum源,下載新的CentOS-Base.repo文件到指定目錄,安裝yum工具后,配置Docker的yum源,國內(nèi)用戶建議使用aliyun源以避免訪問異常,安裝并啟動(dòng)Docker,校驗(yàn)是否成功2024-09-09
Docker從0到1實(shí)現(xiàn)項(xiàng)目編排部署
Docker編排是管理和協(xié)調(diào)多個(gè)Docker容器的工具和技術(shù),目的是簡(jiǎn)化容器的部署、擴(kuò)展和管理流程,本文主要介紹了Docker從0到1實(shí)現(xiàn)項(xiàng)目編排部署,感興趣的可以了解一下2025-03-03
解決Docker Desktop運(yùn)行一直轉(zhuǎn)問題
遇到Docker啟動(dòng)報(bào)錯(cuò)、Docker Desktop運(yùn)行不正常等問題,常見解決方案包括以管理員身份運(yùn)行CMD,重啟Docker服務(wù),恢復(fù)Docker Desktop出廠設(shè)置,啟用Windows功能等,最終通過運(yùn)行cmd命令"netsh winsock reset"解決問題,但需注意此操作可能導(dǎo)致Docker鏡像丟失2024-09-09
Docker部署Node.js的實(shí)現(xiàn)示例
本文介紹了在服務(wù)器上使用Docker部署Node.js項(xiàng)目,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2024-12-12

