[colima 代替 docker desktop | docker compose]

https://github.com/abiosoft/colima

# 安装 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 保持规范。

三、实操示例(快速上手)

  1. 先写一个简单的 docker-compose.yml(启动 Nginx 容器):
version: '3.8'  # Compose 规范版本,新版推荐 3.8+
services:
  nginx:
    image: nginx:latest
    ports:
      - "8080:80"  # 宿主机 8080 端口映射到容器 80 端口
    restart: always  # 容器异常退出时自动重启
  1. 执行命令:
# 后台启动容器(新版命令)
docker compose up -d

# 查看容器状态
docker compose ps

# 查看 Nginx 日志
docker compose logs nginx

# 停止并删除容器
docker compose down

总结

  1. docker compose up 核心是一键启动多容器应用-d 是最常用的后台启动参数;
  2. 新版 docker compose 是 Docker 官方主推的插件形式,命令无短横线,集成度更高;
  3. 旧版 docker-compose 是独立脚本,已停止新功能开发,建议优先用新版;
  4. 核心命令记住 up -d(启动)、down(停止删除)、logs(查看日志)、exec(进入容器)即可覆盖 90% 的使用场景。

docker compose ps 和 docker ps

你问的 docker compose psdocker ps 是新手很容易混淆的两个命令,核心区别在于作用范围不同,我用通俗的语言和对比表帮你彻底理清:

核心区别一句话总结

  • docker ps:查看当前主机上所有正在运行的 Docker 容器(全局视角);
  • docker compose ps:仅查看当前目录下 docker-compose.yml 配置文件所管理的容器(局部、专属视角)。

详细对比(附示例)

假设你在 /projects/my-app 目录下有一个 docker-compose.yml,定义了 webmysqlredis 三个服务(容器);同时你的主机上还单独运行了一个 nginx 容器(通过 docker run 启动,非 Compose 管理)。

特性 docker ps docker compose ps
作用范围 全局:所有 Docker 容器(无论启动方式) 局部:仅当前 Compose 配置管理的容器
执行依赖 无,任何目录都能执行 需在有 docker-compose.yml 的目录执行(或指定配置文件)
容器名称显示 显示 Docker 自动/手动分配的完整容器名 显示 Compose 配置中定义的服务名(更简洁)
示例输出(容器列表) web_1mysql_1redis_1nginx webmysqlredis(仅 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

补充细节

  1. docker compose ps 的扩展用法

    • 想查看 Compose 管理的容器(包括已停止的):docker compose ps -a(类似 docker ps -a);
    • 若不在 Compose 配置目录,可通过 -f 指定配置文件:docker compose -f /projects/my-app/docker-compose.yml ps
  2. 命名规则差异
    Compose 管理的容器会自动带上「项目名_服务名_序号」的前缀(比如 my-app-web-1),docker compose ps 会简化显示为 web,而 docker ps 显示完整名称,这也是快速区分容器归属的小技巧。

总结

  1. docker ps全局容器查看器,看所有容器;
  2. docker compose ps项目专属查看器,只看当前 Compose 项目的容器;
  3. 日常开发中:
    • 想快速看当前项目的容器状态 → 用 docker compose ps
    • 想排查主机上所有容器的问题 → 用 docker ps
posted @ 2026-01-15 14:20  十三山入秋  阅读(1)  评论(1)    收藏  举报