赞
踩
一、docker-compose命令对象与格式
二、命令选项
三、命令使用说明
build 构建(重新构建)项目中的服务容器
config 检测compose文件的错误
up 启动服务
down 停止容器
images 列出项目中所包含的镜像
logs 查看服务容器的日志
kill 发送 SIGKILL 信号来强制停止服务容器
port 查看某个容器端口所映射的公共端口
ps 列出项目中目前的所有容器
restart 重启项目中的服务
rm 删除所有停止状态的服务容器
run 在指定服务上运行一个命令
scale 设置指定服务运行的容器个数
stop 停止处于运行状态的容器
start 启动被stop的服务容器
top 查看各个服务容器内运行的进程
pause 暂停一个服务容器
unpause 恢复处于暂停状态中的服务
docker-compose术语:
服务(service):一个应用容器,实际上可以运行多个相同镜像的实例。
项目(project):由一组关联的应用容器组成的一个完整业务单元。
一个项目可以由多个服务(容器)关联而成,Compose面向项目进行管理。
一、命令对象与格式
对于Compose来说,大部分命令的对象既可以是项目本身,也可以指定为项目中的服务或者容器。如果没有特别的说明,命令对象将是项目,这意味着项目中所有的服务都会受到命令影响。
docker-compose 命令的基本的使用格式是:
[root@centos01 ~]# docker-compose [-f <arg>...] [options] [COMMAND] [ARGS...]
二、命令选项
-f:指定使用的compose模板文件,默认为当前目录下的docker-compose.yaml文件,可以多次指定。
-p:指定项目的名称,默认将使用所在目录名称作为项目名。
–verbose:输出更多调试信息。
-v:打印版本信息并退出。
三、命令使用说明
build 构建(重新构建)项目中的服务容器
命令格式为:
[root@centos01 ~]# docker-compose build [options] [SERVICE...]
服务容器一旦构建后,将会带上一个标记名,例如对于web项目中的一个db容器,可能是web_db。
可以随时在项目目录下运行docker-compose build 来重新构建服务。
上述命令选项包括:
–force-rm:删除构建过程中的临时容器;
–no-cache:构建镜像过程中不使用cache(这会加长构建过程);
–pull:始终尝试通过pull来获取更新版本的镜像;
config 检测compose文件的错误
验证Compose文件格式是否正确,若正确则显示配置,若格式错误显示错误原因。
命令格式如下:
[root@centos01 ~]# docker-compose config
up 启动服务
格式为:
[root@centos01 ~]# 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> 来重新创建服务并后台停止旧服务,启动新服务,并不会影响到其所依赖的服务。
选项:
-d:在后台运行服务容器;
–no-color:不使用颜色来区分不同的服务的控制台输出;
–no-deps:不启动服务所链接的容器;
–force-recreate:强制重新创建容器,不能与 --no-recreate 同时使用;
–no-recreate:如果容器已经存在了,则不重新创建,不能与 --force-recreate 同时使用;
–no-build:不自动构建缺失的服务镜像;
-t:停止容器时候的超时(默认为 10 秒);
down 停止容器
此命令将会停止up命令所启动的容器,并移除网络。
images 列出项目中所包含的镜像
- [root@centos01 ~]# docker-compose images <!--列出项目中所包含的镜像-->
- [root@centos01 ~]# docker-compose -p tt images <!--若不是默认的项目名称,则需要指定项目名称-->
logs 查看服务容器的日志
格式为:
[root@centos01 ~]# docker-compose logs [options] [SERVICE...]
默认情况下,docker-compose 将对不同的服务输出使用不同的颜色来区分。可以通过 --no-color 来关闭颜色。
该命令在调试问题的时候十分有用。
- [root@centos01 ~]# cat docker-compose.yml <!--compose文件如下-->
- version: '3'
- services:
- web:
- build: .
- ports:
- - "5001:5000"
- redis:
- image: "redis:alpine"
-
-
- [root@centos01 ~]# docker-compose logs
- <!--不加服务名称则会显示项目中所有服务的日志,不同服务之间的日志以不同的颜色区分-->
- [root@centos01 ~]# docker-compose logs web
- <!--也可以指定项目中的服务名称,查看指定服务的日志-->
- [root@centos01 ~]# docker-compose logs redis <!--同上-->
kill 发送 SIGKILL 信号来强制停止服务容器
格式为:
[root@centos01 ~]# docker-compose kill [options] [SERVICE...]
支持通过 -s 参数来指定发送的信号,例如通过如下指令发送 SIGINT 信号。
- [root@centos01 ~]# docker-compose kill -s SIGINT web <!--kill掉指定的服务-->
- [root@centos01 ~]# docker-compose -p tt kill -s SIGINT web
- <!--若不是默认的项目名称,则需要-p指定项目名称-->
port 查看某个容器端口所映射的公共端口
格式为:
[root@centos01 ~]# docker-compose port [options] SERVICE PRIVATE_PORT
选项:
–protocol=proto 指定端口协议,tcp(默认值)或者 udp;
–index=index 如果同一服务存在多个容器,指定命令对象容器的序号(默认为 1);
- [root@centos01 ~]# docker-compose port web 5000
- 0.0.0.0:5001
- <!--上面的结果表示将web服务的5000端口映射到了宿主机的5001端口-->
ps 列出项目中目前的所有容器
格式为:
docker-compose ps [options] [SERVICE...]
举个例子:
- $ docker-compose ps -q web <!--查看某一个服务的ID-->
- $ docker-compose ps <!--查看项目中所有服务的容器信息-->
选项:
-q:只打印容器的 ID 信息;
10、restart——重启项目中的服务
格式为:
[root@centos01 ~]# docker-compose restart [options] [SERVICE...]
选项:
-t, --timeout TIMEOUT 指定重启前停止容器的超时(默认为 10 秒)。
举个例子:
- [root@centos01 ~]# docker-compose restart <!--重启当前项目中的所有服务-->
- [root@centos01 ~]# docker-compose restart web <!--重启当前项目中的web服务-->
rm 删除所有停止状态的服务容器
格式为 :
[root@centos01 ~]# docker-compose rm [options] [SERVICE...]
选项:
-f:不要求确认移除;
-s:在删除前停止项目中的所有容器;
-v:删除任何附加到容器的匿名卷;
run 在指定服务上运行一个命令
格式为:
[root@centos01 ~]# docker-compose run [options] [-p PORT...] [-e KEY=VAL...] SERVICE [COMMAND] [ARGS...]
例如:
[root@centos01 ~]# docker-compose run web ping www.baidu.com
上面的指令将启动项目中的web服务容器,并执行ping www.baidu.com 命令。
默认情况下,如果存在关联,则所有关联的服务将会自动被启动,除非这些服务已经在运行中。
如果不希望自动启动关联的容器,可以使用 --no-deps 选项,例如:
[root@centos01 ~]# docker-compose run --no-deps web ping www.baidu.com
选项:
-d:后台运行容器;
–name:为容器指定一个名字;
–entrypoint :覆盖默认的容器启动指令;
-e KEY=VAL :设置环境变量值,可多次使用选项来设置多个环境变量;
-u:指定运行容器的用户名或者 uid;
–no-deps :不自动启动关联的服务容器;
–rm:运行命令后自动删除容器,d 模式下将忽略;
-p:映射容器端口到本地主机;
–service-ports:配置服务端口并映射到本地主机;
-T:不分配伪 tty,意味着依赖 tty 的指令将无法运行;
scale 设置指定服务运行的容器个数
格式为:
[root@centos01 ~]# docker-compose scale [options] [SERVICE=NUM...]
通过 service=num 的参数来设置数量。例如:
[root@centos01 ~]# docker-compose scale web=3 redis=2
将启动 3 个容器运行 web 服务,2 个容器运行redis服务,但是需要注意的是,docker-compose中定义ports字段时,就不可以指定映射到宿主机的端口了,否则只可以启动一个。
一般的,当指定数目多于该服务当前实际运行容器,将新创建并启动容器;反之,将停止容器。
选项:
-t:停止容器时候的超时(默认为 10 秒);
stop 停止处于运行状态的容器
格式为:
[root@centos01 ~]# docker-compose stop [options] [SERVICE...]
停止已经处于运行状态的容器,但不删除它。通过 docker-compose start 可以再次启动这些容器。
举个例子:
- [root@centos01 ~]# docker-compose stop web <!--停止当前项目中的web服务-->
- [root@centos01 ~]# docker-compose stop <!--停止当前项目中所有服务-->
选项:
-t:停止容器时候的超时(默认为10秒);
start 启动被stop的服务容器
格式为:
[root@centos01 ~]# docker-compose start [SERVICE...]
举个例子:
[root@centos01 ~]# docker-compose start
top 查看各个服务容器内运行的进程
- [root@centos01 ~]# docker-compose top <!--查看项目中所有服务的进程-->
- [root@centos01 ~]# docker-compose top web <!--查看项目中web服务的进程-->
pause 暂停一个服务容器
格式为:
[root@centos01 ~]# docker-compose pause [SERVICE...]
暂停一个服务容器。
举个例子:
- [root@centos01 ~]# docker-compose -p tt pause redis <!---p选项是指定项目名称-->
- <!--若是默认的项目名称,则可以忽略-p选项-->
- [root@centos01 ~]# docker-compose pause <!--暂停项目中的所有服务-->
unpause 恢复处于暂停状态中的服务
格式为:
docker-compose unpause [SERVICE...]
举个例子:
[root@centos01 ~]# docker-compose unpause
source: //blog.51cto.com/u_14156658/2498135
记得点「赞」和「在看」↓
爱你们
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。