接下来,在 docker 文件夹中项目的根目录中,我创建 docker-compose.yml 文件:
接下来,我尝试启动容器,但出现错误:
部署“撰写:码头工人”...
docker-compose -f "/mnt/541d54bf-8e57-464d-9e77-b8676fc83fdb/_temp/.../hibernate-app/docker/docker-compose.yml" up -d db
开始 ffea8a86d792_docker_db_1 ...
警告:主机已被另一个容器使用
启动 ffea8a86d792_docker_db_1 ... 错误
错误:对于 ffea8a86d792_docker_db_1 无法启动服务 db:驱动程序在端点 ffea8a86d792_docker_db_1 上编程外部连接失败(3b0c5cf0437b75725d98b732640a6e2efaa84fdcdad46700f8a7665caae23fae):错误启动用户端代理的地址:监听 tcp4。绑定:0.0.
错误:对于 db 无法启动服务 db:驱动程序在端点 ffea8a86d792_docker_db_1 上编程外部连接失败(3b0c5cf0437b75725d98b732640a6e2efaa84fdcdad46700f8a7665caae23fae):启动用户级代理时出错:在绑定使用中侦听 tcp4 0.0.0.0:4
错误:启动项目时遇到错误。
无法部署“撰写:docker”:
docker-compose
进程以退出代码 1 完成
据我了解,问题在于其他一些容器已经在运行: “警告:主机已被另一个容器使用”。 但我不再运行任何容器。
我的电脑上还安装了 Postgres 服务器 + DBeaver 桌面管理器。也许他们会以某种方式干扰,我不知道。一开始我只是用老式的方式做所有事情,但现在我正在尝试在容器的帮助下。
请告诉我,错误是什么?我是 Docker 新手....
如果您将它安装在您的计算机上
Postgres
并且它正在运行5432
,那么您的容器将不会在同一个端口上启动,因为 该端口已被占用,您需要停止Postgres
或更改docker-compose
.例如:
这将导致它
Postgres
在您的容器内运行5432
(即您的应用程序将能够通过 连接到它db:5432
),并且它将在主机系统上通过15432
.此外,如果您不打算
Postgres
从主机连接到(容器),则可以完全删除端口映射,这将导致数据库仅在 docker 网络内部可用,而不能从外部使用。