Docker使用7-Use Docker Compose

本文介绍了如何在Docker环境下,通过DockerCompose文件启动一个基于Node.js的应用,包括创建compose.yaml文件、定义服务(app和mysql)及其配置,以及启动、停止和管理docker-compose的过程。
摘要由CSDN通过智能技术生成

写在前面

主题是Use Docker Compose,这里是链接。本文学习使用Docker Compose启动应用。

使用Docker Compose启动应用

  1. 进入之前todo list的项目目录,创建compose.yaml,输入以下内容。

    ├── getting-started-app/
    │ ├── Dockerfile
    │ ├── compose.yaml
    │ ├── node_modules/
    │ ├── package.json
    │ ├── spec/
    │ ├── src/
    │ └── yarn.lock
    
    services:
      app:
        image: node:18-alpine
        command: sh -c "yarn install && yarn run dev"
        ports:
          - 127.0.0.1:3000:3000
        working_dir: /app
        volumes:
          - ./:/app
        environment:
          MYSQL_HOST: mysql
          MYSQL_USER: root
          MYSQL_PASSWORD: secret
          MYSQL_DB: todos
    
      mysql:
        image: mysql:8.0
        volumes:
          - todo-mysql-data:/var/lib/mysql
        environment:
          MYSQL_ROOT_PASSWORD: secret
          MYSQL_DATABASE: todos
    
    volumes:
      todo-mysql-data:
    

    上面定义了两个service,分别是app和mysql。app中的 volumes将当前目录映射到容器内的/app目录。mysql中的volumes将todo-mysql-data卷映射到容器内的/var/lib/mysql
    根目录的volumes表示创建名为todo-mysql-data的volume

  2. 移除之前启动的mysql容器和todo app容器,使用docker psdocker rm -f <ids>即可

  3. 输入以下命令启动服务,其中-d表示让服务在后台运行

    docker compose up -d
    

    你会看到类似的输出

    Creating network "app_default" with the default driver
    Creating volume "app_todo-mysql-data" with default driver
    Creating app_app_1   ... done
    Creating app_mysql_1 ... done
    

    可以看到 Docker Compose 自动创建了一个名为app_default的network。这就是不用在上面声明network的原因。

  4. 访问http://lcoalhost:3000,可以看到正常运行

停止运行

如果需要停止运行docker compose需要执行以下命令。默认情况下是不会移除volume的,除非加上--volumes

docker compose down 
docker compose down --volumes
  • 16
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值