带有 docker 的 mkdir 命令


在我的

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 。在某些图像中,用户被设置为不同的内容,导致在执行此类操作时出现权限问题。正确的方法取决于你想要实现的目标。

希望对您有所帮助! :)

最新更新