學習python中django框架的小伙伴一定不能錯過本章節(jié)猎提,一定要認真學習manage命令的運用介紹。
一 安裝Docker
```python
# 安裝依賴
yum install -y yum-utils device-mapper-persistent-data lvm2
# 設(shè)置yum源
yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
# 安裝docker
yum install -y docker-ce
# 設(shè)置開機啟動
systemctl enable docker
# 啟動 Docker
systemctl start docker
# 查看版本
docker version
```
# 二 安裝Docker-compose
```python
# 下載
curl -L https://github.com/docker/compose/releases/download/1.26.2/docker-compose-$(uname -s)-$(uname -m) > /usr/bin/docker-compose
# 賦予執(zhí)行權(quán)限
chmod +x /usr/bin/docker-compose
# 查看版本
docker-compose --version
```
# 三 構(gòu)造目錄
```python
# 任意路徑下浪规,建目錄如下
blog???????????????????????# 目錄
????-docker-compose.yml??????# docker-compose配置文件
??-mysql.env???????????????# mysql配置文件
??-mysql???????????????????# mysql數(shù)據(jù),配置信息寥粹,日志所在目錄
??????-conf??????????????????# mysql配置文件目錄
????-data??????????????????# mysql數(shù)據(jù)目錄
????-logs??????????????????# mysql日志目錄
??-nginx
??????-default.conf??????????# nginx配置文件
??-php??
??????-Dockerfile????????????# php鏡像的dockerfile
??-www
??????-build?????????????????# Typecho的最新源碼迫摔,本文是1.1-17.10.30-release.tar.gz,更多版本官網(wǎng)下載汤踏,下載完解壓到該路徑即可(http://typecho.org/)
### 如果嫌自己制作麻煩织鲸,直接下載我創(chuàng)建好的即可舔腾,百度網(wǎng)盤
```
# 四 各文件配置詳情
## 4.1 docker-compose.yml
```python
version: "3"
services:
??nginx:
????image: nginx
????ports:
??????- "80:80"
????restart: always
????volumes:
??????- ./www/build:/var/www/html
??????- ./nginx:/etc/nginx/conf.d
????depends_on:
??????- php
????networks:
??????- web
??blog_php:
????build:
??????context: ./php
??????dockerfile: Dockerfile
????restart: always
????ports:
??????- "9000:9000"
????volumes:
??????- ./www/build:/var/www/html
????environment:
??????- TZ=Asia/Shanghai
????depends_on:
??????- mysql
????networks:
??????- web
??mysql:
????image: mysql:5.7
????restart: always
????ports:
??????- "3306:3306"
????env_file:
??????- mysql.env
????volumes:
??????- ./mysql/data:/var/lib/mysql
??????- ./mysql/logs:/var/log/mysql
??????- ./mysql/conf:/etc/mysql/conf.d
????networks:
??????- web
networks:
??web:
```
## 4.2 mysql.env
```python
MYSQL_ROOT_PASSWORD=lqz12345
MYSQL_DATABASE=blog
TZ=Asia/Shanghai
```
## 4.3 nginx/default.conf
```python
server {
????listen???????80;
????server_name liuqingzheng.com;
????root /var/www/html;
????index index.php;
????access_log /var/log/nginx/typecho_access.log main;
????location ~ .*\.php(\/.*)*$ {
????????fastcgi_pass???php:9000;
????????fastcgi_index??index.php;
????????fastcgi_param??PATH_INFO $fastcgi_path_info;
????????fastcgi_param??PATH_TRANSLATED $document_root$fastcgi_path_info;
????????fastcgi_param??SCRIPT_NAME $fastcgi_script_name;
????????fastcgi_param??SCRIPT_FILENAME $document_root$fastcgi_script_name;
????????include????????fastcgi_params;
????}
}
```
## 4.4 php/Dockerfile
```python
FROM php:7.3.29-fpm
MAINTAINER lqz
RUN apt-get update && docker-php-ext-install pdo_mysql && echo "output_buffering = 4096" > /usr/local/etc/php/conf.d/php.ini
```
## 4.5 www/build
```python
# 這里面就是typecho博客下載后解壓路徑
# 可以去官網(wǎng)下載最新 http://typecho.org/
```
# 五 啟動
```python
####### 如果嫌操作麻煩,直接下載搂擦,解壓稳诚,放在服務(wù)器的任意路徑下,再執(zhí)行如下命令#######
鏈接: https://pan.baidu.com/s/16hwzWvxlaS10Ui5PPsJ1dA?
提取碼: 7uqt 復(fù)制這段內(nèi)容后打開百度網(wǎng)盤手機App瀑踢,操作更方便哦?
##############
# 在blog目錄下執(zhí)行
docker-compose up -d
# 在瀏覽器中訪問 服務(wù)器地址
http://10.0.0.100/install.php
# 按照下圖一步步操作扳还,配置完成后,可以切換主題橱夭,主題網(wǎng)站為(https://typecho.me/)
```
# 六 后記
```python
# 不使用docker-compse也可以直接純docker運行
# 啟動mysql5.7
docker run -di -p 3306:3306 -e MYSQL_ROOT_PASSWORD=lqz12345 -v /blog/mysql/data:/var/lib/mysql -v /blog/mysql/logs:/var/log/mysql -v /blog/mysql/conf:/etc/mysql/conf.d --name mysql mysql:5.7
# 啟動php
docker run -di --name php --link=mysql -p 9000:9000 -v /soft/www:/var/www/html php:7.3.29-fpm
# 進入容器安裝mysql驅(qū)動
docker exec -it php /bin/bash
apt-get update?
docker-php-ext-install pdo_mysql
echo "output_buffering = 4096" > /usr/local/etc/php/conf.d/php.ini
# 啟動nginx
docker run -d -p 80:80 --name nginx -v /blog/build/:/var/www/html /blog/nginx:/etc/nginx/conf.d--link php --name nginx nginx
# 訪問即可
http://10.0.0.100/install.php
## 注意:
## 如果博客要遷移氨距,只需要把只需將整個 blog 目錄打包傳輸至安裝有 Docker 和 Docker Compose 的新服務(wù)器,然后重新編排容器即可
## 只要不刪除blog/mysql/data文件夾下的數(shù)據(jù)徘钥,博客的內(nèi)容就不會丟失衔蹲,重新啟動一個mysql容器即可
## 再啟動的mysql_new和mysql共享數(shù)據(jù)
docker run -di -p 3306:3306 -e MYSQL_ROOT_PASSWORD=lqz12345 -v /blog/mysql/data:/var/lib/mysql -v /blog/mysql/logs:/var/log/mysql -v /blog/mysql/conf:/etc/mysql/conf.d --name mysql_new mysql:5.7
```