全球主机交流论坛

标题: 有懂docker的吗 请教个问题 [打印本页]

作者: beihu    时间: 2023-3-19 10:03
标题: 有懂docker的吗 请教个问题
在openwrt上用docker安装next-terminal

最后结束的时候报错error while creating mount source path '/etc/localtime': mkdir /etc/localtime: file exists

N1盒子上的openwrt
作者: u78    时间: 2023-3-19 10:04
rm -rf /etc/localtime
作者: beihu    时间: 2023-3-19 10:24
u78 发表于 2023-3-19 10:04
rm -rf /etc/localtime

认真的吗兄弟
作者: Eric.c    时间: 2023-3-19 10:30
他是认真的,你怕可以先备份这文件
作者: 小伙伴    时间: 2023-3-19 10:33
镜像有问题吧,当然,@u78 的方法也可以
作者: 奈雅丽    时间: 2023-3-19 11:27
这个错误通常出现在使用Docker构建容器时,其中涉及到挂载本地主机上的文件或目录。它表示在创建挂载源路径/etc/localtime时发生了错误,因为该路径已经存在。可能的原因是先前已经进行过类似的挂载操作并且未正确清理挂载点。解决方法是手动删除该路径并重新运行Docker构建命令。可以使用以下命令删除该路径:sudo rm -rf /etc/localtime(请注意,该命令需要管理员权限)。
作者: DearJohn    时间: 2023-3-19 11:55
beihu 发表于 2023-3-19 10:24
认真的吗兄弟

是认真的
作者: 御坂    时间: 2023-3-19 12:05
beihu 发表于 2023-3-19 10:24
认真的吗兄弟

rm -rf移除文件没问题,但是一定要输对了
作者: beihu    时间: 2023-3-19 12:58
奈雅丽 发表于 2023-3-19 11:27
这个错误通常出现在使用Docker构建容器时,其中涉及到挂载本地主机上的文件或目录。它表示在创建挂载源路径 ...

删掉之后又报了新的错误

docker: Error response from daemon: failed to create shim task: OCI runtime create failed: runc create failed: unable to start container process: error during container init: error mounting "/etc/localtime" to rootfs at "/etc/localtime": mount /etc/localtime:/etc/localtime (via /proc/self/fd/6), flags: 0x5000: 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.
作者: 奈雅丽    时间: 2023-3-19 13:25
beihu 发表于 2023-3-19 12:58
删掉之后又报了新的错误

docker: Error response from daemon: failed to create shim task: OCI runtim ...

问下其他大佬吧,这个不知道什么问题
作者: WUXIANLIN    时间: 2023-3-19 16:12
n1直接armbian,docker再装个op
作者: beihu    时间: 2023-3-19 17:52
WUXIANLIN 发表于 2023-3-19 16:12
n1直接armbian,docker再装个op

还可以这样?
作者: WUXIANLIN    时间: 2023-3-21 12:24
beihu 发表于 2023-3-19 17:52
还可以这样?

直接干,但是我没装op,做小主机来用了https://github.com/ophub/amlogic-s9xxx-armbian
作者: dupit8    时间: 2023-3-21 12:43
是不是文件,需要变成目录
作者: fly97    时间: 2023-3-21 13:12
删除那个容器,重新创建容器
作者: lnx    时间: 2023-3-21 13:34
这个错误提示是因为 /etc/localtime 这个文件已经存在,并且 Docker 想要把它作为挂载点,但无法创建目录。解决方法如下:

首先确认你的 OpenWrt 系统时区设置是否正确,可以通过命令 date 来查看当前系统时间和时区。

执行以下命令备份原来的 /etc/localtime 文件并删除它:

sudo mv /etc/localtime /etc/localtime.bak
sudo rm /etc/localtime
重新安装 next-terminal:
docker run -d --name=next-terminal -p 3000:3000/tcp -v /etc/localtime:/etc/localtime:ro nwtgck/next-terminal
注意:-v /etc/localtime:/etc/localtime:ro 这个参数表示将主机的 /etc/localtime 文件挂载到容器的相同路径下,并且以只读方式挂载。

最后再次检查时间设置是否正确:
date
希望这些步骤能够帮助您成功安装 next-terminal。
作者: gaoji.me    时间: 2023-3-21 13:51
那就不挂这个目录咯
作者: W4ter    时间: 2023-3-21 13:54
beihu 发表于 2023-3-19 12:58
删掉之后又报了新的错误

docker: Error response from daemon: failed to create shim task: OCI runtim ...

service docker restart

不行就reboot
作者: beihu    时间: 2023-3-21 16:50
lnx 发表于 2023-3-21 13:34
这个错误提示是因为 /etc/localtime 这个文件已经存在,并且 Docker 想要把它作为挂载点,但无法创建目录。 ...

感谢解答 删除了那个目录后又报了新的错误 感觉应该是OP系统的某些问题
作者: akkba    时间: 2023-3-21 17:05
已经存在, 干掉
作者: tows8    时间: 2023-3-22 14:47
这个错误是由于 Docker 在创建挂载点时遇到了已经存在的文件。在这种情况下,Docker 试图挂载宿主机的 /etc/localtime 文件到容器内,但它已经存在。

为了解决这个问题,您可以尝试以下方法:

方法一:使用 --mount 参数

在 Docker 运行命令中,将 -v /etc/localtime:/etc/localtime:ro 替换为:

bash
Copy code
--mount type=bind,source=/etc/localtime,target=/etc/localtime,readonly
这将使用 --mount 参数来设置挂载点,而不是 -v。

方法二:使用环境变量设置时区

如果您仍然遇到问题,可以考虑不挂载 /etc/localtime 文件,而是使用环境变量设置容器的时区。为此,请删除 -v /etc/localtime:/etc/localtime:ro 参数,并添加以下参数:

diff
Copy code
-e TZ=Asia/Shanghai
请将 Asia/Shanghai 替换为您所在时区的正确值。这将设置容器的时区,而无需挂载 /etc/localtime 文件。

使用这些方法之一,您应该能够在 OpenWrt 上的 N1 盒子中成功部署 Next Terminal。
作者: ccnif    时间: 2023-3-22 15:13
执行命令贴出来





欢迎光临 全球主机交流论坛 (https://fd.vvwvv.eu.org/) Powered by Discuz! X3.4