You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

234 lines
9.2 KiB
Markdown

This file contains invisible Unicode characters!

This file contains invisible Unicode characters that may be processed differently from what appears below. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to reveal hidden characters.

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

---
icon: edit
date: 2021-10-17
category:
- Docker
- Linux
tag:
- docker-compose
- Docker
headerDepth: 5
---
# Linux 安装 docker-compose
# docker-compose
> docker compose 在 Docker 容器运用中具有很大的学习意义docker compose 是一个整合发布应用的利器。而使用 docker compose 时,懂得如何编排 docker compose 配置文件是很重要的。
## 安装
>Linux 上我们可以从 Github 上下载它的二进制包来使用最新发行的版本地址https://github.com/docker/compose/releases。
### 方式一:
```shell
#curl -L "https://github.com/docker/compose/releases/download/v2.17.2/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
#github太卡了网好和科学上网的同学可以使用
curl -L "https://ghproxy.com/https://github.com/docker/compose/releases/download/v2.17.2/docker-compose-linux-$(uname -m)" -o /usr/local/bin/docker-compose
#curl -L https://get.daocloud.io/docker/compose/releases/download/1.12.0/docker-compose-`uname -s`-`uname -m` > /usr/local/bin/docker-compose
chmod +x /usr/local/bin/docker-compose
docker-compose version # 查看版本号,测试是否安装成功
你可以通过修改URL中的版本可以自定义您的需要的版本。
```
### 方式二:
```shell
  1、安装python-pip
  yum -y install epel-release
  yum -y install python-pip
  2、安装docker-compose
  pip install docker-compose
  待安装完成后,执行查询版本的命令确认安装成功
  docker-compose version
  spring.dubbo
  application.name
  registry.port
```
## 参数详解
[docker 编排参数详解docker-compose.yml 配置文件编写)](https://xie.infoq.cn/article/d666cde8f2131ff25ddf19ad8)
## 常用命令
### 1、Docker-Compose命令格式
docker-compose [-f <arg>...] [options] [COMMAND] [ARGS...]
命令选项如下:
-ffile FILE指定Compose模板文件默认为docker-compose.yml可以多次指定。
-pproject-name NAME指定项目名称默认将使用所在目录名称作为项目名。
-x-network-driver 使用Docker的可拔插网络后端特性需要Docker 1.9+版本)
-x-network-driver DRIVER指定网络后端的驱动默认为bridge需要Docker 1.9+版本)
-verbose输出更多调试信息
-vversion打印版本并退出
### 2、docker-compose up
```docker-compose up [options] [--scale SERVICE=NUM...] [SERVICE...]```
选项包括:
-d 在后台运行服务容器
no-color 不使用颜色来区分不同的服务的控制输出
no-deps 不启动服务所链接的容器
force-recreate 强制重新创建容器不能与no-recreate同时使用
no-recreate 如果容器已经存在则不重新创建不能与force-recreate同时使用
no-build 不自动构建缺失的服务镜像
build 在启动容器前构建服务镜像
abort-on-container-exit 停止所有容器,如果任何一个容器被停止,不能与-d同时使用
-t, timeout TIMEOUT 停止容器时候的超时默认为10秒
remove-orphans 删除服务中没有在compose文件中定义的容器
scale SERVICE=NUM 设置服务运行容器的个数将覆盖在compose中通过scale指定的参数
```docker-compose up```
启动所有服务
```docker-compose up -d```
在后台所有启动服务
-f 指定使用的Compose模板文件默认为docker-compose.yml可以多次指定。
```docker-compose -f docker-compose.yml up -d```
### 3、docker-compose ps
```docker-compose ps [options] [SERVICE...]```
```docker-compose ps```
列出项目中目前的所有容器
### 4、docker-compose stop
```docker-compose stop [options] [SERVICE...]```
选项包括:
-t, timeout TIMEOUT 停止容器时候的超时默认为10秒
```docker-compose stop```
停止正在运行的容器可以通过docker-compose start 再次启动
### 5、docker-compose -h
```docker-compose -h```
查看帮助
### 6、docker-compose down
```docker-compose down [options]```
停止和删除容器、网络、卷、镜像。
选项包括:
rmi type删除镜像类型必须是all删除compose文件中定义的所有镜像local删除镜像名为空的镜像
-v, volumes删除已经在compose文件中定义的和匿名的附在容器上的数据卷
remove-orphans删除服务中没有在compose中定义的容器
```docker-compose down```
停用移除所有容器以及网络相关
### 7、docker-compose logs
```docker-compose logs [options] [SERVICE...]```
查看服务容器的输出。默认情况下docker-compose将对不同的服务输出使用不同的颜色来区分。可以通过no-color来关闭颜色。
```docker-compose logs```
查看服务容器的输出
### 8、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变量
服务容器一旦构建后将会带上一个标记名。可以随时在项目目录下运行docker-compose build来重新构建服务
### 9、docker-compose pull
docker-compose pull [options] [SERVICE...]
拉取服务依赖的镜像。
选项包括:
ignore-pull-failures忽略拉取镜像过程中的错误
parallel多个镜像同时拉取
quiet拉取镜像过程中不打印进度信息
```docker-compose pull```
拉取服务依赖的镜像
### 10、docker-compose restart
```docker-compose restart [options] [SERVICE...]```
重启项目中的服务。
选项包括:
-t, timeout TIMEOUT指定重启前停止容器的超时默认为10秒
```docker-compose restart```
重启项目中的服务
### 11、docker-compose rm
```docker-compose rm [options] [SERVICE...]```
删除所有(停止状态的)服务容器。
选项包括:
f, force强制直接删除包括非停止状态的容器
-v删除容器所挂载的数据卷
```docker-compose rm```
删除所有停止状态的服务容器。推荐先执行docker-compose stop命令来停止容器。
### 12、docker-compose start
```docker-compose start [SERVICE...]```
```docker-compose start```
启动已经存在的服务容器。
### 13、docker-compose run
```docker-compose run [options] [-v VOLUME...] [-p PORT...] [-e KEY=VAL...] SERVICE [COMMAND] [ARGS...]```
在指定服务上执行一个命令。
```docker-compose run ubuntu ping www.baidu.com```
在指定容器上执行一个ping命令。
### 14、docker-compose scale
```docker-compose scale web=3 db=2```
设置指定服务运行的容器个数。通过service=num的参数来设置数量
### 15、docker-compose pause
```docker-compose pause [SERVICE...]```
暂停一个服务容器
### 16、docker-compose kill
```docker-compose kill [options] [SERVICE...]```
通过发送SIGKILL信号来强制停止服务容器。
支持通过-s参数来指定发送的信号例如通过如下指令发送SIGINT信号
```docker-compose kill -s SIGINT```
### 17、dokcer-compose config
```docker-compose config [options]```
验证并查看compose文件配置。
选项包括:
resolve-image-digests 将镜像标签标记为摘要
-q, quiet 只验证配置,不输出。 当配置正确时,不输出任何内容,当文件配置错误,输出错误信息
services 打印服务名,一行一个
volumes 打印数据卷名,一行一个
### 18、docker-compose create
```docker-compose create [options] [SERVICE...]```
为服务创建容器。
选项包括:
force-recreate重新创建容器即使配置和镜像没有改变不兼容no-recreate参数
no-recreate如果容器已经存在不需要重新创建不兼容force-recreate参数
no-build不创建镜像即使缺失
build创建容器前生成镜像
### 19、docker-compose exec
```docker-compose exec [options] SERVICE COMMAND [ARGS...]```
选项包括:
-d 分离模式,后台运行命令。
privileged 获取特权。
user USER 指定运行的用户。
-T 禁用分配TTY默认docker-compose exec分配TTY。
index=index当一个服务拥有多个容器时可通过该参数登陆到该服务下的任何服务例如docker-compose exec index=1 web /bin/bash web服务中包含多个容器
### 20、docker-compose port
```docker-compose port [options] SERVICE PRIVATE_PORT```
显示某个容器端口所映射的公共端口。
选项包括:
protocol=proto指定端口协议TCP默认值或者UDP
index=index如果同意服务存在多个容器指定命令对象容器的序号默认为1
### 21、docker-compose push
```docker-compose push [options] [SERVICE...]```
推送服务依的镜像。
选项包括:
ignore-push-failures 忽略推送镜像过程中的错误
### 22、docker-compose stop
```docker-compose stop [options] [SERVICE...]```
显示各个容器运行的进程情况。
### 23、docker-compose unpause
```docker-compose unpause [SERVICE...]```
恢复处于暂停状态中的服务。
### 24、docker-compose version
```docker-compose version```
打印版本信息。