Docker Compose 是一款 Docker 提供的优雅的容器编排工具,通过 Docker Compose 可以方便地定义、运行和管理多个容器应用。这篇文章将介绍 Docker Compose 的详细使用方法,并包含示例代码。
Docker Compose 的基本概念
Docker Compose 主要由以下几个概念组成:
- Services:服务,定义了一个容器应用及其相关的配置,例如镜像、环境变量、网络等。
- Networks:网络,定义了多个服务之间的通信方式,例如使用 bridge 网络模式还是使用 overlay 网络模式。
- Volumes:卷,定义了多个服务之间共享数据的方式,例如使用本地卷还是使用远程卷。
Docker Compose 示例代码
下面是一个使用 Docker Compose 编排容器的示例代码,该代码定义了一个包含 MySQL 和 PHPMyAdmin 两个服务的容器应用,它们之间使用默认的 bridge 网络模式进行通信:
// javascriptcn.com 代码示例 version: "3" services: db: image: mysql:5.7 restart: always environment: MYSQL_ROOT_PASSWORD: root MYSQL_DATABASE: test_db MYSQL_USER: test_user MYSQL_PASSWORD: test_pwd volumes: - ./data:/var/lib/mysql phpmyadmin: image: phpmyadmin/phpmyadmin restart: always environment: PMA_HOST: db PMA_USER: test_user PMA_PASSWORD: test_pwd ports: - "8080:80" depends_on: - db
该代码分为两个部分,其中 version 用来指定 Docker Compose 文件的版本,这里使用的是 3。services 定义了两个服务,一个是 db (MySQL),另一个是 phpmyadmin (PHPMyAdmin)。
其中 db 服务使用了 mysql:5.7 镜像,定义了几个环境变量,分别指定了 MySQL 的管理员密码、数据库名称、用户名和密码,并使用了本地卷将数据存储到 ./data 目录中。
phpmyadmin 服务使用了 phpmyadmin/phpmyadmin 镜像,定义了两个环境变量,分别指定了 PHPMyAdmin 的登录信息,使用了动态映射端口,将服务监听的 80 端口映射到宿主机的 8080 端口上。同时,该服务还定义了 depends_on 属性,指定了当前服务所依赖的 db 服务,以保证正确的启动顺序。
Docker Compose 命令
定义了 Docker Compose 文件之后,我们可以使用如下的命令来管理容器应用:
- docker-compose up:启动容器应用,并自动构建镜像。
- docker-compose down:停止容器应用,同时删除容器和相关的网络和卷。
- docker-compose start:启动容器应用。
- docker-compose stop:停止容器应用。
- docker-compose restart:重启容器应用。
- docker-compose ps:查看当前容器应用的状态。
- docker-compose logs:查看容器应用的日志信息。
- docker-compose exec:进入容器内部执行命令。
总结
本文介绍了 Docker Compose 的基本概念和使用方法,并给出了一个示例代码来演示如何使用 Docker Compose 编排容器应用。通过 Docker Compose,我们可以非常方便地管理容器应用,提高了开发效率,同时也使得容器应用更加可靠和稳健。
来源:JavaScript中文网 ,转载请注明来源 本文地址:https://www.javascriptcn.com/post/652e97307d4982a6ebfa203c