如果我映射容器目录中的现有容器,则容器无法启动

时间:2016-07-04 07:36:56

标签: docker

我正在尝试创建一个目录映射到主目录的容器。

docker run -d --name web1 -p 8080:80 -v /vagrant/web/config:/etc/nginx/conf.d nginx

但由于某种原因,如果我指定容器中存在的目录 - 创建容器(我得到ID)但它不会启动。

如果我运行docker ps我看不到容器,但如果我运行docker ps -a我看到:

CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS                      PORTS               NAMES
6b8bde856fdc        nginx               "nginx -g 'daemon off"   10 minutes ago      Exited (1) 10 minutes ago                       web1

如果我这样做但不是现有的/etc/nginx/conf.d目录,我指定其他东西 - 它可以工作。

日志/var/log/upstart/docker.log

中没有相关记录

其他信息

  • Docker版本1.11.2,构建b9f10c9
  • Ubuntu Trusty

2 个答案:

答案 0 :(得分:2)

主机中/ vagrant / web / config的内容是什么? 问题可能是您的一个nginx配置文件中的错误阻止nginx启动。如果nginx没有启动,容器就会停止运行。

答案 1 :(得分:2)

使用相同的设置运行另一个容器,并以bash作为入口点。然后从原始容器手动启动命令并查找错误:

$ docker run -it --entrypoint=/bin/bash --name web2 -p 8080:80 -v /vagrant/web/config:/etc/nginx/conf.d nginx
root@7553b294969f:/# nginx -g 'daemon-off'   

# this is just an example with a badly formatted default.conf file
2016/07/04 08:14:15 [emerg] 10#10: unexpected end of parameter, expecting ";" in command line
nginx: [emerg] unexpected end of parameter, expecting ";" in command line