macos - docker-compose在Docker for Mac中找不到服务或容器

标签 macos docker docker-compose

我有一个docker-compose设置,用于启动Rails Web应用程序和PostgreSQL DB容器。

这两个服务都已启动,但是我需要在Web应用程序容器(服务=“web”)中运行db:seed和db:migrate。

我尝试这样做:

docker-compose exec web rails db:seed

但这告诉我:
ERROR: No container found for web_1

当我尝试使用docker时:
docker exec <container-id> rails db:seed

Docker确实尝试在容器中执行命令,但是显然失败了,因为Docker不了解PostgreSQL容器并且无法连接到该容器来执行种子命令。

这似乎只是Docker for Mac中的一个问题。在Ubuntu中一切正常。

我正在使用docker-compose 1.8.0和docker 1.12.1版本。

最佳答案

好,找到答案了。不知道这是否特定于Mac的Docker,但在Ubuntu中我没有这个问题。

我有2个终端在运行。首先,我跑了

docker-compose up

提供我的服务。

在第二个中,我运行了:
docker-compose exec web rails db:seed

在我的Web容器中执行rails命令。

问题出在这里:在第二个终端中,您必须与docker-compose.yml文件位于同一目录中。您不能只在任何地方运行docker-compose命令。

当我在第二个终端中更改为正确的目录时,exec命令运行正常。

关于macos - docker-compose在Docker for Mac中找不到服务或容器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39832480/

相关文章:

docker - 存储和拉取 docker 镜像的元信息

macos - 用于存档的最简单的mac docker设置是什么?

Docker-compose 多个服务监听同一个端口,不同域

macos - psql : FATAL: role "postgres" does not exist

c - 尝试使用通过 cmake 安装的 OpenCV-2.3.1 在 XCode 中运行示例 MacOSX FaceTracker 程序

docker - Docker机器资源限制

ruby-on-rails - 无法运行 rake db :create in Dockerfile with docker-compose

macos - 找不到 git 可执行文件

mysql - WordPress 数据库错误 : [Table 'databasename.wp_users' doesn't exist] SELECT * FROM wp_users WHERE user_login = 'Username'

docker - 尝试运行 portainer 容器的卷规范无效