docker教程(5)--compose

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-compose
    chmod +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 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
        }
    }
    }
  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创建并启动容器
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值