一、问题1、trae work的项目需要用Docker 启动MySQL、Redis、Neo4j服务终端沙盒在包含docker-compose.yml的项目根目录执行执行命令PowerShelldocker compose up -d mysql redis neo4j启动失败报错error during connect: This error may indicate that the docker daemon is not running.: Get http://%2F%2F.%2Fpipe%2Fdocker_engine/v1.24/images/mysql:8.0/json: open //./pipe/docker_engine: The system cannot find the file specified2、问题1解决后继续执行运行3个组件服务的命令后报错 ERROR [internal] load metadata for docker.io/library/mysql:8.0 42.3s------ [internal] load metadata for docker.io/library/mysql:8.0:------The new docker compose command is currently experimental. To provide feedback or request new features please open issues at https://github.com/docker/compose-clifailed to solve: rpc error: code Unknown desc failed to solve with frontend dockerfile.v0: failed to create LLB definition: failed to do request: Headhttps://registry.docker-cn.com/v2/library/mysql/manifests/8.0?nsdocker.io: dialtcp XXXXX: connect:connection refused二、原因1、Docker 服务没有启动。本机的 Docker Desktop / Docker Engine 后台服务没运行。本机的Docker Desktop未更新还是好几年前安装的Docker Desktop。2、Docker Desktop配置里的镜像不对连接不上。三、解决1、Windows 开始菜单里搜索打开服务Docker Desktop重新执行命令PowerShelldocker compose up -d mysql redis neo4j仍报一样的错误继续排查执行命令PowerShelldocker info还是报一样的错误查看Docker Desktop提示要更新就更新了一下问题1解决。前面启动了Docker Desktop服务就没看Docker Desktop界面了。2、换镜像配置打开 Docker DesktopSettings - Docker Engine处只需将registry-mirrors这部分的配置更换为{registry-mirrors: [https://docker.m.daocloud.io,https://docker.1panel.live,https://docker.1ms.run]}改完点击Apply Restart等 Docker Desktop 重启完成。Docker 重启后执行docker info可以查看Docker 是否正常重新执行拉这3个服务的命令后显示96d30d9fbee8:Pull completeDigest: sha256:7dcddc01f13bab2f15cde676d44d01f61fc9f99fe7785e86196dfc07d358ae2bStatus: Downloaded newer image for mysql:8.0docker.io/library/mysql:8.0说明mysql等已经拉成功了继续执行命令查看容器状态docker compose ps确认端口docker ps到此mysql redis neo4j 都用docker启动完成。四、总结回顾1、Docker、Docker Compose区别一句话区分Docker单个容器的运行引擎用来启动一个容器。 Docker ComposeDocker 的多容器编排工具一次性启动一整套项目所有服务。项目DockerDocker Compose定位容器运行引擎多容器编排工具管理范围单个容器多个相互依赖的容器集群配置方式命令行逐条执行yml 配置文件统一定义适用场景临时启动单个服务整套项目环境一键拉起依赖关系无法定义服务先后启动顺序可以配置依赖先启动数据库再启动后端Docker Compose多服务批量管理用一个docker-compose.yml配置文件把 MySQL、Redis、后端 API、前端全部写进去。# 一键启动所有服务docker-compose up -d# 一键停止全部服务docker-compose down比如本实践中指定启动多个服务命令docker compose pull mysql redis neo4j2、命令docker info查看详细运行环境信息比如用于查看 Docker 服务端运行信息包括容器、镜像数量存储驱动网络插件确认容器运行环境是否正常排查存储与权限问题3、命令docker ps与docker compose ps1 docker ps作用查看本机所有正在运行的容器不受项目限制。范围列出宿主机上全部容器包括手动 run 启动的容器、其他项目的容器。缺点容器多了分不清哪个服务属于哪个项目。常用命令docker ps# 运行中的容器docker ps -a# 所有容器包含已停止比如本次实践中用来查看服务端口2 docker compose ps作用只查看当前目录下这个 compose 项目启动的容器。范围仅识别当前目录 docker-compose.yml 所创建的服务容器自动过滤其他无关容器。优势会直接显示 yml 里定义的服务名方便区分 api、mysql、redis。常用命令docker compose ps# 查看本项目所有容器状态docker compose ps --services# 只打印服务名称命令查看范围识别依据适用场景docker ps宿主机全部容器遍历所有容器全局排查所有容器docker compose ps当前 compose 项目内容器当前目录 yml 配置只查看当前项目服务PS好了遇到哪里就了解到哪里常用就会了。
Windows下docker compose启动多个服务MySQL、Redis、Neo4j遇到的问题记录
一、问题1、trae work的项目需要用Docker 启动MySQL、Redis、Neo4j服务终端沙盒在包含docker-compose.yml的项目根目录执行执行命令PowerShelldocker compose up -d mysql redis neo4j启动失败报错error during connect: This error may indicate that the docker daemon is not running.: Get http://%2F%2F.%2Fpipe%2Fdocker_engine/v1.24/images/mysql:8.0/json: open //./pipe/docker_engine: The system cannot find the file specified2、问题1解决后继续执行运行3个组件服务的命令后报错 ERROR [internal] load metadata for docker.io/library/mysql:8.0 42.3s------ [internal] load metadata for docker.io/library/mysql:8.0:------The new docker compose command is currently experimental. To provide feedback or request new features please open issues at https://github.com/docker/compose-clifailed to solve: rpc error: code Unknown desc failed to solve with frontend dockerfile.v0: failed to create LLB definition: failed to do request: Headhttps://registry.docker-cn.com/v2/library/mysql/manifests/8.0?nsdocker.io: dialtcp XXXXX: connect:connection refused二、原因1、Docker 服务没有启动。本机的 Docker Desktop / Docker Engine 后台服务没运行。本机的Docker Desktop未更新还是好几年前安装的Docker Desktop。2、Docker Desktop配置里的镜像不对连接不上。三、解决1、Windows 开始菜单里搜索打开服务Docker Desktop重新执行命令PowerShelldocker compose up -d mysql redis neo4j仍报一样的错误继续排查执行命令PowerShelldocker info还是报一样的错误查看Docker Desktop提示要更新就更新了一下问题1解决。前面启动了Docker Desktop服务就没看Docker Desktop界面了。2、换镜像配置打开 Docker DesktopSettings - Docker Engine处只需将registry-mirrors这部分的配置更换为{registry-mirrors: [https://docker.m.daocloud.io,https://docker.1panel.live,https://docker.1ms.run]}改完点击Apply Restart等 Docker Desktop 重启完成。Docker 重启后执行docker info可以查看Docker 是否正常重新执行拉这3个服务的命令后显示96d30d9fbee8:Pull completeDigest: sha256:7dcddc01f13bab2f15cde676d44d01f61fc9f99fe7785e86196dfc07d358ae2bStatus: Downloaded newer image for mysql:8.0docker.io/library/mysql:8.0说明mysql等已经拉成功了继续执行命令查看容器状态docker compose ps确认端口docker ps到此mysql redis neo4j 都用docker启动完成。四、总结回顾1、Docker、Docker Compose区别一句话区分Docker单个容器的运行引擎用来启动一个容器。 Docker ComposeDocker 的多容器编排工具一次性启动一整套项目所有服务。项目DockerDocker Compose定位容器运行引擎多容器编排工具管理范围单个容器多个相互依赖的容器集群配置方式命令行逐条执行yml 配置文件统一定义适用场景临时启动单个服务整套项目环境一键拉起依赖关系无法定义服务先后启动顺序可以配置依赖先启动数据库再启动后端Docker Compose多服务批量管理用一个docker-compose.yml配置文件把 MySQL、Redis、后端 API、前端全部写进去。# 一键启动所有服务docker-compose up -d# 一键停止全部服务docker-compose down比如本实践中指定启动多个服务命令docker compose pull mysql redis neo4j2、命令docker info查看详细运行环境信息比如用于查看 Docker 服务端运行信息包括容器、镜像数量存储驱动网络插件确认容器运行环境是否正常排查存储与权限问题3、命令docker ps与docker compose ps1 docker ps作用查看本机所有正在运行的容器不受项目限制。范围列出宿主机上全部容器包括手动 run 启动的容器、其他项目的容器。缺点容器多了分不清哪个服务属于哪个项目。常用命令docker ps# 运行中的容器docker ps -a# 所有容器包含已停止比如本次实践中用来查看服务端口2 docker compose ps作用只查看当前目录下这个 compose 项目启动的容器。范围仅识别当前目录 docker-compose.yml 所创建的服务容器自动过滤其他无关容器。优势会直接显示 yml 里定义的服务名方便区分 api、mysql、redis。常用命令docker compose ps# 查看本项目所有容器状态docker compose ps --services# 只打印服务名称命令查看范围识别依据适用场景docker ps宿主机全部容器遍历所有容器全局排查所有容器docker compose ps当前 compose 项目内容器当前目录 yml 配置只查看当前项目服务PS好了遇到哪里就了解到哪里常用就会了。