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文件中未定义服务的容器
改命令十分强大,它将尝试自动完成包括镜像创建,(重新)
posted on 2017-08-05 17:54 Michael2397 阅读(...) 评论(...) 编辑 收藏