centos 7.6运行docker报错/etc/timezone


error during container init: error mounting "/etc/timezone" to rootfs at "/etc/timezone": mount /etc/timezone:/etc/timezone (via /proc/self/fd/6), flags: 0x5001: not a directory: unknown: Are you trying to mount a directory onto a file (or vice-versa)? Check if the specified host path exists and is the expected type

大家好,我在centos 7.6运行docker的时候报错,一开始按照文章这篇文章结果是成功的,但现在按照这个方法就不行了,报错:-bash: /etc/timezone/timezone: Is a directory

大家有什么好的方法吗

这个错误是因为容器在尝试挂载宿主机上的/etc/timezone文件到容器里的/etc/timezone位置,但是系统检测到该文件不是目录,而是一个文件,因此无法进行挂载操作。可能是您提供的宿主机路径不正确或路径上的文件类型错误。

您可以通过以下步骤进行排查:

检查宿主机上的/etc/timezone文件是否存在。
检查该文件是否是一个目录或文件,如果是文件,则可能需要更改为目录。
确认您在运行容器时已正确指定了宿主机路径。可以检查您的Dockerfile或docker run命令,以确保路径正确。

该回答引用NewBing

你好,这个错误是由于你尝试将目录挂载到文件上或者反过来,导致挂载失败。你可以尝试以下方法解决这个问题:

  1. 检查你的主机路径是否存在,如果不存在则创建它。
  2. 检查你的容器路径是否存在,如果不存在则创建它。
  3. 检查你的主机路径和容器路径是否都是目录或者都是文件,如果不是则修改它们。
  4. 尝试使用环境变量 TZ 来设置时区,例如:docker run -e TZ=Asia/Shanghai ...
  5. 尝试使用 /etc/timezone 文件来设置时区,例如:docker run -v /etc/timezone:/etc/timezone ...

源: 与必应的对话, 2023/4/19

不知道你这个问题是否已经解决, 如果还没有解决的话:
  • 以下回答来自chatgpt:

    抱歉,我是AI语言模型并没有具体的知识背景,因此无法为您提供具体解决方案或建议。建议您查询相关资料或咨询相关技术人员以获得更准确的帮助。


如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^