zoukankan      html  css  js  c++  java
  • docker-compose小结

    个人学习笔记,谢绝转载!!!

    原文:https://www.cnblogs.com/wshenjin/p/13260485.html


    安装

    # pip install docker-compose
    # docker-compose --version
    docker-compose version 1.26.2, build unknown
    

    常用命令

    命令格式

    docker-compose [-f <arg>...] [options] [COMMAND] [ARGS...]
    选项:
    -f --file FILE         指定Compose模板文件,默认为当前目录docker-compose.yml
    -p --project-name NAME 指定项目名称,默认使用当前所在目录为项目名
    --log-level LEVEL      定义日志等级(DEBUG, INFO, WARNING, ERROR, CRITICAL)
    -v,-version           打印版本并退出
    --verbose              输出更多调试信息
    
    docker-compose up
    docker-compose up [options] [--scale SERVICE=NUM...] [SERVICE...]
    
    选项:
    -d, --detach                 后台运行
    --no-color                   不是有颜色来区分不同的服务的控制输出
    --no-deps                    不启动服务所链接的容器
    --force-recreate             强制重新创建容器,不能与-no-recreate同时使用
    --no-recreate                如果容器已经存在,则不重新创建,不能与–force-recreate同时使用
    --build                      在启动容器前构建服务镜像
    --abort-on-container-exit    停止所有容器,如果任何一个容器被停止,不能与-d同时使用
    -t, –-timeout TIMEOUT        停止容器时候的超时(默认为10秒)
    --remove-orphans             删除服务中没有在compose文件中定义的容器
    --no-start                   Don't start the services after creating them.
    --no-build                   Don't build an image, even if it's missing.
    

    举例:

    [root@ ]# docker-compose -f docker-compose.yml up -d 
    Creating project_01_slave_1  ... done
    Creating project_01_redis_1  ... done
    Creating project_01_master_1 ... done
    
    docker-compose stop

    停止正在运行的容器

    docker-compose stop [options] [SERVICE...]
    

    选项:
    -t, –-timeout TIMEOUT 停止容器时候的超时(默认为10秒)

    举例:

    [root@ ]# docker-compose -f project_01/docker-compose.yml stop redis 
    Stopping mysql_replication_redis_1 ... done
    
    docker-compose start

    启动已经存在的服务容器

    docker-compose start [SERVICE...]
    

    举例:

    [root@ ]# docker-compose -f docker-compose.yml start redis 
    Starting redis ... done
    
    docker-compose restart

    重启已经存在的服务容器

    docker-compose restart [SERVICE...]
    

    选项:
    -t, –timeout TIMEOUT 停止容器时候的超时(默认为10秒)

    举例:

    [root@ ]# docker-compose -f docker-compose.yml restart redis 
    Restarting mysql_replication_redis_1 ... done
    
    docker-compose ps

    列出项目中的容器

    docker-compose  ps [options] [SERVICE...]
    

    举例:

    [root@ ]# docker-compose -f docker-compose.yml  ps -a
               Name                         Command                  State        Ports  
    -------------------------------------------------------------------------------------
    project_01_master_1   /mysql_init.sh /usr/local/ ...   Up (healthy)   3306/tcp
    project_01_redis_1    /redis_entrypoint.sh             Up (healthy)   6001/tcp
    project_01_slave_1    /mysql_init.sh /usr/local/ ...   Up (healthy)   3306/tcp
    
    docker-compose down

    停用并移除所有容器,包括网络、卷、镜像

    docker-compose down [options]
    
    选项:
    –-rmi type        删除镜像,类型必须是:all,删除compose文件中定义的所有镜像;local,删除镜像名为空的镜像
    -v, –volumes      删除已经在compose文件中定义的和匿名的附在容器上的数据卷
    --remove-orphans  删除服务中没有在compose中定义的容器
    

    举例:

    [root@ ]# docker-compose  -f docker-compose.yml down --rmi all 
    Stopping project_01_rdb_01_1 ... done
    Stopping project_01_rdb_02_1 ... done
    Removing project_01_rdb_01_1 ... done
    Removing project_01_rdb_02_1 ... done
    Removing network project_01_default
    Removing image rdb-v3.2.7_01
    Removing image rdb-v3.2.7_02
    
    docker-compose build

    构建项目中的服务容器

    docker-compose build [options] [--build-arg key=val...] [SERVICE...]
    
    选项:
    --compress               通过gzip压缩构建上下环境
    --force-rm               删除构建过程中的临时容器
    --no-cache               构建镜像过程中不使用缓存
    --pull                   始终尝试通过拉取操作来获取更新版本的镜像
    -m, –-memory MEM         为构建的容器设置内存大小
    --build-arg key=val      为服务设置build-time变量
    

    举例:

    [root@ ]# cat docker-compose.yml  
    version: '3'
    
    services:
      rdb_01:
        image: rdb-v3.2.7_01
        build: ./redis3.2.7/
      rdb_02:
        image: rdb-v3.2.7_02
        build: ./redis3.2.7/
    
    #只build rdb_01
    [root@ ]# docker-compose -f docker-compose.yml build rdb_01 
    
    #只启动rdb_01
    [root@ ]# docker-compose -f docker-compose.yml up -d rdb_01
    Creating network "project_01_default" with the default driver
    Creating project_01_rdb_01_1 ... done
    
    docker-compose kill

    向容器发送信号

    docker-compose kill [options] [SERVICE...]
    

    支持通过-s参数来指定发送的信号,例如通过如下指令发送SIGINT信号:
    docker-compose kill -s SIGINT

    栗子:

    [root@ ]# docker-compose -f docker-compose.yml ps -a 
           Name                 Command                  State            Ports  
    -----------------------------------------------------------------------------
    project_01_rdb_01_1   /redis_entrypoint.sh   Up (health: starting)   6001/tcp
    project_01_rdb_02_1   /redis_entrypoint.sh   Up (health: starting)   6001/tcp
    [root@ ]# docker-compose -f docker-compose.yml kill -s SIGTERM rdb_02        
    Killing project_01_rdb_02_1 ... done
    [root@ ]# docker-compose -f docker-compose.yml ps -a 
           Name                 Command             State        Ports  
    --------------------------------------------------------------------
    project_01_rdb_01_1   /redis_entrypoint.sh   Up (healthy)   6001/tcp
    project_01_rdb_02_1   /redis_entrypoint.sh   Exit 0  
    
    docker-compose pause

    暂停一个服务容器

    docker-compose pause [SERVICE...]
    
    docker-compose uppause

    恢复处于暂停状态中的服务

    docker-compose unpause [SERVICE...]
    
    docker-compose scale

    设置指定服务运行的容器个数。通过service=num的参数来设置数量

    docker-compose scale web=3 db=2
    
    docker-compose exec

    进入容器

    docker-compose exec [options] SERVICE COMMAND [ARGS...]
    
    选项:
    -d, --detach         分离模式,后台运行命令。
    --privileged         获取特权。
    -u, --user USER      指定运行的用户。
    -T                   禁用分配TTY,默认docker-compose exec分配TTY
    -e, --env KEY=VAL    设置环境变量
     -w, --workdir DIR   Path to workdir directory for this command.(not supported in API < 1.25)
    --index=index        当一个服务拥有多个容器时,可通过该参数登陆到该服务下的任何服务,例如:docker-compose exec –index=1 web /bin/bash ,web服务中包含多个容器
    
  • 相关阅读:
    Centos 7 zabbix 实战应用
    Centos7 Zabbix添加主机、图形、触发器
    Centos7 Zabbix监控部署
    Centos7 Ntp 时间服务器
    Linux 150命令之查看文件及内容处理命令 cat tac less head tail cut
    Kickstart 安装centos7
    Centos7与Centos6的区别
    Linux 150命令之 文件和目录操作命令 chattr lsattr find
    Linux 发展史与vm安装linux centos 6.9
    Linux介绍
  • 原文地址:https://www.cnblogs.com/wshenjin/p/13260485.html
Copyright © 2011-2022 走看看