docker compose示例

Docker Compose 是一个用于定义和运行多容器 Docker 应用程序的工具。使用 Compose,您可以使用 YAML 文件来配置应用程序的服务,然后使用一个命令,就可以创建并启动所有服务。这对于开发、测试和部署分布式系统非常有用。

安装 Docker Compose

在 Linux 上安装

  1. 下载 Docker Compose 的二进制文件
    访问 Docker Compose release page 下载最新稳定版本的二进制文件。

  2. 设置可执行权限

    sudo chmod +x /usr/local/bin/docker-compose
    
  3. 验证安装

    docker-compose --version
    

在 macOS 和 Windows 上安装

对于 macOS,Docker Desktop for Mac 自带 Docker Compose。对于 Windows,Docker Desktop for Windows 同样内置了 Docker Compose。

Docker Compose 文件

Docker Compose 使用 YAML 文件来配置服务。这个文件默认命名为 docker-compose.yml,并位于项目的根目录中。

基本结构

version: '3.8'  # 指定 Compose 文件的版本
services:       # 定义服务的列表
  webapp:       # 服务名称
    image: nginx:latest  # 使用的镜像
    ports:
      - "5000:80"        # 端口映射
    volumes:
      - ./static:/usr/share/nginx/html  # 卷挂载

常用指令

  • docker-compose up:启动所有服务。
  • docker-compose down:停止并移除所有容器、网络、镜像、卷(默认不删除卷)。
  • docker-compose ps:列出所有运行中的容器。
  • docker-compose logs:查看服务容器的输出。
  • docker-compose restart:重启服务。

服务配置

镜像

  • 使用 Docker Hub 或其他镜像仓库中的镜像。
  • 也可以指定 Dockerfile 来构建镜像。

端口映射

将容器内的端口映射到宿主机上的端口,使得服务可以通过宿主机的端口访问。

卷(Volumes)

卷用于数据的持久化存储,并且可以在宿主机和容器之间共享。

依赖

使用 depends_on 来定义服务之间的依赖关系,确保服务启动的顺序。

环境变量

通过环境变量来配置服务,可以在 docker-compose.yml 文件中直接设置,也可以从外部文件导入。

网络

Docker Compose 会默认创建一个网络,使得服务之间可以互相通信。也可以自定义网络配置。

示例

一个简单的 Web 应用和数据库服务

version: '3.8'
services:
  webapp:
    image: nginx:latest
    ports:
      - "80:80"
    depends_on:
      - db
    volumes:
      - ./static:/usr/share/nginx/html

  db:
    image: mysql:5.7
    environment:
      MYSQL_ROOT_PASSWORD: root
    volumes:
      - db-data:/var/lib/mysql

volumes:
  db-data:

这个示例中,定义了两个服务:webappdbwebapp 依赖于 db 服务,并使用 Nginx 镜像来托管静态文件。db 服务使用 MySQL 镜像,并设置了一个环境变量来指定 root 用户的密码。同时,为 MySQL 设置了数据卷来持久化存储数据。

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容