Ubantu安裝Docker-Compose

    Compose 支持 Linux、macOS、Windows 10 三大平臺。

    Compose 可以通過 Python 的包管理工具 pip 進行安裝,也可以直接下載編譯好的二進制文件使用,甚至能夠直接在 Docker 容器中運行。

    前兩種方式是傳統方式,適合本地環境下安裝使用;最後一種方式則不破壞系統環境,更適合雲計算場景。

    Docker for Mac 、Docker for Windows 自帶 docker-compose 二進制文件,安裝 Docker 之後可以直接使用。

$ docker-compose --version

    docker-compose version 1.17.1, build 6d101fb

1.Linux 系統請使用以下介紹的方法安裝。

1.1二進制包

    在 Linux 上的也安裝十分簡單,從 官方 GitHub Release 處直接下載編譯好的二進制文件即可。

    例如,在 Linux 64 位系統上直接下載對應的二進制包。

$ 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

1.2PIP 安裝

    注: x86_64 架構的 Linux 建議按照上邊的方法下載二進制包進行安裝,如果您計算機的架構是 ARM (例如,樹莓派),再使用 pip 安裝。

    這種方式是將 Compose 當作一個 Python 應用來從 pip 源中安裝。

    執行安裝命令:

$ sudo pip install -U docker-compose

    可以看到類似如下輸出,說明安裝成功。

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

1.3bash 補全命令

$ curl -L https://raw.githubusercontent.com/docker/compose/1.8.0/contrib/completion/bash/docker-compose > /etc/bash_completion.d/docker-compose

2.容器中執行

    Compose 既然是一個 Python 應用,自然也可以直接用容器來執行它。

$ 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 腳本內容,如下

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 鏡像並運行。

2.1卸載

    如果是二進制包方式安裝的,刪除二進制文件即可。

$ sudo rm /usr/local/bin/docker-compose

    如果是通過 pip 安裝的,則執行如下命令即可刪除。

$ sudo pip uninstall docker-compose
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章