docker啟動容器報錯: could not synchronise with container process: not a directory


錯誤現象

在運行容器時,出現以下錯誤

[root@localhost test]# docker run -it -d -v $PWD/test.txt:/mydir mytest 
fd44cdc550548c0b791d6a7d12d27a2d64855c7c5d498305dd1239d6608b4350
Error response from daemon: Cannot start container fd44cdc550548c0b791d6a7d12d27a2d64855c7c5d498305dd1239d6608b4350: [9] System error: could not synchronise with container process

而實際查看容器時,可以看到容器已經成功創建,但是實際無法啟動。

[root@localhost test]# docker ps -a|grep fd4
fd44cdc55054        mytest              "sh"                     3 minutes ago       Created                                               mad_jones

問題復現及分析

容器直接啟動docker run -it mytest是可以正常啟動的。

[root@localhost site-packages]# docker run -it mytest
/ # stat /mydir
  File: /mydir
  Size: 4096      	Blocks: 8          IO Block: 4096   directory
Device: fd08h/64776d	Inode: 786453      Links: 2
Access: (0755/drwxr-xr-x)  Uid: (    0/    root)   Gid: (    0/    root)
Access: 1970-01-01 00:00:00.000000000
Modify: 2017-07-04 09:39:03.000000000
Change: 2017-07-04 09:39:04.000000000

但是加了掛載的參數-v $PWD/test.txt:/mydir參數后就無法啟動了。所以可以判斷問題是出在掛載上。

查看上面那個未能啟動的容器,可以看到容器中的掛載。

[root@localhost test]# docker inspect fd4
    ...
    "HostConfig": {
        "Binds": [
            "/root/dockerfile/test/test.txt:/mydir"
        ],
    ...

通過上面可以看到,容器中,或者說原有的鏡像中已經存在了/mydir,而且/mydir是一個文件夾。
而現在把test.txt這個文件映射掛載為文件夾,即會報could not synchronise with container process: not a directory的錯誤。

修正方法只要修改一下掛載點就可以,可以使用-v $PWD/test.txt:/mydir/test.txt即可成功啟動。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM