7人参与 • 2025-04-24 • 云虚拟主机
docker compose 是一个用于定义和运行多容器 docker 应用的工具。通过一个 docker-compose.yml
文件,你可以轻松地定义应用中的服务、网络、存储卷等资源,并用一个命令启动所有服务。docker compose 主要用于简化多容器应用的开发、测试和部署流程。
本文将详细介绍 docker compose 的配置、常用命令,以及使用方法的具体示例。
docker compose 的核心配置文件是 docker-compose.yml
,它遵循 yaml 格式来定义应用中的多个服务。
一个最基础的 docker-compose.yml
文件结构通常包括以下部分:
services: # 定义服务 web: image: nginx # 使用官方 nginx 镜像 ports: - "8080:80" # 将宿主机的8080端口映射到容器的80端口 volumes: - ./html:/usr/share/nginx/html # 将本地html文件夹挂载到容器的html目录 networks: - webnet # 使用名为 webnet 的网络 db: image: mysql:5.7 # 使用 mysql 镜像 environment: mysql_root_password: example # 设置mysql root 密码 networks: - webnet # 使用同样的网络 networks: webnet: # 定义 webnet 网络
nginx
),或者是自己构建的镜像。"宿主机端口:容器端口"
。build
:从 dockerfile 构建镜像。
build: context: ./app # 指定 dockerfile 目录
depends_on
:服务之间的依赖关系,确保容器启动顺序。
depends_on: - db
restart
:容器退出后的重启策略。
restart: always # 始终重启容器
首先,创建一个 docker-compose.yml
文件,定义你的应用程序中所需的服务。
docker-compose.yml
文件。例如,创建一个包含 nginx
和 mysql
的示例文件:
services: web: image: nginx ports: - "8080:80" volumes: - ./html:/usr/share/nginx/html networks: - webnet db: image: mysql:5.7 environment: mysql_root_password: example networks: - webnet networks: webnet:
在 docker-compose.yml
文件所在的目录,打开命令行并运行以下命令:
docker compose up
该命令会启动所有定义在 docker-compose.yml
中的服务。你可以通过浏览器访问 http://localhost:8080
来查看 nginx 服务是否已经启动。
如果你希望容器在后台运行,可以使用 -d
参数:
docker compose up -d
这样,docker compose 将会在后台启动所有服务。
可以使用以下命令查看正在运行的容器状态:
docker compose ps
输出示例如下:
name command state ports ------------------------------------------------------------ myapp_db_1 docker-entrypoint.sh mysqld up 3306/tcp myapp_web_1 /docker-entrypoint.sh nginx up 0.0.0.0:8080->80/tcp
可以查看各个服务的日志信息:
docker compose logs
或者查看特定服务的日志,例如查看 web
服务:
docker compose logs web
停止并删除所有服务容器及其相关资源:
docker compose down
如果只想停止服务,而不删除容器,可以使用:
docker compose stop
如果修改了 dockerfile
或 docker-compose.yml
中的某些内容,可以使用 --build
参数重新构建镜像:
docker compose up --build
这样会重新构建服务并启动容器。
启动和运行多容器服务。通过 docker-compose.yml
文件来启动、停止容器。
docker compose up
常用参数:
-d
:后台运行容器。--build
:在启动之前构建镜像。--force-recreate
:强制重新创建容器。停止并删除所有容器、网络、卷等资源。
docker compose down
常用参数:
--volumes
或 -v
:同时删除数据卷。--remove-orphans
:删除与当前服务不相关的容器。查看当前运行的容器和服务状态。
docker compose ps
输出包括每个容器的名称、状态、端口等信息。
查看服务日志。默认情况下,显示所有服务的日志。
docker compose logs
查看特定服务的日志:
docker compose logs <service-name>
例如,查看 web
服务的日志:
docker compose logs web
docker compose exec
在正在运行的容器内执行命令。比如,进入 web
容器的 bash 环境:
docker compose exec web bash
停止所有运行中的服务容器,但不会删除它们。停止后可以通过 docker compose start
恢复服务。
docker compose stop
手动构建镜像。如果在 docker-compose.yml
中使用了 build
选项,可以使用此命令来重新构建镜像。
docker compose build
docker compose 是一个功能强大的工具,适用于本地开发、测试和多容器应用的管理。通过一个简单的 docker-compose.yml
文件,你可以定义、构建并管理多个容器应用,避免了手动管理多个 docker 容器的复杂性。本文介绍了如何配置 docker compose 文件、使用流程和常用命令,帮助你更高效地使用 docker compose 来部署和管理容器化应用。
常见的 docker compose 命令如 up
、down
、ps
、logs
等,可以帮助你快速管理和调试多容器应用。此外,compose 的强大功能还包括服务依赖、环境变量、卷管理等,极大地提升了容器化应用的开发效率和可维护性。
到此这篇关于docker compose 配置指南小结的文章就介绍到这了,更多相关docker compose 配置内容请搜索代码网以前的文章或继续浏览下面的相关文章希望大家以后多多支持代码网!
您想发表意见!!点此发布评论
版权声明:本文内容由互联网用户贡献,该文观点仅代表作者本人。本站仅提供信息存储服务,不拥有所有权,不承担相关法律责任。 如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 2386932994@qq.com 举报,一经查实将立刻删除。
发表评论