介绍
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
```