Docker Compose 学习笔记

简介

Docker Compose 是一个用来定义和运行多个 Docker 容器应用的工具。它通过一个 YAML 文件来配置应用的服务,并同时启动这些服务。它可以在开发、测试和生产环境中使用,使得部署变得更加方便。

安装

Docker Compose 可以在官网下载最新版本:https://docs.docker.com/compose/install/

使用

编写 Docker Compose 文件

yamlCopy Code
version: '3' services: web: build: . ports: - "5000:5000" volumes: - .:/code # 使用链接的方式连接到 redis 服务 links: - redis redis: image: "redis:alpine"

上面是一个 Docker Compose 的例子,包含两个服务:webredis。其中,web 服务用于运行一个 Flask 应用,redis 服务用于运行一个 Redis 实例。在 web 服务的配置中,我们指定了构建镜像的路径、端口映射、挂载卷和与 redis 服务的链接。

构建和启动应用

bashCopy Code
docker-compose up

使用以上命令即可在当前目录下寻找名为 docker-compose.yml 的文件,然后启动该应用程序。如果想要在后台运行,可以使用 -d 参数。

bashCopy Code
docker-compose up -d

查看应用状态

bashCopy Code
docker-compose ps

使用以上命令可以查看应用程序的运行状态。

停止和删除应用

bashCopy Code
docker-compose down

使用以上命令即可停止并删除应用程序。

实例

使用 Docker Compose 部署 WordPress 应用程序

以下是一个使用 Docker Compose 部署 WordPress 应用程序的例子:

yamlCopy Code
version: '3' services: db: image: mysql:5.7 volumes: - db_data:/var/lib/mysql restart: always environment: MYSQL_ROOT_PASSWORD: somewordpress MYSQL_DATABASE: wordpress MYSQL_USER: wordpress MYSQL_PASSWORD: wordpress wordpress: depends_on: - db image: wordpress:latest ports: - "8000:80" restart: always environment: WORDPRESS_DB_HOST: db:3306 WORDPRESS_DB_USER: wordpress WORDPRESS_DB_PASSWORD: wordpress WORDPRESS_DB_NAME: wordpress volumes: db_data:

此示例定义了两个服务:dbwordpressdb 服务使用 MySQL 镜像,wordpress 服务使用 WordPress 镜像。这两个服务通过 depends_on 关键字来关联起来。

默认情况下,WordPress 应用程序将在端口 8000 上运行。可以通过访问 http://localhost:8000 来访问该应用程序。