帮助中心

立即注册 咨询客服

当前位置:首页 > 帮助中心> 如何在CentOS上安装和使用Docker Compose

如何在CentOS上安装和使用Docker Compose

发布时间:2020年07月11日 09:23:00    来源: A5互联

Docker Compose是一个简单的Python程序,可帮助在服务器上轻松部署多个Docker容器。

它使用一个简单的YAML文件进行服务描述。

您无需花费太多时间docker run . . .,只需docker-compose up -d一次即可部署多个服务。

在本教程中,将向您展示如何在CentOS服务器上安装Docker Compose。还将向您展示一个使用Docker Compose部署具有特定配置的NGINX服务器的快速示例。

一、在CentOS上安装docker-compose

您需要预先安装Docker。在安装Docker Compose之前,请确保在CentOS系统上安装Docker。

docker-compose没有打包在CentOS的官方存储库或docker的rpm存储库中。

有两种方法可以在Linux上安装Docker Compose:

①下载Docker Compose Linux安装程序文件并手动设置:https://github.com/docker/compose/releases

②使用PIP轻松安装Docker Compose

就个人而言,我更喜欢使用PIP安装Docker Compose。由于Docker Compose本质上是Python应用程序,因此使用PIP进行安装是有意义的。

让我们来看看如何做。

1、安装pip3

使用以下命令安装pip3:

sudo dnf install python3-pip

2、使用pip3安装docker-compose

使用pip安装docker-compose

pip3 install --user docker-compose

3、更新PATH路径

pip将docker-compose安装在~/.local/bin目录中。您必须将其添加到PATH环境变量中,以便可以在任何地方运行它:

echo 'PATH="$PATH:$HOME/.local/bin"' >> ~/.bashrc

如果您正在使用zsh,请更改.bashrc为.zshrc。

完成后,请使用source命令 source ~/.bashrc或重新打开终端(如果是服务器,请注销并重新登录)。

使用以下命令确认已安装docker-compose:

linux@hadnbook:~$ docker-compose --version

docker-compose version 1.26.2, build unknown

至此,就已经完成了在CentOS 8服务器上安装了docker-compose。

想测试一下吗?遵循此简单教程并学习如何使用Docker Compose。

二、使用docker-compose部署示例Nginx服务器

Nginx是最受欢迎的Web服务器之一,可以通过docker轻松部署。

1、在没有Docker Compose的情况下部署Nginx

您可以使用run命令轻松地部署Nginx服务器,如下所示:

docker run --name server --network net -v html:/usr/share/nginx/html -v $PWD/custom-config.conf:/etc/nginx/nginx.conf -p 80:80 --restart on-failure -d nginx:latest

在这里,您已经使用外部网络“ net”部署了具有容器名称“ server”的nginx服务器,使用自定义配置文件安装了名为“ html”的卷,并侦听了主机上的端口80,故障自动重启。

让我们看一下这里的问题:

您必须事先创建网络和卷

Docker不会自动创建网络和卷。您必须事先创建它们。

每次写的选项太多

有太多可供选择的选项。如果它是一个更复杂的容器,例如数据库容器或反向代理容器或nextcloud容器,那么这些选项将不断增加。

开发环境

如果您正在测试构建并不想在停止容器后保留卷,该怎么办?之后,您必须手动删除该卷和网络。

2、使用Docker Compose部署Nginx

首先,您必须创建一个编译文件。

创建一个名为“nginx-compose”的目录,并使用cd进入该目录:

mkdir nginx-compose && cd nginx-compose

创建一个名为“ docker-compose.yml”的文件并添加以下行

version: "3.3"


services:

server:

image : "nginx:latest"

container_name: "server"

volumes:

- "html:/usr/share/nginx/html"

- "./custom-config.conf:/etc/nginx/nginx.conf"

networks:

- "net"

ports:

- "80:80"

restart: "on-failure"


volumes:

html:

networks:

net:

该编译文件描述了名为的服务server,该服务将以与非合成方式完全相同的配置来部署nginx服务器。使用以下方法部署它:

docker-compose up -d

docker-compose将在当前目录中查找名为“ docker-compose.yml”的文件,对其进行解析并部署其中定义的服务。

现在让我们用compose方法来解决非组合方法的问题:

无需事先创建网络和卷,docker-compose会为您完成。您可以通过在每个卷/网络中将external设置为true来添加外部卷。

写入.yaml文件后,就不再需要写下大量命令。您可以将此文件复制到安装了最新版本的docker-compose的任何其他服务器上,并且可以轻松按预期运行。

您可以使用docker-compose down -v命令不仅停止和删除容器,还可以停止和删除docker-compose创建的所有网络和卷。这有助于在开发/测试环境中进行清理。

使用docker-compose over还有很多其他好处docker run,尤其是在生产环境中,这超出了本文的讨论范围。