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前端
    • 订单管理
    • 品类管理
    • 后台数据库
  • 相关阅读:
    何为优秀的前端?
    CSS清除浮动的三个方法
    CSS3 速查手册
    高性能JavaScript
    chrome开发者工具使用
    AndroidJetpack数据处理之数据库Room和懒加载Paging
    AndroidJetpack Fragment之Navigation和ViewPager2
    第一行代码之菜单
    Day1
    1.16 24点游戏
  • 原文地址:https://www.cnblogs.com/winyh/p/14193689.html
Copyright © 2011-2022 走看看