一、準(zhǔn)備工作
在開始之前,請(qǐng)確保您的系統(tǒng)已經(jīng)安裝了Docker和Docker Compose。如果尚未安裝,可以參考以下命令進(jìn)行安裝:
# 安裝Docker
curl -fsSL https://get.docker.com | sh
sudo systemctl start docker
sudo systemctl enable docker
# 安裝Docker Compose
sudo curl -L "https://github.com/docker/compose/releases/download/1.29.2/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
sudo chmod +x /usr/local/bin/docker-compose
二、創(chuàng)建Docker Compose文件
我們將使用Docker Compose來管理WordPress和MySQL容器。創(chuàng)建一個(gè)名為docker-compose.yml
的文件:
version: '3.8'
services:
db:
image: mysql:5.7
volumes:
- db_data:/var/lib/mysql
restart: always
environment:
MYSQL_ROOT_PASSWORD: your_root_password
MYSQL_DATABASE: wordpress
MYSQL_USER: wordpress
MYSQL_PASSWORD: wordpress
networks:
- wordpress_network
wordpress:
depends_on:
- db
image: wordpress:latest
volumes:
- wordpress_data:/var/www/html
ports:
- "8000:80"
restart: always
environment:
WORDPRESS_DB_HOST: db:3306
WORDPRESS_DB_USER: wordpress
WORDPRESS_DB_PASSWORD: wordpress
WORDPRESS_DB_NAME: wordpress
networks:
- wordpress_network
volumes:
db_data:
wordpress_data:
networks:
wordpress_network:
三、啟動(dòng)WordPress容器
在包含docker-compose.yml
文件的目錄中運(yùn)行以下命令:
docker-compose up -d
這個(gè)命令會(huì):
- 下載MySQL和WordPress鏡像(如果本地沒有)
- 創(chuàng)建兩個(gè)容器并啟動(dòng)它們
- 設(shè)置網(wǎng)絡(luò)連接使兩個(gè)容器可以通信
四、配置WordPress
- 打開瀏覽器訪問
http://localhost:8000
(如果您修改了端口號(hào),請(qǐng)使用相應(yīng)的端口) - 按照WordPress安裝向?qū)瓿砂惭b:
- 選擇語言
- 設(shè)置站點(diǎn)標(biāo)題
- 創(chuàng)建管理員賬戶
- 完成安裝
五、數(shù)據(jù)庫配置詳解
在我們的Docker Compose文件中,數(shù)據(jù)庫配置部分有幾個(gè)關(guān)鍵參數(shù):
environment:
MYSQL_ROOT_PASSWORD: your_root_password # MySQL root用戶密碼
MYSQL_DATABASE: wordpress # 自動(dòng)創(chuàng)建的數(shù)據(jù)庫名
MYSQL_USER: wordpress # 自動(dòng)創(chuàng)建的數(shù)據(jù)庫用戶
MYSQL_PASSWORD: wordpress # 數(shù)據(jù)庫用戶密碼
WordPress容器通過以下環(huán)境變量連接到數(shù)據(jù)庫:
environment:
WORDPRESS_DB_HOST: db:3306 # 數(shù)據(jù)庫服務(wù)名和端口
WORDPRESS_DB_USER: wordpress # 數(shù)據(jù)庫用戶名
WORDPRESS_DB_PASSWORD: wordpress # 數(shù)據(jù)庫密碼
WORDPRESS_DB_NAME: wordpress # 數(shù)據(jù)庫名稱
六、常見問題解決
端口沖突:如果8000端口已被占用,可以修改
docker-compose.yml
中的端口映射,例如改為"8080:80"
數(shù)據(jù)庫連接問題:
- 確保
WORDPRESS_DB_HOST
的值是db:3306
(使用服務(wù)名而非IP) - 檢查所有密碼是否匹配
- 權(quán)限問題:
sudo chown -R $USER:$USER .
sudo chmod -R 755 .
- 查看日志:
docker-compose logs wordpress
docker-compose logs db
七、管理容器
- 停止服務(wù):
docker-compose down
- 啟動(dòng)服務(wù):
docker-compose up -d
- 查看運(yùn)行中的容器:
docker ps
- 進(jìn)入WordPress容器:
docker exec -it [container_id] bash
八、備份與恢復(fù)
- 備份數(shù)據(jù)庫:
docker exec [db_container_id] sh -c 'exec mysqldump --all-databases -uroot -p"$MYSQL_ROOT_PASSWORD"' > all-databases.sql
- 備份WordPress文件:
docker cp [wordpress_container_id]:/var/www/html ./wordpress-backup
- 恢復(fù):
- 數(shù)據(jù)庫:將備份文件復(fù)制到容器并導(dǎo)入
- 文件:將備份復(fù)制回容器
九、安全建議
- 修改默認(rèn)的數(shù)據(jù)庫密碼和用戶名
- 考慮添加SSL證書
- 定期更新容器鏡像:
docker-compose pull && docker-compose up -d
- 限制數(shù)據(jù)庫的外部訪問
通過以上步驟,您已經(jīng)成功使用Docker部署了WordPress并配置了數(shù)據(jù)庫。這種部署方式的優(yōu)勢(shì)在于環(huán)境隔離、易于遷移和版本控制,非常適合開發(fā)和測(cè)試環(huán)境使用。