`Compose` 支持 Linux、macOS、Windows 10 三大平臺。
`Compose` 可以通過 Python 的包管理工具 `pip` 進行安裝,也可以直接下載編譯好的二進制文件使用,甚至能夠直接在 Docker 容器中運行。
前兩種方式是傳統方式,適合本地環境下安裝使用;最后一種方式則不破壞系統環境,更適合云計算場景。
`Docker for Mac` 、`Docker for Windows` 自帶 `docker-compose` 二進制文件,安裝 Docker 之后可以直接使用。
```bash
$ docker-compose --version
docker-compose version 1.17.1, build 6d101fb
```
Linux 系統請使用以下介紹的方法安裝。
## 安裝方法一:二進制包
在 Linux 上的也安裝十分簡單,從 [官方 GitHub Release](https://github.com/docker/compose/releases) 處直接下載編譯好的二進制文件即可。
例如,在 Linux 64 位系統上直接下載對應的二進制包。
```bash
$ sudo curl -L https://github.com/docker/compose/releases/download/1.17.1/docker-compose-`uname -s`-`uname -m` > /usr/local/bin/docker-compose
$ sudo chmod +x /usr/local/bin/docker-compose
```
## 安裝方法二:PIP 安裝
*注:* `x86_64` 架構的 Linux 建議按照上邊的方法下載二進制包進行安裝,如果您計算機的架構是 `ARM`(例如,樹莓派),再使用 `pip` 安裝。
這種方式是將 Compose 當作一個 Python 應用來從 pip 源中安裝。
1、安裝python-pip
```bash
yum -y install epel-release
yum -y install python-pip
```
執行安裝命令:
```bash
pip install -U docker-compose
```
可以看到類似如下輸出,說明安裝成功。
```bash
Collecting docker-compose
Downloading docker-compose-1.17.1.tar.gz (149kB): 149kB downloaded
...
Successfully installed docker-compose cached-property requests texttable websocket-client docker-py dockerpty six enum34 backports.ssl-match-hostname ipaddress
```
查看版本號
```
docker-compose version
```
bash 補全命令
將對應版本號的docker-compose補全如:下面的`1.8.0`替換成 `1.24.1`
```bash
$ curl -L https://raw.githubusercontent.com/docker/compose/1.8.0/contrib/completion/bash/docker-compose > /etc/bash_completion.d/docker-compose
```
## 容器中執行
Compose 既然是一個 Python 應用,自然也可以直接用容器來執行它。
```bash
$ curl -L https://github.com/docker/compose/releases/download/1.8.0/run.sh > /usr/local/bin/docker-compose
$ chmod +x /usr/local/bin/docker-compose
```
實際上,查看下載的 `run.sh` 腳本內容,如下
```bash
set -e
VERSION="1.8.0"
IMAGE="docker/compose:$VERSION"
# Setup options for connecting to docker host
if [ -z "$DOCKER_HOST" ]; then
DOCKER_HOST="/var/run/docker.sock"
fi
if [ -S "$DOCKER_HOST" ]; then
DOCKER_ADDR="-v $DOCKER_HOST:$DOCKER_HOST -e DOCKER_HOST"
else
DOCKER_ADDR="-e DOCKER_HOST -e DOCKER_TLS_VERIFY -e DOCKER_CERT_PATH"
fi
# Setup volume mounts for compose config and context
if [ "$(pwd)" != '/' ]; then
VOLUMES="-v $(pwd):$(pwd)"
fi
if [ -n "$COMPOSE_FILE" ]; then
compose_dir=$(dirname $COMPOSE_FILE)
fi
# TODO: also check --file argument
if [ -n "$compose_dir" ]; then
VOLUMES="$VOLUMES -v $compose_dir:$compose_dir"
fi
if [ -n "$HOME" ]; then
VOLUMES="$VOLUMES -v $HOME:$HOME -v $HOME:/root" # mount $HOME in /root to share docker.config
fi
# Only allocate tty if we detect one
if [ -t 1 ]; then
DOCKER_RUN_OPTIONS="-t"
fi
if [ -t 0 ]; then
DOCKER_RUN_OPTIONS="$DOCKER_RUN_OPTIONS -i"
fi
exec docker run --rm $DOCKER_RUN_OPTIONS $DOCKER_ADDR $COMPOSE_OPTIONS $VOLUMES -w "$(pwd)" $IMAGE "$@"
```
可以看到,它其實是下載了 `docker/compose` 鏡像并運行。
## 卸載
如果是二進制包方式安裝的,刪除二進制文件即可。
```bash
rm /usr/local/bin/docker-compose
```
如果是通過 `pip` 安裝的,則執行如下命令即可刪除。
```bash
pip uninstall docker-compose
```
- 開發環境準備
- 基本開發手冊
- 項目目錄結構
- 權限管理
- 通用分頁表格
- Swagger文檔
- undertow容器
- 對xss攻擊的防御
- 分布式鎖
- 統一的系統日志
- 統一驗證
- 統一異常處理
- 文件上傳下載
- 一對多、多對多分頁
- 認證與授權
- 從授權開始看源碼
- 自己寫個授權的方法-開源版
- 商城表設計
- 商品信息
- 商品分組
- 購物車
- 訂單
- 地區管理
- 運費模板
- 接口設計
- 必讀
- 購物車的設計
- 訂單設計-確認訂單
- 訂單設計-提交訂單
- 訂單設計-支付
- 生產環境
- nginx安裝與跨域配置
- 安裝mysql
- 安裝redis
- 傳統方式部署項目
- docker
- 使用docker部署商城
- centos jdk安裝
- docker centos 安裝
- Docker Compose 安裝與卸載
- docker 鏡像的基本操作
- docker 容器的基本操作
- 通過yum安裝maven
- 常見問題