Docker?Compose搭建Wordpress服務(wù)實(shí)現(xiàn)詳解
前言
最近在研究wordpress
獨(dú)立建站,在項(xiàng)目部署的時(shí)候也踩了一些坑,為了避免再次踩坑,特此通過(guò)此文章記錄一下。
編寫(xiě)docker-compose.yaml
此次建站采用的是docker compose
的方式來(lái)部署wordpress
項(xiàng)目,我們可以進(jìn)入DockerHub官網(wǎng)找到wordpress
鏡像:
根據(jù)官方文檔提供的信息,最終我們可以編寫(xiě)出如下docker-compose.yaml
:
version: "3.1" services: wordpress: image: wordpress:php8.2-apache restart: always ports: - "80:80" depends_on: - mysql environment: WORDPRESS_DB_HOST: mysql-server WORDPRESS_DB_USER: 數(shù)據(jù)庫(kù)用戶名 WORDPRESS_DB_PASSWORD: 數(shù)據(jù)庫(kù)密碼 WORDPRESS_DB_NAME: 數(shù)據(jù)庫(kù)名稱 WORDPRESS_TABLE_PREFIX: wp_ volumes: - "/usr/share/zoneinfo/Asia/Shanghai:/etc/localtime" #設(shè)置系統(tǒng)時(shí)區(qū) - "/usr/share/zoneinfo/Asia/Shanghai:/etc/timezone" #設(shè)置時(shí)區(qū) - "./wordpress/html:/var/www/html" mysql-server: image: "mysql" volumes: - "/usr/share/zoneinfo/Asia/Shanghai:/etc/localtime" #設(shè)置系統(tǒng)時(shí)區(qū) - "/usr/share/zoneinfo/Asia/Shanghai:/etc/timezone" #設(shè)置時(shí)區(qū) # 配置文件 - "./mysql/conf:/etc/mysql/conf.d" # 數(shù)據(jù)文件 - "./mysql/datadir:/var/lib/mysql" # 日志文件 - "./mysql/logs:/logs" ports: - "3306:3306" restart: always environment: MYSQL_ROOT_PASSWORD: 數(shù)據(jù)庫(kù)密碼 command: --default-authentication-plugin=mysql_native_password
注意點(diǎn)
鏡像的選擇
在DockerHub官網(wǎng)
中,我們可以看到有很多不同版本的鏡像,比如php8.2-fpm-alpine
、fpm-alpine
、cli-php8.2
、php8.2-apache
等等,我們最終要選擇的是帶有web服務(wù)
的鏡像,也就是類(lèi)似`php8.2-apache
版本號(hào),后面接-apache
的tag
;
如果選擇的鏡像不帶web服務(wù)
,那么即使容器啟動(dòng)成功了,瀏覽器訪問(wèn)的時(shí)候也是不會(huì)有響應(yīng)結(jié)果的;
另外一點(diǎn)就是不要選擇默認(rèn)的latest
,如果鏡像版本有更新,可能會(huì)造成線上版本不兼容的問(wèn)題;
環(huán)境變量的配置
從官方文檔來(lái)看,是建議我們?cè)谂渲弥型ㄟ^(guò)環(huán)境變量的方式來(lái)配置目標(biāo)數(shù)據(jù)庫(kù)的;即使不配置目標(biāo)數(shù)據(jù)庫(kù),在項(xiàng)目啟動(dòng)后的安裝引導(dǎo)上也會(huì)提示我們配置數(shù)據(jù)庫(kù),但是可能會(huì)出現(xiàn)無(wú)法訪問(wèn)localhost
的情況;
在上述配置中,WORDPRESS_DB_HOST
的配置我們使用的是mysql
,它對(duì)應(yīng)同一個(gè)網(wǎng)絡(luò)環(huán)境下的mysql
實(shí)例,只有當(dāng)wordpress
實(shí)例與mysql
實(shí)例在同一個(gè)網(wǎng)絡(luò)環(huán)境下時(shí),這樣配置才會(huì)生效。否則我們需要通過(guò)公網(wǎng)ip或者域名來(lái)指定WORDPRESS_DB_HOST
。
WORDPRESS_TABLE_PREFIX
代表【數(shù)據(jù)表前綴】,可以根據(jù)需要設(shè)定;
volumes配置
我們?cè)诘谝淮蝿?chuàng)建wordpress
實(shí)例時(shí),還不能配置"./wordpress/html:/var/www/html"
這個(gè)映射。我們需要先創(chuàng)建一個(gè)wordpress
實(shí)例,然后通過(guò)docker cp
命令從wordpress
實(shí)例中拷貝/var/www/html
文件到宿主機(jī),上述配置"./wordpress/html:/var/www/html"
就是我們把文件拷貝到宿主機(jī)的./wordpress/html
下才添加的映射。
這樣做的好處在于,如果我們的代碼有任何的修改,都不會(huì)因?yàn)?code>wordpress宕機(jī)造成已經(jīng)修改的源代碼丟失;
以上就是Docker Compose搭建Wordpress服務(wù)實(shí)現(xiàn)詳解的詳細(xì)內(nèi)容,更多關(guān)于Docker Compose搭建Wordpress的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!
相關(guān)文章
Docker安裝MySQL并使用Navicat連接的使用示例
在Docker里運(yùn)行MySQL的方式還是很方便的,本文主要介紹了Docker安裝MySQL并使用Navicat連接的使用示例,具有一定的參考價(jià)值,感興趣的可以了解一下2023-10-10詳解docker容器硬盤(pán)動(dòng)態(tài)擴(kuò)容
本篇文章主要介紹了詳解docker容器硬盤(pán)動(dòng)態(tài)擴(kuò)容,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2017-04-04使用dockercompose搭建springboot-mysql-nginx應(yīng)用
這篇文章主要介紹了使用dockercompose搭建springboot-mysql-nginx應(yīng)用,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2019-03-03基于jib-maven-plugin插件快速構(gòu)建微服務(wù)docker鏡像的方法
這篇文章主要介紹了基于jib-maven-plugin快速構(gòu)建微服務(wù)docker鏡像的方法,對(duì)于?Java?程序來(lái)說(shuō)使用?jib-maven-plugin?插件來(lái)構(gòu)建鏡像還是非常方便的,本文通過(guò)實(shí)例代碼詳細(xì)講解,需要的朋友可以參考下2023-02-02解決docker安裝完成報(bào):bridge-nf-call-iptables is disabled問(wèn)題
這篇文章主要介紹了解決docker安裝完成報(bào):bridge-nf-call-iptables is disabled問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2020-11-11基于Docker的PHP調(diào)用基于Docker的Mysql數(shù)據(jù)庫(kù)
Docker 是一個(gè)開(kāi)源的應(yīng)用容器引擎,自從接觸docker以來(lái),一直想建立基于Docker的PHP調(diào)用基于Docker的Mysql數(shù)據(jù)庫(kù),下面通過(guò)本文給大家介紹下,感興趣的朋友參考下2016-11-11win7下docker安裝與報(bào)錯(cuò)問(wèn)題的解決方法
這篇文章主要為大家詳細(xì)介紹了win7下docker安裝與報(bào)錯(cuò)問(wèn)題的解決方法,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2017-06-06