compose 是 docker 官方推薦的 docker 容器集群管理工具悍汛,能極其方便的管理容器集群
安裝方式
Compose 支持 Linux、macOS在张、Windows 10 三大平臺(tái)用含。
Compose 可以通過(guò) Python 的包管理工具 pip 進(jìn)行安裝,也可以直接下載編譯好的二進(jìn)制文件使用帮匾,甚至能夠直接在 Docker 容器中運(yùn)行啄骇。
Docker for Mac 、Docker for Windows 自帶 docker-compose 二進(jìn)制文件辟狈,安裝 Docker 之后可以直接使用肠缔。
compose 安裝十分簡(jiǎn)單,本次只探討在容器中執(zhí)行的方式哼转。
容器中執(zhí)行
- 從 官方GitHub Release 處直接下載編譯好的二進(jìn)制文件即可明未,需要注意系統(tǒng)位數(shù)
$ 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
查看 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 "$@"
- 它會(huì)拉取 compose 鏡像,當(dāng)使用時(shí)會(huì)啟用一個(gè)臨時(shí)容器壹蔓,使用結(jié)束又自動(dòng)刪除了容器
卸載
- 容器中的執(zhí)行的方式其實(shí)是獨(dú)立于系統(tǒng)的趟妥,不想使用時(shí),直接刪除 compose 鏡像即可
compose 常用命令
docker-compose up -d # 后臺(tái)啟動(dòng)
docker-compose down # 銷(xiāo)毀
docker-compose restart # 重啟