docker exec 报错,怎么回事?

查看:457
本文介绍了docker exec 报错,怎么回事?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

问 题

admin@ubuntu:/mnt/data/web$ sudo docker exec web-server -i -t /bin/bash
rpc error: code = 13 desc = invalid header field value "oci runtime error: exec failed: container_linux.go:247: starting container process caused \"exec: \\\"-i\\\": executable file not found in $PATH\"\n"

顺便,我还有个问题,我的dockerfile文件内容如下

FROM ubuntu:latest
RUN apt-get -qq update
RUN apt-get install -qqy nginx php-fpm php-mcrypt
RUN rm -rf /var/lib/apt/lists/*
EXPOSE 80 443
CMD ["/etc/init.d/nginx", "start"]                               

我build好之后,运行之后容器会退出,然后我start:

admin@ubuntu:/mnt/data/web$ sudo docker start -a -i web-server
cat: /etc/nginx/nginx.conf: No such file or directory
 * Starting nginx nginx
   ...fail!

就这样。这是怎么回事?
我run的命令如下:

sudo docker run --name web-server --link db-mysql:mysql -v /mnt/data/web/htdocs -v /mnt/data/web/nginx.conf.d:/etc/nginx -p 80:80 -p 443:443 -d nginx-php:latest

我都在公司在虚拟机里面都试过了一边,回家跑到我的vps上去搞,就是搞不成,气死我。。。。。

解决方案

  1. docker exec 报错是因为 /bin/bash 文件不存在,可以尝试 /bin/sh 等。

  2. 查看宿主机 /mnt/data/web/nginx.conf.d 目录下有没有 nginx.conf 文件。

  3. docker 的使用没有遵循最佳实践,关于 web server 的配置可参考 Docker 实践(八):构建 Laravel 开发环境

  4. 学习 docker 之前请仔细研读 大桥下的蜗牛-Docker 问答录(93 问)

这篇关于docker exec 报错,怎么回事?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