使用 docker 的 mkdir 命令

mkdir command with docker

在我的 docker 容器中,此命令 mkdir -p -m 755 directoryName 在给定路径创建一个目录(蓝色文件)。但是,在 docker 之外,当我尝试使用相同的命令 mkdir -p -m 755 ContainerID:/root/.../directoryName 创建一个目录时,它似乎正在创建一个可执行文件(绿色文件)。

这造成了麻烦,因为我使用 "create directory" 命令将内容复制到它,而当我在 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。在某些图像中,用户设置了不同的内容,导致在执行此类操作时出现权限问题。遵循的正确方法取决于您想要实现的目标。

希望对您有所帮助! :)