zoukankan      html  css  js  c++  java
  • docker三剑客之一docker compose

    compose有两个重要的概念:

    服务(service):一个应用的容器,实际上可以包括若干运行相同镜像的容器实例

    项目(project):由一组关联的应用容器组成的一个完整业务单元,在docker-compose.yml文件中定义

    compose默认管理对象是项目,通过子命令对项目中的一组容器进行便捷地生命周期管理

    安装

    pip安装,下载编译好的二进制文件,直接运行在docker容器中三种方案:

    pip安装:

    apt-get install python-pip -y

    pip install -U docker-compose

    安装后,可以添加bash补全命令:

    curl -L https://raw.githubusercontent.com/docker/compose/1.1.0/contrib/completion/bash/docker-compose > /etc/bash_completion.d/docker-compose

    卸载:

    pip uninstall docker-compose

    Compose命令说明

    大多数Compose命令都是运行于一个或多个服务的,如果服务没有指定,该命令将会作用到项目,即应用到所有服务

     
    build
    Usage: build [options] [SERVICE...]
    
    Options:
    --force-rm  Always remove intermediate containers.
    --no-cache  Do not use cache when building the image.
    --pull      Always attempt to pull a newer version of the image.
    当修改dockerfile或者docker-compose时,运行docker-compose build 重建镜像。  生成镜像后,可使用docker-compose up启动
    kill 
    通过发送SIGKILL的信号强制停止运行的容器,这个信号可以选择性的通过,比如: 
    docker-compose kill -s SIGKINT
    logs
    Usage: logs [options] [SERVICE...]
    
    Options:
    --no-color          单色输出,不显示其他颜.
    -f, --follow        跟踪日志输出,就是可以实时查看日志
    -t, --timestamps    显示时间戳
    --tail              从日志的结尾显示,--tail=200
    显示日志输出.
    pause
    Usage: pause [SERVICE...]
    暂停容器服务. docker-compose pause  暂停所有服务. docker-compose pause web,之后暂停web服务的容器。
    port
    Usage: port [options] SERVICE PRIVATE_PORT
    
    Options:
    --protocol=proto  tcp or udp [default: tcp]
    --index=index     index of the container if there are multiple
                      instances of a service [default: 1]
    输出服务的共有端口.
    # docker-compose port web 8080   -- 8080为容器内部端口
    0.0.0.0:8884
    ps
    Usage: ps [options] [SERVICE...]
    
    Options:
    -q    只显示ID
    显示容器. 默认显示name、command、state、ports
    pull
    Usage: pull [options] [SERVICE...]
    
    Options:
    --ignore-pull-failures  忽略pull失败的镜像,继续pull其他镜像.
    pull compose文件中所指明的镜像.
    restart
    Usage: restart [options] [SERVICE...]
    
    Options:
    -t, --timeout TIMEOUT      Specify a shutdown timeout in seconds. (default: 10)
    Restarts services.
    rm
    Usage: rm [options] [SERVICE...]
    
    Options:
        -f, --force   Don't ask to confirm removal
        -v            期初加载到容器的任何匿名卷
        -a, --all     Also remove one-off containers created by
                      docker-compose run
    Removes stopped service containers. 如果服务在运行,需要先docker-compose stop 停止容器
    run
    Usage: run [options] [-e KEY=VAL...] SERVICE [COMMAND] [ARGS...]
    
    Options:
     -d                   后台运行,输出容器名.
    -e KEY=VAL            设置环境变量参数,可以使用多次
    -u, --user=""         指定运行的用户
    --no-deps             不启动link服务,只启动run的服务.
    --rm                  运行后删除容器,后台运行模式除外(-d).
    -p, --publish=[]      开放端口
    --service-ports       compose文件中配置什么端口,就映射什么端口.
    -T                    禁用TTY.
    -w, --workdir=""      设置工作目录
    启动web服务器,并执行bash命令.
    
    $ docker-compose run web bash
    根据compose配置文件制定的端口,映射到主机:
    $ docker-compose run --service-ports web python manage.py shell
    指定端口映射到主机:
    $ docker-compose run --publish 8080:80 -p 2022:22 -p 127.0.0.1:2021:21 web python manage.py shell
    scale
    Usage: scale [SERVICE=NUM...]
    设置服务的个数.
    $ docker-compose scale web=2 worker=3
    start
    Usage: start [SERVICE...]
    启动服务.
    stop
    Usage: stop [options] [SERVICE...]
    
    Options:
    -t, --timeout TIMEOUT     关闭超时时间 (default: 10).
    停止容器.
    unpause
    Usage: unpause [SERVICE...]
    恢复容器服务. docker-compose unpause  恢复所有服务. docker-compose unpause web,之后恢复web服务的容器。
    up
    Usage: up [options] [SERVICE...]
    
    Options:
        -d                         后台运行,输出容器的名字.
                                   Incompatible with --abort-on-container-exit.
        --no-color                  单色输出.
        --no-deps                  不启动link服务.
        --force-recreate           强制重新创建compose服务,即使没有任何改变。重新创建后启动容器
                                   Incompatible with --no-recreate.
        --no-recreate               如果容器已经存在,不重新创建.
                                   Incompatible with --force-recreate.
        --no-build                 不创建重启,即使镜像不存在.
        --build                    重新创建镜像,然后生成容器.
        --abort-on-container-exit  任何容器停止,自动停止所有容器.
                                   Incompatible with -d.
        -t, --timeout TIMEOUT      超时时间. (default: 10)
        --remove-orphans           移除compose文件中未定义服务的容器
    改命令十分强大,它将尝试自动完成包括镜像创建,(重新)

  • 相关阅读:
    JavaEE——Struts(1)--Filter作为MVC的控制器 配置Struts2环境
    折叠菜单--实现左边目录,右边显示
    转载--竖向折叠菜单
    pest错误笔记
    JavaWeb--JQuery中的$(function())
    codeforces 440C. One-Based Arithmetic 解题报告
    codeforces 399B. Red and Blue Balls 解题报告
    codeforces 445B. DZY Loves Chemistry 解题报告
    2013级新生程序设计基础竞赛-正式赛 F 异或最大值 解题报告
    codeforces 441C. Valera and Tubes 解题报告
  • 原文地址:https://www.cnblogs.com/Michael2397/p/7290948.html
Copyright © 2011-2022 走看看