日日操夜夜添-日日操影院-日日草夜夜操-日日干干-精品一区二区三区波多野结衣-精品一区二区三区高清免费不卡

公告:魔扣目錄網為廣大站長提供免費收錄網站服務,提交前請做好本站友鏈:【 網站目錄:http://www.ylptlb.cn 】, 免友鏈快審服務(50元/站),

點擊這里在線咨詢客服
新站提交
  • 網站:51998
  • 待審:31
  • 小程序:12
  • 文章:1030137
  • 會員:747

目錄
  • 詳細信息
  • 前言
  • 解析步驟 
    • 1.首先,了解一些腳本的類型
    • 2.進入Tomcat容器內部,查Tomcat啟動腳本解釋器類型
  • 總結

    詳細信息

    [root@centOS7 ~]# docker exec -it 3cae7605916d /bin/bash
    OCI runtime exec failed: exec failed: container_linux.go:380: starting container process caused: exec: "/bin/bash": stat /bin/bash: no such file or directory: unknown

    老規矩:先上答案 把腳本類型 /bin/bash,嘗試換為 /bin/sh 試一下,如果你想對兩種shell的區別有深入了解,點擊這里。

    Docker報錯:OCI?runtime?exec?failed:?exec?failed:?container_linux.go:380:?starting?container?process的解決方法

    注意:

    如果你在Dockerfile中引用了自定義腳本,比如:entrypoint: ./entrypoint.sh,如果沒有單獨給該腳本通過chmod +x ./entrypoint.sh 添加執行權限,也可能會報這個錯誤。

    前言

    在docker學習中,大部分容器進入的腳本都是/bin/bash,比如tomcat,所以不假思索的認為其他容器進入方式的腳本類型也是/bin/bash,然而這是一個誤區。

    Docker報錯:OCI?runtime?exec?failed:?exec?failed:?container_linux.go:380:?starting?container?process的解決方法

    解析步驟 

    1.首先,了解一些腳本的類型

    [root@centOS7 ~]cat /etc/shells
    /bin/sh
    /bin/bash
    /usr/bin/sh
    /usr/bin/bash
    /bin/tcsh
    /bin/csh
    [root@centOS7 ~]# 

    本機腳本解釋器類型有4種。最常見的是前兩種 (usr)/bin/sh和(usr)/bin/bash,還有一些不是很常見的腳本類型:ash、ksh、csh、zsh等,不同的shell都有自己的特點以及用途。

    2.進入Tomcat容器內部,查Tomcat啟動腳本解釋器類型

    docker exec -it tomcat /bin/bash
    ls 
    cd bin && ls
    cat cat startup.sh

    Docker報錯:OCI?runtime?exec?failed:?exec?failed:?container_linux.go:380:?starting?container?process的解決方法

     不難發現,它的啟動腳本解釋器類型是/usr/bin/bash

    3.進入Nginx容器內部,查Nginx啟動腳本解釋器類型

    exit #退出tomcat容器
    docker ps #查看正在運行的容器列表
    docker exec -it 3cae7605916d /bin/sh  #進入nginx容器
    cd /etc/init.d && ls
    cat nginx  #并不是想要/bin/sh結果

    Docker報錯:OCI?runtime?exec?failed:?exec?failed:?container_linux.go:380:?starting?container?process的解決方法

    發現,首行并不是想要的結果/bin/bash,不放棄繼續找 

    find / -name nginx -type f   #僅查找nginx啟動文件
    find / -name nginx #過濾出目錄下所有的nginx

    Docker報錯:OCI?runtime?exec?failed:?exec?failed:?container_linux.go:380:?starting?container?process的解決方法

    最后的最后,怎么找nginx的啟動腳本,期望能找到首行的解釋器是/bin/sh,但是事與愿違,不是亂碼就是/sbin/openrc-run。

    總結

    經過各種求教,得到的答案,nginx:alpine精簡版,在做鏡像的時候,只裝了sh,沒有裝bash,所以用不了bash。shell類型有很多種,但是sh類型的shell是最基礎的,所以大部分鏡像都支持。這就不難理解為什么docker exec -it  可以使用 /bin/sh進入鏡像內部了。

    docker exec使用小技巧:后面的/bin/或者/usr/bin/可以省略掉,直接寫sh 或者 bash。

    分享到:
    標簽:exec Runtime 報錯 服務器 解決方法
    用戶無頭像

    網友整理

    注冊時間:

    網站:5 個   小程序:0 個  文章:12 篇

    • 51998

      網站

    • 12

      小程序

    • 1030137

      文章

    • 747

      會員

    趕快注冊賬號,推廣您的網站吧!
    最新入駐小程序

    數獨大挑戰2018-06-03

    數獨一種數學游戲,玩家需要根據9

    答題星2018-06-03

    您可以通過答題星輕松地創建試卷

    全階人生考試2018-06-03

    各種考試題,題庫,初中,高中,大學四六

    運動步數有氧達人2018-06-03

    記錄運動步數,積累氧氣值。還可偷

    每日養生app2018-06-03

    每日養生,天天健康

    體育訓練成績評定2018-06-03

    通用課目體育訓練成績評定