如何构建Docker Compose文件?

如何构建Docker Compose文件?

译文
作者:布加迪编译 2019-07-29 08:00:18

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

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

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

我将尽量简单地为你细述这个问题,以便你了解如何自行构建基本的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来创建一个轻松用于开发目的的堆栈。

  1. docker-compose.yml文件 

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

  1. nano docker-compose.yml 

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

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

  1. version: '3' 

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

  1. services: 

到目前为止,文件是:

  1. version : '3'  
  2. services: 

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

  1. web:  
  2. image: nginx 

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

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

  1. db: 

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

  1. image:mysql 

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

  1. ports:  
  2. - "3306:3306" 

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

  1. environment: 
  2.  
  3. - MYSQL_ROOT_PASSWORD=password1  
  4. - MYSQL_USER=user  
  5. - MYSQL_PASSWORD=password2  
  6. - MYSQL_DATABASE=database 

其中:

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

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

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

  1. version: '3' 
  2.  
  3. services: 
  4.  
  5. web: 
  6.  
  7. image: nginx 
  8.  
  9. db:  
  10. image: mysql 
  11.  
  12. ports: 
  13. - "3306:3306" 
  14.  
  15. environment:  
  16. - MYSQL_ROOT_PASSWORD=password  
  17. - MYSQL_USER=user  
  18. - MYSQL_PASSWORD=password  
  19. - MYSQL_DATABASE=demodb 

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

保存并关闭该文件。

用Docker Compose来构建应用程序

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

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

  1. docker-compose up 

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

  1. docker-compose up -d 

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

图A:我们的容器在运行

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

  1. docker-compose ps 

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

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

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

原文标题:How to build a Docker Compose file,作者:Jack Wallen

【51CTO译稿,合作站点转载请注明原文译者和出处为51CTO.com】

文章来源网络,作者:管理,如若转载,请注明出处:https://shuyeidc.com/wp/273202.html<

赞 (0)
管理的头像管理
上一篇2025-05-09 04:05
下一篇 2025-05-09 04:06

相关推荐

  • jsp空间购买和交换数据空间怎么买,有哪些注意事项?

    购买JSP空间时,是否考虑过数据交换空间的性能?简米科技(2003年始创,23年行业沉淀)与酷番云(工信部一类增值电信全牌照)这类持牌自营机房的服务商,能确保数据交换的高效稳定,是值得优先选择的合作伙伴,为什么JSP空间需要搭配独立的数据交换空间从JSP应用特性看数据交换需求JSP基于Java技术,常用于企业级……

    2026-08-11
    0
  • 建网站用香港空间效果怎么样,香港空间稳定吗?

    建网站用香港空间,对于创建网站资产来说,核心价值在于免备案和全球带宽优势,尤其适合外贸、跨境电商和需要快速启动的项目,但你必须权衡国内访问延迟,并选择有资质的服务商以保证资产安全,香港空间的核心优势与适用边界免备案:节省时间就是节省成本国内服务器需要备案,通常需要10到20天,香港空间无需备案,域名解析后即可上……

    2026-08-11
    0
  • Java连接云数据库的方法是什么,如何操作

    Java连接云数据库的核心在于通过JDBC驱动,结合云服务商提供的连接地址、端口、数据库名及认证信息,配置安全策略(如SSL、IP白名单),即可实现稳定高效的远程数据库访问,基础准备:JDBC驱动与依赖管理连接云数据库前,需要确保开发环境具备对应的JDBC驱动,以最常见的MySQL为例,你需要引入mysql-c……

    2026-08-11
    0
  • 建网站公安联网备案必须使用数据码吗,备案流程是什么

    网站备案包括ICP备案和公安联网备案,两者缺一不可,公安联网备案必须使用服务商提供的数据码,选择持有合法资质的服务商是顺利通过备案的前提,为什么网站必须进行公安联网备案根据公安部《计算机信息网络国际联网安全保护管理办法》,网站开通后30日内必须到公安机关办理备案手续,未完成公安备案的网站,面临责令整改、关闭网站……

    2026-08-10
    0
  • 建一个企业网站大概需要多少钱?,怎么收费?

    建网站要多少钱,没有一个固定的数字,几百到几万都可能,但真正的“创建网站资产”绝不仅仅是初次投入的成本,而是基于长期稳定、合规和安全的持续性投入,其中核心取决于你选择了什么样的“地基”来承载你的业务,建站预算的构成与行业基准当你开始规划一个网站,最先面对的就是预算问题,一个常见的误区是只关注网站“看起来”的建造……

    2026-08-10
    0

发表回复

您的邮箱地址不会被公开。必填项已用 * 标注