docker-compose on Windows – Container命令'sh'找不到或不存在

有一些奇怪的问题,让docker行为在Windows主机,但在Linux主机罚款。 它只是一个简单的节点容器,可以运行吞咽(并最终将附加到其他LAMP像容器)。

我的docker-compose.yml

version: '2' services: node: build: ./node container_name: cont_node ports: - "35733:35733" volumes: - ~/docker/project/www:/var/www/html/ command: "sh -c 'npm install && bower install && gulp'" 

我的Dockerfile

 FROM node:4-onbuild RUN npm config set registry http://registry.npmjs.org/ # Define working directory. WORKDIR /var/www/html/ COPY ./package.json /var/www/html/ RUN npm install -g gulp-cli CMD ["bash"] 

所以当我跑步

docker-compose up node

它返回

Container command 'sh' not found or does not exist.

因为我了解command命令运行在容器(而不是主机),这应该是好的? 我用/bin/sh也试过了,并且遇到同样的问题。 /bin/sh确实存在,似乎是一个SYS连接dash如果相关? 看起来相同,我的Linux主机,这工作正常。

任何想法出了什么问题?

在一个侧面说明 ,任何时候我使用docker从一个linux主机它的作品就像一个梦想,但Windows我总是失去与Windows特定的问题摔跤,npm安装似乎没有正常工作或挂起或需要年龄,问题卷不在我的文件等。在Windows / boot2docker fubar'ed泊坞窗或只是我?

在Windows 10和Docker for Windows Beta上运行良好。 我会说,或者过时的Docker设置或者在你的机器上进行了一些操作。 如果您仍在运行boot2docker,请尝试切换到Docker for Windows 。

在一个侧面说明,任何时候我使用docker从一个linux主机它的作品就像一个梦想,但Windows我总是失去与Windows特定的问题摔跤,npm安装似乎没有正常工作或挂起或需要年龄,问题卷不在我的文件等是在码头上的Windows / boot2docker fubar'ed或只是我?

那么Windows总是会给几乎任何东西增加一点痛苦:p,而且在早期的boot2docker日子里,Windows支持是非常错误的/不完整的,但是最新的Docker for Windows版本现在运行起来非常顺利。

(因为我没有足够的代表评论)

出于某种原因,Docker尝试在主机而不是guest中运行命令。 既然它说的是“容器命令”,你可能真的想用“运行”来加上它,就像在线参考一样 。