[colima 代替 docker desktop | docker compose]
# 安装 colima(需要先安装 brew)
brew install colima docker docker-compose
# 启动 colima
colima start
# 直接使用 docker 命令
docker run hello-world
还是需要 docker 的
# 1. 安装 Colima(核心管理工具)
brew install colima
# 2. 安装 Docker 客户端(必须,宿主机执行 docker 命令用)
brew install docker
# 3. 可选:安装 Docker Compose(按需)
brew install docker-compose # 旧版(独立工具)
# 或安装新版 Compose 插件(推荐) 使用不带短横线的命令;docker compose up
brew install docker-compose-plugin
# 4. 启动 Colima(默认启动 Docker 运行时)
colima start
# 验证:宿主机执行 docker 命令,会自动关联 Colima 内的 Docker 守护进程
docker info
#安装colima
brew install colima
#安装完后验证
colima version
#colima启动,这里特别要注意--mount-type 9p这个参数,否则后面挂载目录到宿主机时会有权限问题。
colima start --cpu 4 --memory 8 --disk 20 --mount-type 9p
#如果本地需要k8s(k3s)集群环境,安装kubernetes需要时间,请耐心等待。… #先安装kubect1
brew install kubectl
#启动带上--kubernetes参数
colima start --cpu 4 --memory 8 --disk 20 --mount-type 9p --kubernetes
#启动后验证
#能正确输出
docker ps
#能正确显示为运行中
colima status
docker compose
docker compose up 相关的完整命令,以及新旧版 Compose 的区别:
一、docker compose 核心作用与完整常用命令
docker compose(新版)/docker-compose(旧版)是 Docker 官方的多容器编排工具,核心作用是:通过一个 docker-compose.yml 配置文件,一次性定义、启动、管理多个相互关联的 Docker 容器(比如前端、后端、数据库容器),不用手动逐个 docker run 启动,极大简化多容器应用的部署。
下面是 docker compose(新版,无短横线)的完整常用命令集,按使用流程分类,每个命令都标注核心作用:
1. 基础启动/停止
| 命令 | 核心作用 |
|---|---|
docker compose up |
前台启动所有容器(终端关闭则容器停止),首次运行会自动构建/拉取镜像 |
docker compose up -d |
后台启动(守护进程模式),最常用的启动命令 |
docker compose up --build |
启动前强制重新构建镜像(代码修改后用) |
docker compose down |
停止并删除容器、网络(保留镜像/数据卷) |
docker compose down -v |
停止并删除容器、网络、数据卷(彻底清理) |
docker compose stop |
仅停止容器(不删除,可通过 start 重启) |
docker compose start |
启动已停止的容器 |
docker compose restart |
重启所有/指定容器(如 docker compose restart web) |
2. 状态查看
| 命令 | 核心作用 |
|---|---|
docker compose ps |
查看当前 Compose 管理的容器状态 |
docker compose logs |
查看所有容器的日志 |
docker compose logs -f |
实时跟踪日志(类似 tail -f) |
docker compose logs [服务名] |
查看指定服务的日志(如 docker compose logs mysql) |
3. 镜像/依赖管理
| 命令 | 核心作用 |
|---|---|
docker compose build |
构建 docker-compose.yml 中定义的镜像(仅构建,不启动) |
docker compose pull |
拉取配置文件中指定的镜像(不构建、不启动) |
docker compose exec [服务名] [命令] |
进入指定容器执行命令(如 docker compose exec web bash) |
docker compose rm |
删除已停止的容器 |
4. 其他实用命令
| 命令 | 核心作用 |
|---|---|
docker compose top |
查看容器内运行的进程 |
docker compose config |
验证 docker-compose.yml 配置文件语法是否正确 |
docker compose pause/unpause |
暂停/恢复容器 |
二、新旧版 Compose 核心区别(docker compose vs docker-compose)
简单说,两者本质功能一致,但架构、安装方式、使用体验有核心差异,具体对比如下:
| 维度 | 旧版(docker-compose) |
新版(docker compose) |
|---|---|---|
| 本质 | 独立的 Python 脚本(第三方工具) | Docker 官方 CLI 插件(集成到 docker 命令中) |
| 安装方式 | brew install docker-compose(独立安装) |
brew install docker-compose-plugin(作为 Docker 插件) |
| 命令格式 | 带短横线:docker-compose up |
无短横线:docker compose up(更符合 Docker 命令风格) |
| 维护状态 | 官方已停止新功能开发,仅维护 bug | 官方主推,持续更新新功能 |
| 兼容性 | 仅支持旧版配置(部分新版特性不兼容) | 兼容旧版配置,且支持最新 Compose 规范 |
| 集成度 | 和 Docker CLI 分离,需单独升级 | 和 docker 命令深度集成,升级 Docker 可同步升级 |
关键补充:
- 旧版
docker-compose是早期的独立工具,基于 Python 开发,因为架构限制,官方在 2020 年后主推新版插件式docker compose; - 两者的
docker-compose.yml配置文件语法基本兼容(新版支持更多新特性),你写的配置文件不用改,只是执行命令时把短横线去掉即可; - 如果你装了新版插件,输入
docker-compose也可能能运行(系统会自动映射),但推荐用docker compose保持规范。
三、实操示例(快速上手)
- 先写一个简单的
docker-compose.yml(启动 Nginx 容器):
version: '3.8' # Compose 规范版本,新版推荐 3.8+
services:
nginx:
image: nginx:latest
ports:
- "8080:80" # 宿主机 8080 端口映射到容器 80 端口
restart: always # 容器异常退出时自动重启
- 执行命令:
# 后台启动容器(新版命令)
docker compose up -d
# 查看容器状态
docker compose ps
# 查看 Nginx 日志
docker compose logs nginx
# 停止并删除容器
docker compose down
总结
docker compose up核心是一键启动多容器应用,-d是最常用的后台启动参数;- 新版
docker compose是 Docker 官方主推的插件形式,命令无短横线,集成度更高; - 旧版
docker-compose是独立脚本,已停止新功能开发,建议优先用新版; - 核心命令记住
up -d(启动)、down(停止删除)、logs(查看日志)、exec(进入容器)即可覆盖 90% 的使用场景。
docker compose ps 和 docker ps
你问的 docker compose ps 和 docker ps 是新手很容易混淆的两个命令,核心区别在于作用范围不同,我用通俗的语言和对比表帮你彻底理清:
核心区别一句话总结
docker ps:查看当前主机上所有正在运行的 Docker 容器(全局视角);docker compose ps:仅查看当前目录下docker-compose.yml配置文件所管理的容器(局部、专属视角)。
详细对比(附示例)
假设你在 /projects/my-app 目录下有一个 docker-compose.yml,定义了 web、mysql、redis 三个服务(容器);同时你的主机上还单独运行了一个 nginx 容器(通过 docker run 启动,非 Compose 管理)。
| 特性 | docker ps |
docker compose ps |
|---|---|---|
| 作用范围 | 全局:所有 Docker 容器(无论启动方式) | 局部:仅当前 Compose 配置管理的容器 |
| 执行依赖 | 无,任何目录都能执行 | 需在有 docker-compose.yml 的目录执行(或指定配置文件) |
| 容器名称显示 | 显示 Docker 自动/手动分配的完整容器名 | 显示 Compose 配置中定义的服务名(更简洁) |
| 示例输出(容器列表) | web_1、mysql_1、redis_1、nginx |
web、mysql、redis(仅 Compose 管理的) |
| 核心用途 | 查看主机上所有容器的整体状态 | 聚焦当前项目的容器状态,排查项目内问题 |
实操示例(更直观)
# 1. 执行 docker ps(全局),能看到所有容器
$ docker ps
CONTAINER ID IMAGE NAMES
abc123 nginx nginx # 单独启动的容器
def456 node my-app-web-1 # Compose 管理的 web 容器
ghi789 mysql my-app-mysql-1 # Compose 管理的 mysql 容器
jkl012 redis my-app-redis-1 # Compose 管理的 redis 容器
# 2. 进入 /projects/my-app 目录,执行 docker compose ps(局部)
$ cd /projects/my-app
$ docker compose ps
NAME IMAGE STATUS
my-app-web node Running
my-app-mysql mysql Running
my-app-redis redis Running
# 👉 注意:这里看不到单独启动的 nginx 容器
# 3. 若在无 docker-compose.yml 的目录执行 docker compose ps
$ cd /tmp
$ docker compose ps
ERROR: no configuration file provided: not found
补充细节
-
docker compose ps的扩展用法:- 想查看 Compose 管理的容器(包括已停止的):
docker compose ps -a(类似docker ps -a); - 若不在 Compose 配置目录,可通过
-f指定配置文件:docker compose -f /projects/my-app/docker-compose.yml ps。
- 想查看 Compose 管理的容器(包括已停止的):
-
命名规则差异:
Compose 管理的容器会自动带上「项目名_服务名_序号」的前缀(比如my-app-web-1),docker compose ps会简化显示为web,而docker ps显示完整名称,这也是快速区分容器归属的小技巧。
总结
docker ps是全局容器查看器,看所有容器;docker compose ps是项目专属查看器,只看当前 Compose 项目的容器;- 日常开发中:
- 想快速看当前项目的容器状态 → 用
docker compose ps; - 想排查主机上所有容器的问题 → 用
docker ps。
- 想快速看当前项目的容器状态 → 用

浙公网安备 33010602011771号