欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

docker教程(5)--compose

程序员文章站 2022-03-04 21:07:46
...

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 进行开发的一个开源的博客系统。

基本架构如下:

docker教程(5)--compose

  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教程(5)--compose

Docker Compose 常用命令

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