在我的 docker 容器内,此命令 mkdir -p -m 755 directoryName
在给定路径创建一个目录(蓝色文件)。但是,在 docker 之外,当我尝试使用相同的命令 mkdir -p -m 755 ContainerID:/root/.../directoryName
创建目录时,它似乎正在创建一个可执行文件(绿色文件) .
这会造成麻烦,因为我使用“创建目录”命令将内容复制到其中,而当我在 docker 之外执行此操作时,该命令会失败。
当我在 docker 外部执行时,这就是我的完整命令:
mkdir -p -m 755 ContainerID:/root/../dirName && docker cp someImage.jpg ContainerID:/root/../dirName
关于如何实现这项工作有什么想法吗?
最佳答案
说实话,我从来没有听说过这样的 mkdir 语法,引用不同的主机,但无论如何(即使它被支持)我不会使用它。您应该在 docker 容器内执行任何您想要执行的操作,如 docker exec ContainerID mkdir -p -m 755 /root/../dirName
如果您想将多个命令放入同一个 docker exec 调用中,您可以通过执行 docker exec ContainerID bash -c "whatever && whatever2 && ... whateverX"
来实现。
请记住,这些命令将以 Dockerfile 中引用 USER
的用户身份执行。子句,默认为root
。在某些图像中,用户设置为不同的内容,导致在执行此类操作时出现权限问题。遵循的正确方法取决于您想要实现的目标。
希望有帮助! :)
关于java - 使用 docker 执行 mkdir 命令,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42064566/