准备工作
在继续本教程之前,请确保我们已满足以下准备工作:
- 以具有 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 应用程序的工具。
使用 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
,我们应该会看到以下屏幕: