推广 热搜:   中国  未来  系统  政策  行业  设备  基金  快速  教师 

Docker——Docker Compose总结

   日期:2024-11-25     作者:caijiyuan    caijiyuan   评论:0    移动:http://mip.tpjde.com/news/1142.html
核心提示:  Docker Compose 是一种工具,用于帮助定义和共享多容器应用程序。 通过 Compose,你可以创建 YAML 文件来定义服

Docker——Docker Compose总结

  Docker Compose 是一种工具,用于帮助定义和共享多容器应用程序。 通过 Compose,你可以创建 YAML 文件来定义服务,并且只需一个命令,就可以启动或清理所有内容。

  使用 Compose 的巨大优点是,你可以在文件中定义应用程序堆栈,使其位于项目存储库的根目录下(它现在受版本控制,并方便其他人参与你的项目。 其他人只需克隆你的存储库即可开始撰写应用。 事实上,你可能会看到 GitHub/GitLab 上的很多项目现在都是这样做的。

那么,如何开始

  如果你为 Windows 或 Mac 安装了 Docker Desktop,则你已拥有 Docker Compose! Play-with-Docker 实例也已安装 Docker Compose。 如果你使用的是 Linux 计算机,则需要按照此处的说明安装 Docker Compose。 安装教程

  安装后,你应该能够运行以下内容并查看版本信息。

 

  在应用项目的根目录中,创建名为 docker-compose.yml 的文件。

  在 Compose 文件中,我们将首先定义架构版本。 在大多数情况下,最好使用支持的最新版本。 你可以查看 Compose 文件参考获取当前架构版本和兼容性矩阵。

 

  接下来,定义要作为应用程序的一部分运行的服务(或容器)列表。

 

  现在,你将开始一次将服务迁移到 Compose 文件中。

  请记住,这是用于定义应用容器的命令(在 Windows PowerShell 中,请将 ` 字符替换为 )。

 

  首先,定义容器的服务项和映像。 你可为服务选择任何名称。 该名称将自动成为网络别名,这在定义 MySQL 服务时非常有用。

 

  通常,你会看到命令接近 image 定义,尽管对排序没有要求。 接下来,将其移到该文件中。

 

  通过为服务定义 ports 来迁移命令的 -p 3000:3000 部分。 你将在此使用短语法,但此处还提供了更详细的长语法。

 

  接下来,使用 working_dir 和 volumes 定义迁移工作目录 (-w /app) 和卷映射 (-v ${PWD}:/app)。 卷还有短语法和长语法。

  Docker Compose 卷定义的一个优点是你可以使用当前目录中的相对路径。

 

  最后,使用 environment 键迁移环境变量定义。

 

  定义 MySQL 服务   现在,可以定义 MySQL 服务了。 用于该容器的命令如下(在 Windows PowerShell 中,请将 字符替换为 `

 

  首先,定义新服务并将其命名为 mysql,以便它自动获取网络别名。 同时指定要使用的映像。

 

  接下来,定义卷映射。 使用 docker run 运行容器时,会自动创建命名卷。 但是,使用 Compose 运行时,则不会。 你需要在最上面的 volumes: 部分定义卷,然后在服务配置中指定装载点。只需仅提供卷名,即可使用默认选项。 不过,还有很多可用选项。

 

  最后,只需指定环境变量。

 

  此时,完整的 docker-compose.yml 应如下所示

 

  现在你已经有了 docker-compose.yml 文件,启动它吧

  首先,确保应用和数据库的其他副本未运行。

  使用 docker-compose up 命令启动应用程序堆栈。 添加 -d 标志以在后台运行所有内容。 或者,你可以右键单击 Compose 文件,然后选择 VS Code 侧边栏上的“启动”选项。

 

  运行此操作时,你应该会看到如下输出

 

  你会注意到已创建卷和网络! 默认情况下,Docker Compose 会自动创建一个专门针对应用程序堆栈的网络(这就是为什么你在 Compose 文件中没有定义网络)。

  使用 命令查看日志。 你将看到来自每个服务的日志交汇形成一个流。 当你想要关注与时间相关的问题时,这非常有用。 -f 标志指示“跟踪”日志,因此会在生成时显示实时输出。

  如果尚未这样做,你会看到如下所示的输出

 

服务名称显示在行的开头(通常为彩色,以帮助区分消息。 如果要查看特定服务的日志,可以将服务名称添加到日志命令的末尾(例如 docker-compose logs -f app)。

  在启动应用前等待 DB 当应用启动时,它实际上会等待 MySQL 启动并准备就绪,然后再尝试连接到它。Docker 没有任何内置支持,无法等待另一个容器完全启动、运行并准备就绪,然后再启动另一个容器。 对于基于节点的项目,你可以使用 wait-port 依赖项。 其他语言/框架有类似的项目。

  此时,你应能够打开应用并看到它正在运行。 嗨! 你只需要一个命令

  当你准备好全部清理时,只需运行 ,或者在 VS Code Docker 扩展的容器列表中,右键单击应用程序,然后选择“停止”。 容器将停止,网络将删除。

  删除卷 默认情况下,运行 docker-compose down 时,Compose 文件中的命名卷不会删除。 如果要删除卷,则需要添加 --volumes 标志。

本文地址:http://www.tpjde.com/news/1142.html    推平第 http://www.tpjde.com/ , 查看更多
 
标签: 总结
 
更多>同类行业资讯
0相关评论

新闻列表
企业新闻
推荐企业新闻
推荐图文
推荐行业资讯
点击排行
网站首页  |  关于我们  |  联系方式  |  使用协议  |  版权隐私  |  网站地图  |  排名推广  |  广告服务  |  积分换礼  |  网站留言  |  RSS订阅  |  违规举报  |  鄂ICP备2023001713号