Docker教程:docker-compose


我们可以通过基本的docker命令来运行不同的容器,同时可以使用Docker Network使得不同容器之间可以互相沟通。但这种方式较为笨重。下面介绍如何使用Docker Compose来运行多个容器。

Docker Compose介绍

Docker Compose的作用就是设定多个容器。在一个软件项目中,可能需要使用多个微服,而这些微服可以选择运行在Docker容器中。Docker Compose就能起到把这些微服进行统一管理的作用。

比如:设定mongo及mongo-express容器:

version: '3'
services:
  mongodb:
    image: mongo
    ports:
      - 27017:27017
    environment:
      - MONGO_INITDB_ROOT_USERNAME=admin
      - MONGO_INITDB_ROOT_PASSWORD=12345
  mongo-express:
    image: mongo-express
    ports:
      - 8081:8081
    environment:
      - ME_CONFIG_MONGODB_ADMINUSERNAME=admin
      - ME_CONFIG_MONGODB_ADMINPASSWORD=12345
      - ME_CONFIG_MONGODB_SERVER=mongodb

在使用Docker Compose的时候,无需在多个容器中指定同样的Docker Network:Docker Compose会自动创建Docker Network并将其与相关的容器绑定。

启动容器:

docker-compose -f demo.yaml up

关闭容器:

docker-compose -f demo.yaml down

在Ubuntu下安装Docker Compose

参考官网:https://docs.docker.com/compose/install/linux/

运行如下命令:

sudo apt-get install docker-compose-plugin
docker compose version

基于Docker Compose的开发流程

使用Dockerfile定义单独的微服并创建对应的镜像

使用Docker Compose将这些微服连接到一起,形成一个完整的应用

运行docker compose up命令,启动整个应用

Docker Compose常用命令

docker compose up: 启动所有服务
docker compose up -d: 以后台方式启动所有服务
docker compose down: 停止所有服务
docker compose start: 启动服务
docker compose stop: 停止服务
docker compose restart: 重启服务
docker compose exec SERVICE_ID /bin/bash: 进入某个服务对应的容器内部,并运行/bin/bash
docker compose ps:展示所有运行的编排过的容器
docker compose logs SERVICE_ID: 查看某个服务的日志
docker compose config: 检查配置
docker compose config -q: 检查配置,如果配置有问题,则输出相关信息


文章作者: 逻思
版权声明: 本博客所有文章除特別声明外,均采用 CC BY-NC-ND 4.0 许可协议。转载请注明来源 逻思 !
  目录