docker教程(5)--compose

来源:互联网 发布:自制搞笑视频软件 编辑:程序博客网 时间:2024/05/20 10:53

Docker Compose 概念

Docker Compose 是一个用来定义和运行复杂应用的Docker工具。使用Compose,你可以在一个文件中定义一个多容器应用,然后使用一条命令来启动你的应用。
一个使用Docker容器的应用,通常由多个容器组成。使用Docker Compose,不再需要使用shell脚本来启动容器。在配置文件中,所有的容器通过sevices来定义,然后使用docker-compose脚本来启动,停止和重启应用,和应用中的服务以及所有依赖服务的容器。

Docker Compose 安装

  1. mac:自带不需要独立安装
  2. linux:

    curl -L https://github.com/docker/compose/releases/download/1.3.1/docker-compose-`uname -s`-`uname -m` > /usr/local/bin/docker-composechmod +x /usr/local/bin/docker-compose

使用Docker Compose 安装ghost

Ghost 基于 JavasSript 的 Node.js 进行开发的一个开源的博客系统。

基本架构如下:

这里写图片描述

  1. 创建一个目录

    • ghost_compose 目录:mkdir ghost_compose && cd ghost_compose,多容器运行的主目录
    • nginx 目录:mkdir nginx,用来创建nginx容器,对应docker-compose.yml中的nginx服务
    • data 目录:不是用来创建mysql容器的,而是用来挂载mysql的存储 - 注意:mysql容器和ghost容器通过docker-compose.yml的镜像直接创建
  2. 创建 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    }}}
  3. 返回到ghost_compose目录

    • 创建 docker-compose.yml 文件,内容如下:
    version: '3.1'networks:    ghost:services:    ghost-app:        image: ghost        restart: always        networks:            - ghost        depends_on:            - db        ports:            - 2368:2368        environment:            database__client: mysql            database__connection__host: db            database__connection__user: root            database__connection__password: example            database__connection__database: ghost    nginx:        build: nginx        networks:            - ghost        depends_on:            - ghost-app        ports:            - "80:80"    db:        image: mysql:5.7.15        restart: always        networks:            - ghost        environment:            MYSQL_ROOT_PASSWORD: example            MYSQL_USER: root        volumes:            - $PWD/data:/var/lib/mysql        ports:            - "3306:3306"  
  4. 返回到ghost_compose目录,执行 docker-compose up -d

    打开浏览器:访问localhost:80,输出如下:

    这里写图片描述

Docker Compose 常用命令

命令 作用 build 构建或重建服务 help 命令帮助 kill 杀掉容器 logs 显示容器的输出内容 port 打印绑定的开放端口 ps 显示容器 pull 拉取服务镜像 restart 重启服务 rm 删除停止的容器 run 运行一个一次性命令 scale 设置服务的容器数目 start 开启服务 stop 停止服务 up 创建并启动容器