bash: docker-compose: 未找到命令..._如何构建Docker Compose文件?

Docker Compose是用于定义和运行多容器Docker应用程序的工具。换句话说,如果你要定义一个需要多个Docker容器才能运行的服务,Docker Compose这个工具可能适合你。

但你如何使用Docker Compose?一旦安装了它和Docker守护程序,如何部署那些容器化应用程序?Docker Compose依赖docker-compose.yml文件(反过来,该文件与Dockerfile一起使用)。

eb0fb91d13991c86bc6026b28f6d4588.png

我将尽量简单地为你细述这个问题,以便你了解如何自行构建基本的Docker Compose文件。

你需要什么?

你唯一需要的是:

  • 拥有Docker和docker-compose的运行实例的服务器。
  • 属于Docker组的用户。

Docker Compose如何工作?

简而言之:Docker Compose构建一堆应用程序以运行完整的服务。docker-compose.yml文件分几个部分,每个部分代表一个容器,每个容器与其他容器组合以创建服务。比如说,你可能有一个包含这两个部分的docker-compose.yml文件:

  • web——应用程序的Web服务器部分。
  • db——应用程序的数据库服务器部分。

每个部分由不同的组件组成。又由于你可能需要很特定的Web部分,可以指示docker-compose将在Dockerfile中定义Web部分。实际上,就docker-compose而言,你可以包含多个Dockerfiles以构建很复杂的堆栈。不过我们将构建一个很简单的堆栈,以便轻松入手。

所以,不妨创建包含web和db两部分的这个docker-compose.yml文件。我们将使用NGINX和MySQL来创建一个轻松用于开发目的的堆栈。

docker-compose.yml文件 

我们要做的第一件事是创建一个新文件。我们将在刚创建的目录中创建该文件。执行命令mkdir ~/docker-build。使用命令cd ~/docker-build切换到那个刚创建的目录。一旦进入该目录,使用以下命令创建新的docker-compose.yml文件:

nano docker-compose.yml 

请记住,这是一个YAML文件,因此格式必须一致(否则构建将失败)。

先要做的是添加文件标题。在文件顶部,添加以下内容:

version: '3' 

这指示Docker Compose我们在使用该工具的版本3。下一行将指示Docker Compose以下内容将是要部署的服务。这由以下来定义:

services: 

到目前为止,文件是:

version : '3' services: 

我们要定义的第一个部分是堆栈的web部分。我们可以用两行简单的代码完成这一步:

web: image: nginx 

上面执行的操作是指示Docker Compose使用官方的Nginx映像来部署一个容器。我们没有为该容器做任何特别的操作。它很基础。

下一个部分是定义数据库。这部分来得复杂一点,因为我们要配置必要的参数,数据库才能正常运行。我们先以此来定义这部分:

db: 

下一步,我们以下列内容指示Docker Compose将MySQL映像用于该数据库:

image:mysql 

现在我们定义供数据库使用的外部端口和内部端口。为此,我们将使用默认的MySQL端口,并予以定义:

ports: - "3306:3306" 

最后我们配置数据库环境。环境是数据库的配置选项(密码、用户和数据库名称)。这部分看起来像这样:

environment:  - MYSQL_ROOT_PASSWORD=password1 - MYSQL_USER=user - MYSQL_PASSWORD=password2 - MYSQL_DATABASE=database 

其中:

  • password1是MySQL管理员用户的密码。
  • user是新的MySQL用户。
  • password2是新的MySQL用户的密码。
  • database是要使用的数据库的名称。

上述每个都将由你来定义。确保使用独特的强密码,以确保你的堆栈安全。

把这个文件组合起来看起来就像这样:

version: '3'  services:  web:  image: nginx  db: image: mysql  ports: - "3306:3306"  environment: - MYSQL_ROOT_PASSWORD=password - MYSQL_USER=user - MYSQL_PASSWORD=password - MYSQL_DATABASE=demodb 

记住,文件结构必须一致,所以要小心缩进。

保存并关闭该文件。

用Docker Compose来构建应用程序

