使用 Docker Compose 管理多个容器实例

2019独角兽企业重金招聘Python工程师标准>>> hot3.png

说明

Docker Compose 是用来定义和运行复杂 docker 应用的编排工具。你可以在 docker-compose.yml 文件中定义一个或多个容器应用,以及他们的依赖关系、网络、构建等内容。

安装Docker Compose

详情参见官网

准备工作

随便找个地方,创建一个目录,如: ghost。后续所有操作均在此目录中进行。在创建 nginxghost 两个目录

nginx 配置

  • 在nginx目录中创建 Dockerfile 文件,内容如下:
FROM nginx
COPY nginx.conf /etc/nginx/nginx.conf
EXPOSE 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-alpine
COPY ./config.js /var/lib/ghost/config.js
EXPOSE 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 config
module.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 管理多个容器实例_第1张图片

启动应用

  • 执行命令:docker-compose up -d 会出现如下图内容,且不报错,则基本成功了。

  • 验证,浏览器地址栏输入: http://localhost:2368/,可以请问,且出现如下图,则成功启动服务:

  • 管理后台: http://localhost:2368/ghost,如下图,自行创建账号密码即可管理了。

使用 Docker Compose 管理多个容器实例_第2张图片

使用 Docker Compose 管理多个容器实例_第3张图片

转载于:https://my.oschina.net/who7708/blog/3005939

你可能感兴趣的:(使用 Docker Compose 管理多个容器实例)