首頁  >  問答  >  主體

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上去搞,就是搞不成,氣死我。 。 。 。 。

过去多啦不再A梦过去多啦不再A梦2756 天前1137

全部回覆(2)我來回復

  • 高洛峰

    高洛峰2017-04-26 09:04:13

    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 問)。

    回覆
    0
  • 阿神

    阿神2017-04-26 09:04:13

    docker exec -it web-server bash
    建議把nginx , PHP-fpm兩個服務不要放在同一個容器
    可以參考這個docker部署nginx,php-fpm

    回覆
    0
  • 取消回覆