介紹
app名稱:ghost,是一個博客平臺程序
安裝之后,可自己寫文章或別人發布
架構:nginx-ghost app-mysql
分別分為三個容器
docker.yml文件
ghost-app:
build: ghost
depends_on:
- db
ports:
- "2368:2368"
nginx:
build: nginx
ports:
- "80:80"
depends_on:
- ghost-app
db:
images: "mysql:5.7.15"
docker-compose.yml命令
build:本地創建鏡像
command:覆蓋缺省命令
depends_on:連接容器
ports:暴露端口
volumes:掛載卷組
image:拉取鏡像
docker-composer命令
up:啟動服務
stop:停止服務
rm:刪除服務中的各個容器
logs:觀察各個容器中的日志
ps:列出服務相關的容器
整體實戰
```
mkdir ghost
cd ghost
mkdir ghost
mkdir nginx
mkdir data
// ghost鏡像構建
cd ghost
touch Dockerfile
vim Dockerfile
FROM ghost
COPY ./config.js /var/lib/ghost/config.js
EXPOSE 2368
CMD ["npm","start","--production"]
// 依賴ghost官方鏡像
// 拷貝本地配置文件到鏡像中
// 聲明暴露服務的端口
// 執行啟動命令。ghost為node.js程序,所以使用npm命令
touch config.js
vim config.js
var path = require('path'),
config;
config = {
production: {
url:'http://mytestblog.com',
mail: {},
database: {
client: 'mysql',
connection: {
host: 'db',
user: 'ghost',
password: 'ghost',
database: 'ghost',
port: '3306',
charset: 'utf8'
},
debug: false
},
paths: {
contentPath: path.join(process.env.GHOST_CONTENT,'/')
},
server: {
host: '0.0.0.0',
port: '2368'
}
}
};
module.exports = config;
// nginx鏡像構建
cd nginx
touch Dockerfile
vim Dockerfile
FROM nginx
COPY nginx.conf /etc/nginx/nginx.conf
EXPOSE 80
// 依賴nginx官方鏡像
// 拷貝本地配置文件到鏡像中
// 聲明暴露服務的端口
touch nginx.conf
vim nginx.conf
worker processes 4;
events {worker_connections 1024;}
http {
server {
listen 80;
location / {
proxy_pass http://ghost-app:2368;
}
}
}
```
回到ghost根路徑
ls顯示
ghost:存放Dockerfile和配置文件用來構建鏡像
nginx:存放Dockerfile和配置文件用來構建鏡像
data:存放博客的數據
// compose文件用于描述整個系統的架構
```
touch docker-compose.yml
vim docker-compose.yml
version: '2'
networks:
ghost:
service:
ghost-app:
build: ghost
networks: ghost
depends_on: db
ports: "2368:2368"
nginx:
build: nginx
networks: ghost
depends_on: ghost-app
ports: "80:80"
db:
image: "mysql:5.7.15"
networks: ghost
environment:
MYSQL_ROOT_PASSWORD: mysqlroot
MYSQL_USER: ghost
MYSQL_PASSWORD: ghost
volumes: $PWD/data:/var/lib/mysql
ports: "3306:3306"
docker-compose up -d
啟動
docker-compose stop
關閉
docker-compose rm
刪除
docker-compose build
構建
訪問http://localhost/ghost
```