当前位置: 首页 > 科技观察

如何构建DockerCompose文件?

时间:2023-03-17 18:56:58 科技观察

【.com速译】DockerCompose是一个定义和运行多容器Docker应用的工具。换句话说,如果你想定义一个需要多个Docker容器来运行的服务,DockerCompose可能是适合你的工具。但是如何使用DockerCompose?安装它和Docker守护进程后,如何部署这些容器化应用程序?DockerCompose依赖于docker-compose.yml文件(该文件又与Dockerfile一起使用)。我将尽可能简单地为您分解它,以便您了解如何自己构建基本的DockerCompose文件。你需要什么?您唯一需要的是:一台运行着Docker和docker-compose实例的服务器。属于Docker组的用户。DockerCompose是如何工作的?简而言之:DockerCompose构建了一堆应用程序来运行一个完整的服务。docker-compose.yml文件分为几个部分,每个部分代表一个容器,每个容器与其他容器组合创建一个服务。例如,您可能有一个包含以下两部分的docker-compose.yml文件:web-应用程序的Web服务器部分。db-应用程序的数据库服务器部分。每个部分由不同的组件组成。由于您可能需要非常具体的Web部件,因此您可以指示docker-compose在Dockerfile中定义Web部件。事实上,就docker-compose而言,您可以包含多个Dockerfile来构建非常复杂的堆栈。但我们将构建一个非常简单的堆栈,以便我们可以轻松开始。因此,让我们创建这个包含两部分的docker-compose.yml文件:web和db。我们将使用NGINX和MySQL创建一个可以轻松用于开发目的的堆栈。docker-compose.yml文件我们要做的第一件事是创建一个新文件。我们将在刚刚创建的目录中创建此文件。执行命令mkdir~/docker-build。使用命令cd~/docker-build切换到新创建的目录。进入该目录后,使用以下命令创建一个新的docker-compose.yml文件:nanodocker-compose.yml请记住,这是一个YAML文件,因此格式必须一致(否则构建将失败)。首先要做的是添加文件头。在文件的顶部,添加以下内容:版本:'3'这指示DockerCompose我们正在使用该工具的版本3。下一行将指示DockerCompose以下将是要部署的服务。这是由以下定义的:服务:到目前为止,文件是:版本:'3'服务:我们要定义的第一部分是堆栈的网络部分。我们可以用两行简单的代码来做到这一点:web:image:nginx上面所做的是指示DockerCompose使用官方Nginx镜像来部署容器。我们没有为这个容器做任何特别的事情。这是非常基本的。下一节是定义数据库。这部分有点复杂,因为我们需要配置必要的参数以使数据库正常运行。让我们首先定义此部分:db:接下来,我们指示DockerCompose使用此数据库的MySQL映像:image:mysql现在我们定义数据库要使用的外部和内部端口。为此,我们将使用默认的MySQL端口并定义它:ports:-"3306:3306"最后我们配置数据库环境。环境是数据库的配置选项(密码、用户和数据库名称)。这部分看起来像这样:environment:-MYSQL_ROOT_PASSWORD=password1-MYSQL_USER=user-MYSQL_PASSWORD=password2-MYSQL_DATABASE=database其中:password1是MySQL管理员用户的密码。用户是新的MySQL用户。password2是新MySQL用户的密码。database是要使用的数据库的名称。以上每一项都将由您定义。确保使用唯一的强密码来确保您的堆栈安全。把这个文件放在一起看起来像这样:version:'3'services:web:image:nginxdb:image:mysqlports:-"3306:3306"environment:-MYSQL_ROOT_PASSWORD=password-MYSQL_USER=user-MYSQL_PASSWORD=password-MYSQL_DATABASE=demodb记住,文件结构必须一致,所以要注意缩进。保存并关闭文件。使用DockerCompose构建应用程序现在我们已经构建了docker-compose.yml文件,是时候构建应用程序了。由于这是一个非常简单的应用程序,它基本上部署了两个容器:一个Web服务器和一个数据库。如何使用这两个容器取决于您。当然,您可以开发自己的镜像(例如自定义Nginx和MySQL镜像,它们可以无缝协同工作以创建独特的服务或应用程序)。在本文中,我们将使用默认图像(用于演示目的)。现在,要构建堆栈,请返回终端窗口,确保您位于构建目录中,然后执行命令:docker-composeup上面的命令将部署Web容器和数据库容器。如果你只运行这条命令,容器将以附加模式部署,不会返回bash提示符。如果您想以分离模式运行,请执行此命令:docker-composeup-d运行后,您将看到列出的容器ID(图A)。图A:我们的容器正在运行要确保容器正在运行,请执行以下命令:docker-composeps您将看到列出的容器名称、命令、状态和端口(图B)。图B:docker-composeps命令的输出恭喜,您刚刚使用DockerCompose部署了第一个容器“堆栈”。是的,这个例子非常简单,但它应该能让你踏上漫长而充实的旅程。下一次,我们将创建一个与Dockerfile一起运行的更复杂的docker-compose.yml文件。原标题:HowtobuildaDockerComposefile,作者:JackWallen