docker compose工具

阅读数:98 评论数:0

跳转到新版页面

分类

应用软件

正文

一、概述

    Docker Compose 是 Docker 提供的一个工具,用于定义和运行多容器的 Docker 应用。通过一个 YAML 文件,你可以配置应用的所有服务,然后使用一个命令来创建和启动所有服务。Docker Compose 适用于开发、测试和生产环境中的多容器应用。

二、基本概念

1、service

    服务是一个应用的容器,定义了容器的镜像、命令、端口映射、环境变量等。

2、network

    服务之间可以通过网络进行通信,Docker Compose 会自动创建一个默认网络,所有服务都连接到这个网络。

3、volume

    用于持久化数据,卷可以在多个容器之间共享数据。

三、文件结构

Docker Compose 文件使用 YAML 格式,通常命名为 docker-compose.yml

1、示例:web应用和数据库

假设我们有一个简单的 Web 应用,它使用 Nginx 作为前端服务器和 MySQL 作为数据库。

version: '3.8'

services:
  web:
    image: nginx:latest
    ports:
      - "8080:80"
    volumes:
      - ./web:/usr/share/nginx/html
    networks:
      - webnet

  db:
    image: mysql:5.7
    environment:
      MYSQL_ROOT_PASSWORD: example
      MYSQL_DATABASE: exampledb
      MYSQL_USER: user
      MYSQL_PASSWORD: password
    volumes:
      - db_data:/var/lib/mysql
    networks:
      - webnet

volumes:
  db_data:

networks:
  webnet:
  • 版本version: '3.8' 指定了 Docker Compose 文件的版本。
  • 服务
    • web:定义了一个名为 web 的服务,使用 Nginx 镜像,映射端口 8080 到容器的 80 端口,并挂载本地目录 ./web 到容器的 /usr/share/nginx/html
    • db:定义了一个名为 db 的服务,使用 MySQL 5.7 镜像,设置了一些环境变量来配置数据库,并挂载一个名为 db_data 的卷到容器的 /var/lib/mysql 目录。
  • :定义了一个名为 db_data 的卷,用于持久化 MySQL 数据。
  • 网络:定义了一个名为 webnet 的网络,所有服务都连接到这个网络。

四、使用Docker Compose

1、启动服务

在包含 docker-compose.yml 文件的目录中,运行以下命令来启动所有服务:

docker-compose up

2、后台运行

如果希望在后台运行服务,可以使用 -d 参数:

docker-compose up -d

3、停止服务

要停止所有服务,可以使用以下命令:

docker-compose down

4、查看日志

要查看所有服务的日志,可以使用以下命令:

docker-compose logs

5、重新构建服务

如果修改了 Dockerfile 或者 docker-compose.yml,需要重新构建服务,可以使用以下命令:

docker-compose up --build

6、常用命令

  • docker-compose ps:列出所有运行的服务。
  • docker-compose exec <service> <command>:在指定服务的容器中执行命令。
  • docker-compose stop:停止所有服务。
  • docker-compose start:启动已停止的服务。
  • docker-compose restart:重启服务。



相关推荐