说明
Docker Compose 是用来定义和运行复杂 docker 应用的编排工具。你可以在 docker-compose.yml
文件中定义一个或多个容器应用,以及他们的依赖关系、网络、构建等内容。
安装Docker Compose
准备工作
随便找个地方,创建一个目录,如: ghost。后续所有操作均在此目录中进行。在创建 nginx
,ghost
两个目录
nginx 配置
- 在nginx目录中创建
Dockerfile
文件,内容如下:
FROM nginxCOPY nginx.conf /etc/nginx/nginx.confEXPOSE 80
- 再创建
nginx.conf
配置文件,内容如下:
worker_processes 4;events { worker_connections 1024;}http { server { listen 80; location / { proxy_pass http://ghost-app:2368; } }}
mysql 配置
- 在ghost目录中创建
Dockerfile
文件,内容如下:
FROM ghost:1-alpineCOPY ./config.js /var/lib/ghost/config.jsEXPOSE 2368
- 再创建
config.js
配置文件,内容如下:
var path = require('path'), config;config = { production: { url: 'http://my-ghost-blog.com', mail: {}, database: { client: 'mysql', connection: { host: 'db', // docker-compose.yml 文件中定义的services名字: db user: 'ghost', password: '12345', database: 'ghost', port: '3306', charset: 'utf8' }, debug: false }, paths: { contentPath: path.join(process.env.GHOST_CONTENT, '/') }, server: { host: '0.0.0.0', port: '2368' }, }}// Export configmodule.exports = config;
最后编写 docker-compose.yml
内容包含了,mysql数据库,nginx,ghost轻博客。具体如下:
version: '3' # compose文件的版本号networks: blog:services: ghost-app: # 主机名或服务名 build: ghost restart: always networks: - blog depends_on: # 依赖关系 - db ports: # 与宿主机端口映射关系 - "2368:2368" nginx: build: nginx networks: - blog depends_on: - ghost-app ports: - "8089:80" db: image: "mysql:5.7.15" networks: - blog environment: MYSQL_ROOT_PASSWORD: mysqlroot MYSQL_USER: ghost MYSQL_PASSWORD: 12345 volumes: - $PWD/data:/var/lib/mysql ports: - "3307:3306"
最终的目录结构如下:
启动应用
- 执行命令:
docker-compose up -d
会出现如下图内容,且不报错,则基本成功了。
- 验证,浏览器地址栏输入:
http://localhost:2368/
,可以请问,且出现如下图,则成功启动服务:
- 管理后台:
http://localhost:2368/ghost
,如下图,自行创建账号密码即可管理了。