在Ubuntu 20.04/18.04/CentOS 8/Debian 10/Fedora 33/32/31上安装Docker Compose

时间:2020-02-23 14:31:35  来源:igfitidea点击:

如何在Ubuntu 20.04/18.04/Debian 10/CentOS 8/Fedora 33/32/31上安装Docker Compose?本教程将向我们展示如何在Linux上安装最新的Docker Compose。 Compose是用于定义和运行多容器Docker应用程序的工具。 YAML文件用于配置应用程序服务。

这篇文章旨在成为寻求在Linux上设置Docker Compose的开发人员和SysAdmins的简要指导性逐步教程。我们将检查该项目的Github API版本页面,并提取最新的二进制文件。

在Linux上安装最新的Docker Compose

我们需要在系统上安装curl才能执行此操作。当然,以具有sudo特权的用户身份访问终端。

---- CentOS/RHEL ----
$sudo yum -y install curl

---- Debian/Ubuntu ---
$sudo apt install -y curl

----- Fedora ----
$sudo dnf -y install curl

一旦安装了curl,就可以在Linux机器上下载最新的Compose。

curl -s https://api.github.com/repos/docker/compose/releases/latest \
  | grep browser_download_url \
  | grep docker-compose-Linux-x86_64 \
  | cut -d '"' -f 4 \
  | wget -qi 

使二进制文件可执行。

chmod +x docker-compose-Linux-x86_64

将文件移到PATH。

sudo mv docker-compose-Linux-x86_64 /usr/local/bin/docker-compose

确认版本。

$docker-compose version
docker-compose version 1.24.1, build 4667896b
docker-py version: 3.7.3
CPython version: 3.6.8
OpenSSL version: OpenSSL 1.1.0j  20 Nov 2016

配置撰写命令行完成

为bash和zsh shell编写hascommand完成。

对于Bash用户

将完成脚本放在/etc/bash_completion.d/中。

sudo curl -L https://raw.githubusercontent.com/docker/compose/master/contrib/completion/bash/docker-compose -o /etc/bash_completion.d/docker-compose

源文件或者重新登录以享受完成功能。

source /etc/bash_completion.d/docker-compose

对于Zsh用户

将完成脚本下载到~/.zsh/completion /`中

mkdir -p ~/.zsh/completion
curl -L https://raw.githubusercontent.com/docker/compose/master/contrib/completion/zsh/_docker-compose > ~/.zsh/completion/_docker-compose

通过添加~/.zshrc将目录包含在$fpath中:

fpath=(~/.zsh/completion $fpath)

确保已加载compinit或者通过添加~/.zshrc来实现:

autoload -Uz compinit && compinit -i

然后重新加载shell:

exec $SHELL -l

测试Docker Compose安装。

我们的综合教程是关于使用Docker Compose管理Docker容器

创建一个测试Docker Compose文件。

$vim docker-compose.yml

将以下数据添加到文件中。

version: '3'  
services:
  web:
    image: nginx:latest
    ports:
     - "8080:80"
    links:
     - php
  php:
    image: php:7-fpm

启动服务容器。

$docker-compose up -d
Starting root_php_1 … done
Starting root_web_1 … done

输出:

显示正在运行的容器

$docker-compose ps
   Name                 Command              State          Ports        
------------------------------------------------------------------------
root_php_1   docker-php-entrypoint php-fpm   Up      9000/tcp            
root_web_1   nginx -g daemon off;            Up      0.0.0.0:8080->80/tcp

销毁容器

$docker-compose stop
Stopping root_web_1 ... done
Stopping root_php_1 ... done

$docker-compose rm -f
Going to remove root_web_1, root_php_1
Removing root_web_1 ... done
Removing root_php_1 ... done