当前位置: 首页 > ds >正文

docker-compose常用命令介绍

Compose常用命令

Docker Compose 是一个用于定义和运行多容器 Docker 应用程序的工具。通过 docker-compose.yml 文件,你可以配置应用程序的服务、网络和卷。

注意:需要在包含 docker-compose.yml 文件的目录下执行它们,且下面的命令后面省略了 服务名,比如 docker-compose up myapp -d

1、docker-compose up

该命令会构建、创建、启动容器,并附加到它们上。使用 -d 参数可以使容器在后台运行。

docker-compose up -d# 删除停止的服务容器
docker-compose rm# 查看端口映射
docker-compose port [service_name] [private_port]
# 示例:docker-compose port web 80

2、docker-compose down

停止并移除容器、网络、镜像以及卷(如果使用默认配置)。

docker-compose down

注意:添加 --volumes 同时删除命名卷:docker-compose down --volumes

3、docker-compose start

docker-compose start

4、docker-compose stop

停止正在运行的容器而不删除它们,以便以后可以重新启动。

docker-compose stop

5、docker-compose restart

重启服务容器。

docker-compose restart

6、docker-compose build

构建或重建服务。此命令等同于执行 docker-compose up 时自动进行的构建步骤。

docker-compose build

注意:添加 --no-cache 不使用缓存:docker-compose build --no-cache

7、docker-compose logs

查看服务容器输出的日志信息。使用 -f 参数可以实时跟踪日志输出。

docker-compose logs -f

8、docker-compose exec

进入某个服务的容器中执行命令,类似于 Docker 的 exec 命令。

docker-compose exec [service_name] [command]# 运行一次性命令
docker-compose run [service_name] [command]
# 示例:docker-compose run web python manage.py migrate

9、docker-compose config

查看服务配置。

docker-compose config# 验证配置
docker-compose config -q

10、docker-compose pause

暂停服务。

docker-compose pause [service_name]# 恢复暂停的服务
docker-compose unpause [service_name]

11、docker-compose scale

扩展服务。

docker-compose scale 命令原本是用来扩展 Docker Compose 文件中定义的服务实例数量的。例如,如果你定义了一个名为 web 的服务,使用 docker-compose scale web=3 可以启动三个该服务的实例。

docker-compose scale [service_name]=[num]# 示例:docker-compose scale web=3 worker=2

不过,需要注意的是,scale 命令在Compose文件版本2.x中有效,从 Docker Compose 2.x 版本开始,docker-compose scale 命令已经被弃用,并且在最新的版本中被移除。取而代之的是通过修改 docker-compose.yml 文件来实现相同的功能。现在推荐的方式是在 Compose 文件中使用 scale 参数或者直接指定服务的数量。例如:

services:web:image: "example/webapp"deploy:replicas: 3
---
# 也可以使用环境变量(建议使用Docker自动命名)
services:app:container_name: myapp_${INSTANCE_NUMBER}image: my-image

在这个例子中,replicas: 3 表示将会启动三个 web 服务的实例。

版本v3+替代命令

docker-compose up -d --scale [service_name]=[num]

容器名称问题

如果直接这样使用,则会报错,也就是没有什么效果,这是因为 Docker 要求每个容器必须有唯一的名称。

所以我们只有在 docker-compose.yml 文件中,去掉或注释掉 container_name 指令,docker-compose 在使用 scale 的时候,会自动命令容器,默认格式为:

[project]_[service]_[index]
比如:myproject_app_1

如果您在应用中硬编码了容器名称进行服务发现,移除 container_name 后可能需要调整。

考虑使用 Docker 内置的 DNS 服务发现(通过服务名访问)。

其他容器可以通过服务名称(如 app)访问该服务,不需要知道具体容器名称。

Docker 会自动处理负载均衡。

容器端口问题

上述解决了容器命名的问题,还有一个端口问题,我们也建议让 Docker,随机映射端口,在 docker-compose.yml 文件中就需要写:

services:app:# container_name: myappimage: dockette/jdk8ports:- "8090"- "8080-8090:8090"  # 或者让Docker在范围内选择可用端口

上述就是通过仅指定容器端口而不指定主机端口来实现,这样,Docker 会自动为你选择一个可用的主机端口映射到容器的8090端口。

关于容器的负载均衡,后面单独来写。

12、docker-compose -f

指定配置文件。

docker-compose -f [file_name.yml] [command]# 可以指定多个文件
docker-compose -f docker-compose.yml -f docker-compose.prod.yml up

完毕。

http://www.xdnf.cn/news/8221.html

相关文章:

  • 已经 上线 Vue 项目 国际化 i18n 中译英
  • OpenCV 图像对象的创建与赋值
  • Apollo10.0学习——planning模块(9)之参数详解一
  • Vscode +Keil Assistant编译报错处理
  • C++ -- vector
  • 系统性能分析基本概念(5) : 何时开始性能分析
  • 【语法】C++的map/set
  • 平安健康2025年一季度深耕医养,科技赋能见成效
  • Android Service与BroadcastReceiver深度解析:从零到一的实现与优化
  • python实现web请求
  • 力扣小题, 力扣113.路径总和II力扣.111二叉树的最小深度 力扣.221最大正方形力扣5.最长回文子串更加优秀的算法:中心扩展算法
  • 解压软件推荐:功能、优缺点及使用技巧
  • 【题解-洛谷】P11951 [科大国创杯初中组 2023] 数数
  • w~自动驾驶~合集13
  • 杰发科技AC7840——使用内部温度
  • IO多路复用
  • mysql 创建用户,创建数据库,授权
  • Spring Boot 内置工具类汇总与讲解
  • NumPy 2.x 完全指南【十八】数组元素的新增和删除
  • 数据结构与算法-算法复杂度
  • vue页面目录菜单有些属性是根据缓存读取的。如果缓存更新了。希望这个菜单也跟着更新。
  • 编程速递-RAD Studio 12.3 Athens五月补丁:May Patch Available
  • 制作一款打飞机游戏54:子弹编辑UI
  • 视频文件损坏怎么修复?4款专业视频修复工具推荐
  • JUC入门(六)
  • webpack性能优化
  • 【Pandas】pandas DataFrame round
  • 深入解读Qwen3技术报告(三):深入剖析Qwen3模型架构
  • 【网络篇】TCP协议的三次握手和四次挥手
  • 动手学深度学习12.5. 多GPU训练-笔记练习(PyTorch)