青00 (一起学Java)

青00 (一起学Java)

前言

【云原生丨Docker系列10】Docker Compose的命令操作-LMLPHP

Docker Compose的命令操作详解

对于 Compose 来说,⼤部分命令的对象既可以是项⽬本身,也可以指定为项⽬中的服务或者容器。 如果没有特别的说明,命令对象将是项⽬,这意味着项⽬中所有的服务都会受到命令影响

执⾏docker-compose [COMMAND] --help或者docker-compose help [COMMAND]可以查看具体某个命令的使⽤格式。

docker-compose 命令的基本的使⽤格式是:

docker-compose [-f=<arg>...] [options] [COMMAND] [ARGS...]

命令选项


build 格式为:

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

 构建(重新构建)项⽬中的服务容器:服务容器⼀旦构建后,将会带上⼀个标记名,例如对于 web 项⽬中的⼀个 db 容器,可能是 web_db

可以随时在项⽬⽬录下运⾏ docker-compose build 来重新构建服务。选项包括:


config: 验证 Compose ⽂件格式是否正确,若正确则显示配置,若格式错误显示错误原因。

down:此命令将会停⽌ up 命令所启动的容器,并移除⽹络

exec:进⼊指定的容器。

help:获得⼀个命令的帮助。

images:列出 Compose ⽂件中包含的镜像。


kill:格式为docker-compose kill [options] [SERVICE...]。通过发送 SIGKILL 信号来强制停⽌服务容器。⽀持通过 -s 参数来指定发送的信号,例如通过如下指令发送 SIGINT 信号。

$ docker-compose kill -s SIGINT

logs:格式为docker-compose logs [options] [SERVICE...],查看服务容器的输出。默认情况下, docker-compose 将对不同的服务输出使⽤不同的颜⾊来区分。可以通过 --no-color 来关闭颜⾊。该 命令在调试问题的时候⼗分有⽤。


pause:格式为docker-compose pause [SERVICE...],暂停⼀个服务容器。


port:格式为docker-compose port [options] SERVICE PRIVATE_PORT,打印某个容器端⼝所映射的公共端⼝。选项:


ps:格式为docker-compose ps [options] [SERVICE...],列出项⽬中⽬前的所有容器。选项:


pull:格式为 docker-compose pull [options] [SERVICE...] ,拉取服务依赖的镜像。选项:


push:推送服务依赖的镜像到 Docker 镜像仓库。


restart:格式为docker-compose restart [options] [SERVICE...],重启项⽬中的服务。选项:


rm:格式为docker-compose rm [options] [SERVICE...],删除所有(停⽌状态的)服务容器。推荐先执⾏ docker-compose stop 命令来停⽌容器。选项:


run:格式为docker-compose run [options] [-p PORT...] [-e KEY=VAL...] SERVICE [COMMAND]

[ARGS...],在指定服务上执⾏⼀个命令。例如:

$ docker-compose run ubuntu ping docker.com 

将会启动⼀个 ubuntu 服务容器,并执⾏ ping docker.com 命令。默认情况下,如果存在关联,则所有关联的服务将会⾃动被启动,除⾮这些服务已经在运⾏中。

该命令类似启动容器后运⾏指定的命令,相关卷、链接等等都将会按照配置⾃动创建。

给定命令将会覆盖原有的⾃动运⾏命令; 不会⾃动创建端⼝,以避免冲突。


如果不希望⾃动启动关联的容器,可以使⽤ --no-deps 选项,例如:

$ docker-compose run --no-deps web python manage.py shell

将不会启动 web 容器 所关联的其它容器,选项:


scale:格式为docker-compose scale [options] [SERVICE=NUM...],设置指定服务运⾏的容器个数。

通过 service=num 的参数来设置数量。例如:

$ docker-compose scale web=3 db=2

将启动 3 个容器运⾏ web 服务,2 个容器运⾏ db 服务


⼀般的,当指定数⽬多于该服务当前实际运⾏容器,将新创建并启动容器;反之,将停⽌容器。选项:


start:格式为docker-compose start [SERVICE...],启动已经存在的服务容器。


stop:格式为docker-compose stop [options] [SERVICE...], 停⽌已经处于运⾏状态的容器,但不删除它。通过 docker-compose start 可以再次启动这些容器。选项:


top:查看各个服务容器内运⾏的进程。

unpause:格式为docker-compose unpause [SERVICE...],恢复处于暂停状态中的服务。


up:格式为docker-compose up [options] [SERVICE...],该命令⼗分强⼤,它将尝试⾃动完成包括构 建镜像,(重新)创建服务,启动服务,并关联服务相关容器的⼀系列操作。链接的服务都将会被⾃ 动启动,除⾮已经处于运⾏状态。 可以说,⼤部分时候都可以直接通过该命令来启动⼀个项⽬。


默认情况, docker-compose up 启动的容器都在前台,控制台将会同时打印所有容器的输出信息,可 以很⽅便进⾏调试。 当通过 Ctrl-C 停⽌命令时,所有容器将会停⽌。

如果使⽤ docker-compose up -d ,将会在后台启动并运⾏所有的容器。⼀般推荐⽣产环境下使⽤该选项。

默认情况,如果服务容器已经存在, docker-compose up 将会尝试停⽌容器,然后重新创建(保持使⽤ volumes-from 挂载的卷),以保证新启动的服务匹配 docker-compose.yml ⽂件的最新内容。如果⽤户不希望容器被停⽌并重新创建,可以使⽤ docker-compose up --no-recreate 。这样将只会启动 处于停⽌状态的容器,⽽忽略已经运⾏的服务。


如果⽤户只想重新部署某个服务,可以使⽤ docker-compose up --no-deps -d <SERVICE_NAME> 来重新 创建服务并后台停⽌旧服务,启动新服务,并不会影响到其所依赖的服务。选项:


【云原生丨Docker系列10】Docker Compose的命令操作-LMLPHP

08-09 08:53