准备工作

在继续本教程之前,请确保我们已满足以下准备工作:

  • 以具有 sudo 权限的用户身份登录。
  • 已安装 Docker 引擎。按照我们之前关于如何在 Linux 上安装和使用 Docker CE 的教程进行操作

第 1 步 - 安装 Docker Compose

为了获得 Docker Compose 的最新版本,请访问 Docker 的 GitHub 存储库站点。

01 首先使用以下 curl命令将 Docker Compose 二进制文件下载到 /usr/local/bin目录:

$sudo curl -L "https://github.com/docker/compose/releases/download/1.25.4/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose

02 接下来,设置权限以使二进制可执行文件:

$sudo chmod +x /usr/local/bin/docker-compose

03 然后,通过检查版本来验证安装是否成功:

$sudo docker-compose --version
docker-compose version 1.25.4, build 4667896b

04 此外,要以非 root 用户身份运行 Compose,请将用户添加到 docker组,如下所示。

$sudo usermod -aG docker $USER
如何安装和使用Docker Compose

Docker Compose 是一个用于定义和运行多容器 Docker 应用程序的工具。
使用 Docker Compose ,我们可以使用 YAML 文件来配置应用程序的服务。
然后,使用单个命令,从配置中创建并启动所有服务。

在本教程中,我们将展示如何在 CentOS/RHEL 或者 Ubuntu 16.04/Ubuntu 18.04 上安装最新版本的 Docker Compose,并探索基本的 Docker Compose 概念和命令。

卸载 Docker Compose

如果出于任何原因要卸载 Docker Compose,只需键入以下命令即可删除二进制目录:

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

第 2 步 - Docker Compose 入门

在本节中,我们将展示如何使用 Docker Compose 运行 Nginx 容器并将其公开到主机上。

01 创建一个名为nginx的新目录并移入其中:

$mkdir ~/nginx && cd ~/nginx

02 接下来,在新目录中创建 docker-compose.yml文件并添加以下几行:

$vi docker-compose.yml
version: '3'
services:   
   web:     
     image: nginx:latest
     ports:
       - "8000:80"

第一行指定 Compose 文件版本。
有多种不同版本的 Compose 文件格式,支持特定的 Docker 版本。
有关完整详细信息,请查看 Compose 和 Docker 兼容性矩阵。

在服务的第二部分,我们将定义一个名为 web 的服务。
docker-compose运行时,将基于最新的官方 Nginx 镜像创建一个单独的容器,并将容器上的端口 80 暴露给主机上的端口 8000。

03 保存文件后,使用以下命令启动Nginx容器作为后台进程:

$docker-compose up -d
Creating network "nginx_default" with the default driver
Pulling web (nginx:latest)...
latest: Pulling from library/nginx
fc7181108d40: Pull complete
d2e987ca2267: Pull complete
0b760b431b11: Pull complete
Digest: sha256:96fb261b66270b900ea5a2c17a26abbfabe95506e73c3a3c65869a6dbe83223a
Status: Downloaded newer image for nginx:latest
Creating nginx_web_1 ... done

现在,要检查容器是否已运行,请使用以下命令:

$docker-compose ps
   Name             Command          State          Ports
----------------------------------------------------------------
nginx_web_1   nginx -g daemon off;   Up      0.0.0.0:8000->80/tcp

04 最后,打开 url http:IP_Docker:8000,我们应该会看到以下屏幕:

日期:2020-06-02 22:18:44 来源:oir作者:oir