zoukankan      html  css  js  c++  java
  • Docker Compose

    在 Docker 节点上,以单引擎模式(Single-Engine Mode)进行多容器应用的部署和管理。通过一个声明式的配置文件描述整个应用,从而使用一条命令完成部署。

    解析基于一个 YAML 文件定义多容器应用。

    查看版本:

    docker-compose --version

    如何定义:

    YAML文件来定义多服务的应用。YAML 是 JSON 的一个子集,因此也可以使用 JSON。

    YAML 文件包含四个一级Key

    version:version 是必须指定的,而且总是位于文件的第一行。

    services:用于定义不同的应用服务,Docker Compose 会将每个服务部署在各自的容器中(Docker Compose 会将每个服务部署为一个容器,并且会使用服务名 key 作为容器名字的一部分)

    networks:用于指引 Docker 创建新的网络。默认情况下,Docker Compose 会创建 bridge 网络(这是一种单主机网络,只能够实现同一主机上容器的连接)多个服务都连接到 counter-net 网络,因此它们可以通过名称解析到对方的地址。

    volumes:用于指引 Docker 来创建新的卷

    二级服务定义中包含如下指令:

    (1)build 指定 Docker 基于当前目录(.)下 Dockerfile 中定义的指令来构建一个新镜像。该镜像会被用于启动该服务的容器

    (2)command 执行的命令

    (3)ports 指定 Docker 将容器内(-target)的 80 端口映射到主机(published)的 8080 端口

    (4)volumes 指定 Docker 将 xxx 卷(source:)挂载到容器内的 /code(target:)

    (5)image 镜像会被从 Docker Hub 上拉取下来,基于指定镜像生成容器

    启动一个 Compose 应用

    docker-compose up  # 命令默认会查找  docker-compose.yml 或者 docker-compose.yaml。如果 Compose 文件是其他文件名,则需要通过 -f 参数来指定
    

      

    停止一个 Compose 应用

     docker-compose down / stop(停止但不删除)
    

      

    注意:创建的卷并没有删除。docker volume ls 可见该卷依然存在于系统中

    查看应用的状态

    docker-compose ps 
    

      

    删除相关容器和网络(不会删除卷和镜像)

    docker-compose rm
    

      

    compose 重启

    docker-compose restart
    

      

    举例:

    一个简单的应用示例,可能由4个服务构成,将这几个服务组织在一起就是一个应用

    • Web前端
    • 订单管理
    • 品类管理
    • 后台数据库
  • 相关阅读:
    SQLite无法使用drop column删除表字段解决办法
    Selenium之自动发送163邮件(转自https://www.cnblogs.com/zhang-da/p/12230415.html)
    frp 内网穿透
    smart.supor.com
    python colorama模块
    nohup和&后台运行,进程查看及终止
    Beef搭建并通过Nginx绑定域名
    How to Install Ruby on CentOS/RHEL 7/6
    Linux环境下安装python3
    启用IIS Express SSL(Https)的注意事项
  • 原文地址:https://www.cnblogs.com/winyh/p/14193689.html
Copyright © 2011-2022 走看看