1. 首页

docker-compose入门指南

什么是 docker-compose

通俗的说,docker-compose 正如其名,是将你的多个 docker 容器服务整合起来的命令行工具。举个例子,假设你有一个 MySQL 实例和一个 Node.js 实例分别部署在两个容器中,仅需一个docker-compose.yml文件,docker-compose 就可以为你完成从打包到运行的所有步骤,并如果你还在苦恼手动执行各种docker run [] 命令,这份指南可能能够帮上你。

安装

如果你是在本地开发环境中使用 docker-compose,你不需要安装任何的依赖项,Docker for Windows 和 Docker for Mac 都已经内置了 docker-compose 的包

在 Linux based 服务器上安装:

  • 在 terminal 中运行 sudo curl -L https://github.com/docker/compose/releases/download/1.16.1/docker-compose-`uname -s`-`uname -m`-o /usr/local/bin/docker-compose 下载 docker-compose 的安装脚本
  • 为脚本添加执行权限sudo chmod +x /usr/local/bin/docker-compose
  • 执行脚本sh /usr/local/bin/docker-compose

容器编排

docker-compose 使用目录下的docker-compose.yml 作为项目的配置文件, 以上述我们举的 MySQL 和 Node.js 应用的例子 docker-compose.yml 文件应该具有类似以下的结构:

你可以在Github上克隆和运行下文中的示例

 yml
services:
  mysql:
    image: mysql:latest
    ports:
      - '3306:3306'
    restart: always
    environment:
      MYSQL_ROOT_PASSWORD: '123456'

  webapp:
    build: .
    container_name: webapp
    restart: always
    depends_on:
      - 'mysql'
    environment:
      NODE_ENV: 'production'
    ports:
      - '80:8080'


Js中文网 – 全球前端挚爱的技术成长平台 www.javascriptC.com
Javascript中文网是以前端进阶资源教程分享为主的专业网站,包括:前端教程、JavaScript资讯、大厂面试题、typescript教程、程序人生、React.js源码解读、Vue3.js技术揭秘等,以帮助开发者成长为愿景的社区

看不懂是很正常的,下面我们来一条一条详细剖析每个配置项是什么意思

  • services 表示该集合下包含的所有服务,在这个例子中我们有 mysql 和 webapp 两个服务

  • image 表示从官方维护的 mysql 镜像构建我们的容器

  • port 表示将 docker 宿主机的 3306 端口映射 docker 容器的 3306 端口上,这样我们就能在宿主上通过 localhost:3306 连接到我们的 mysql 数据库

  • webapp

    • build: 表示 docker 从哪个文件夹开始构建镜像
    • container_name: 容器名字
    • restart: 表示 Dockerfile 中的 CMD 命令返回任何非 0 的状态时都将重启容器
    • depends_on: 容器的依赖。在这里,webapp 容器会保证在 mysql 容器之后启动。
    • environment: 需要注入的 unix 环境变量,供容器使用。

注意:services 下的所有服务会共享同一个 docker network,这意味着你可以再 webapp 容器中通过 mysql:3306 访问到 mysql 服务,在 mysql 容器中通过 webapp:8080 访问到我们的 express 服务端, 更加详细的 networks 配置请查阅 Networking in Compose

depends_on 仅仅保证容器的执行顺序,而不保证你的应用已经在可用的状态(不管可用的状态对于你的应用意味着什么)。docker 这样设计是经过了周密考虑的:为了保证应用的健壮性,你应该自行定义在容器之间服务连接错误时候的重试/重启机制。

  1. 接下来,你仅需要在项目目录下运行docker-compose up 即可看到 docker 开始构建镜像并启动服务
  2. 如果需要以后台守护进程模式启动 使用docker-compose up -d
  3. docker-compose down来停止运行中的容器
  4. docker-compose build重新构建容器

运行成功后,访问http://localhost 可以看到 express 服务器的 hello world 示例,http://localhost/mysql 可以检查 mysql 连接状态

docker 官网提供的其他示例:

完整的配置项文档请移步docker 官网文档

原文链接

作者:serializedowen
链接:https://juejin.im/post/6886018425353682951

看完两件小事

如果你觉得这篇文章对你挺有启发,我想请你帮我两个小忙:

  1. 关注我们的 GitHub 博客,让我们成为长期关系
  2. 把这篇文章分享给你的朋友 / 交流群,让更多的人看到,一起进步,一起成长!
  3. 关注公众号 「画漫画的程序员」,公众号后台回复「资源」 免费领取我精心整理的前端进阶资源教程

JS中文网是中国领先的新一代开发者社区和专业的技术媒体,一个帮助开发者成长的社区,目前已经覆盖和服务了超过 300 万开发者,你每天都可以在这里找到技术世界的头条内容。欢迎热爱技术的你一起加入交流与学习,JS中文网的使命是帮助开发者用代码改变世界

本文著作权归作者所有,如若转载,请注明出处

转载请注明:文章转载自「 Js中文网 · 前端进阶资源教程 」https://www.javascriptc.com

标题:docker-compose入门指南

链接:https://www.javascriptc.com/4718.html

« Linux 安装 Nginx 教程
再来一打Webpack面试题»
Flutter 中文教程资源

相关推荐

QR code