我们已构建好了docker-compose.yml文件,是时候构建应用程序了。由于这是很简单的应用程序,它基本上部署两个容器:Web服务器和数据库。如何使用那两个容器取决于你。当然,你可以开发自己的映像(比如自定义的Nginx和MySQL映像,它们可以无缝协同运行,以创建独特的服务或应用程序)。在本文中,我们就使用默认映像(为了演示)。

现在,想构建堆栈,请回到终端窗口,确保你在构建目录中,然后执行命令:

docker-compose up 

上述命令将部署web容器和db容器。如果只运行该命令,容器将以附加模式来部署,那样不会返回bash提示符。如果你想以分离模式来运行,要执行该命令:

docker-compose up -d 

运行完毕后,你将看到容器ID列了出来(图A)。

73a691079de83516909eac5091549420.png

图A:我们的容器在运行

想确保容器在运行,请执行该命令:

docker-compose ps 

你会看到容器的名称、命令、状态和端口列了出来(图B)。

098381e0907cfccdc69114e4d702117c.png

图B:docker-compose ps命令的输出结果

恭喜你,你刚使用Docker Compose部署了第一个容器“堆栈”。是的,这个例子非常简单,但它应该让你开始踏上漫长而充实的旅程。下一回,我们将创建一个更复杂的docker-compose.yml文件,它与Dockerfile一起运行。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 这个错误提示是因为系统中没有安装docker-compose命令,需要先安装docker-compose才能使用它。可以通过以下命令安装docker-compose: 1. 在终端中输入以下命令,下载docker-compose二进制文件: ``` sudo curl -L "https://github.com/docker/compose/releases/download/1.29.2/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose ``` 2. 授权docker-compose二进制文件: ``` sudo chmod +x /usr/local/bin/docker-compose ``` 3. 验证docker-compose是否安装成功: ``` docker-compose --version ``` 如果显示版本号,则说明docker-compose已经安装成功。 ### 回答2: Docker-Compose是一个使用Docker来管理多个容器的工具。使用保存在docker-compose.yml文件中的配置,可以轻松地创建、启动和停止多个Docker容器。当您在执行Docker-Compose命令时出现错误“bash: docker-compose: 找到命令...”,正常情况下是因为Docker-Compose正确安装或安装位置正确配置。下面是解决此问题的一些步骤: 1. 确认您已正确安装Docker-Compose:在终端中输入命令docker-compose”并按下Enter键。如果系统返回Docker-Compose的版本信息,则表明已经成功安装。 2. 如果您没有安装Docker-Compose,则从Docker官网下载并安装。 3. 确保docker-compose在PATH环境变量中被发现。如果它不在PATH中,则需要添加到PATH中。 4. 您可以尝试在终端中重新加载bash配置文件,通常是.bashrc或.bashprofile文件。 这些步骤应该可以解决“bashdocker-compose:找到命令”错误。如果您仍然遇到问题,请参考Docker-Compose的官方文档或在Docker社群中寻求帮助。 ### 回答3: “bash docker-compose: 找到命令…”,这个错误信息可能是因为系统找不到Docker Compose这个命令引起的。Docker ComposeDocker开发的一个用于管理多个Docker 容器的工具,可以使用它通过单个YAML文件来配置多个服务,并可以通过一个指令启动、停止等多个容器。常见的也会使用“-d”(detach)参数来保证容器在后台运行。 如果你遇到了这种错误,则需要检查你的系统中是否安装了Docker Compose,并且正确地配置了环境变量。以下是解决这个问题可能的一些解决方案: 1.检查Docker Compose是否已经安装。可以使用以下命令docker-compose --version 如果安装过,应该会显示出版本信息。如果没有安装,则需要在系统上安装Docker Compose。 2.确认Docker Compose的路径是否正确。 如果已经安装Docker Compose,但是系统仍然无法找到命令,这可能是因为Docker Compose的路径没有正确设置。在~/.bashrc或者~/.bash_profile中添加以下行,即可设置一个正确的路径: export PATH=$PATH:/usr/local/bin/docker-compose 3.检查系统的版本是否支持Docker Compose。 如果出现问题,可以尝试升级操作系统或者重装Docker Compose,以解决这些问题。 总之,出现“bash docker-compose: 找到命令…”这个错误,可能是由于系统安装Docker Compose或者正确配置环境变量等因素引起的,可以按照上述步骤进行解决。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值