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文件中未定义服务的容器
    改命令十分强大,它将尝试自动完成包括镜像创建,(重新)

  • 相关阅读:
    WSP部署错误—SharePoint管理框架中的对象“SPSolutionLanguagePack Name=0”依赖其他不存在的对象
    Elevate Permissions To Modify User Profile
    Error with Stsadm CommandObject reference not set to an instance of an object
    ASP.NET MVC3添加Controller时没有Scaffolding options
    测试使用Windows Live Writer写日志
    配置TFS 2010出现错误—SQL Server 登录的安全标识符(SID)与某个指定的域或工作组帐户冲突
    使用ADO.NET DbContext Generator出现错误—Unable to locate file
    CSS
    HTML DIV标签
    数据库
  • 原文地址:https://www.cnblogs.com/Michael2397/p/7290948.html
Copyright © 2011-2022 走看看