【问题标题】:docker - start failed because /etc/fstab not founddocker - 启动失败,因为 /etc/fstab 未找到
【发布时间】:2018-08-30 01:08:46
【问题描述】:

我正在使用 Window Linux 子系统 (Debian stretch)。按照 Docker 网站上的说明,我安装了 docker-ce,但它无法启动。这是信息:

$ sudo service docker start
grep: /etc/fstab: No such file or directory
[ ok ] Starting Docker: docker.
$ sudo service docker status
[FAIL] Docker is not running ... failed!

找不到/etc/fstab怎么办?

【问题讨论】:

  • 您可能需要Docker for Windows。 WSL 不太可能支持运行 Docker 守护进程。
  • @Matt 太好了,谢谢

标签: docker windows-subsystem-for-linux debian-stretch


【解决方案1】:

我遇到了同样的错误。显然,在我使用 Debian 安装 WSL 时,我没有 etc/fstab 文件。令人惊讶的是,只需通过“触摸”创建文件即可:

sudo touch /etc/fstab

【讨论】:

    【解决方案2】:

    修复 fstab

    touch /etc/fstab
    

    如果你运行dockerd,它会给你失败的消息:

    INFO[2022-01-27T17:55:14.100489400+07:00] Loading containers: start.
    WARN[2022-01-27T17:55:14.191666800+07:00] Running iptables --wait -t nat -L -n failed with message: `iptables v1.8.2 (nf_tables):  CHAIN_ADD failed (No such file or directory): chain PREROUTING`, error: exit status 4
    INFO[2022-01-27T17:55:14.493716300+07:00] stopping event stream following graceful shutdown  error="<nil>" module=libcontainerd namespace=moby
    INFO[2022-01-27T17:55:14.494906600+07:00] stopping event stream following graceful shutdown  error="context canceled" module=libcontainerd namespace=plugins.moby
    INFO[2022-01-27T17:55:14.495048400+07:00] stopping healthcheck following graceful shutdown  module=libcontainerd
    failed to start daemon: Error initializing network controller: error obtaining controller instance: failed to create NAT chain DOCKER: iptables failed: iptables --wait -t nat -N DOCKER: iptables v1.8.2 (nf_tables):  CHAIN_ADD failed (No such file or directory): chain PREROUTING
     (exit status 4)
    

    这是Debian nat 问题,使用以下方法修复:

    sudo update-alternatives --set iptables /usr/sbin/iptables-legacy
    sudo update-alternatives --set ip6tables /usr/sbin/ip6tables-legacy
    

    现在您可以再次启动服务了

    你可以按照这个让它在启动时启动https://askubuntu.com/a/1356147/138352

    已编辑:

    如果 IP 表的问题仍然存在,请尝试将 WSL version 设置为 2:

    wsl --set-version <distribution name> 2
    

    可以使用命令wsl -l找到分发列表

    【讨论】:

    • 它有效。 wsl2 没问题
    【解决方案3】:

    也许是个好信号https://docs.microsoft.com/en-us/windows/wsl/release-notes#build-17093

    WSL 现在在实例启动期间处理 /etc/fstab 文件 [GH 2636]。

    【讨论】:

      【解决方案4】:

      对于像我这样在这些年后遇到困难的人来说,Docker 不能在 WSL 中工作。

      但是您可以使用 Docker for Windows 和 WSL2 在您的 Linux 发行版中运行本机容器,并且安装和配置非常轻松https://docs.microsoft.com/en-us/windows/wsl/tutorials/wsl-containers

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2022-10-14
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2017-04-04
        • 2019-10-24
        • 2018-06-14
        • 2020-01-06
        相关资源
        最近更新 更多