docker - Docker:在执行cp之前删除并创建文件夹

标签 docker

如果在复制之前不存在该文件夹,可以创建一个文件夹吗?

docker cp /opt/project/build/core/bundle target_container:/opt/project/build/core

通常,仅存在/opt/project/build/

我想要做的是复制文件夹bundle并替换现有文件夹及其文件(如果存在)。如果不存在,则应创建文件夹core/bundle并复制文件。

最佳答案

docker exec 将允许您在容器中运行命令。

docker exec $target_container mkdir -p /opt/project/build/core
docker cp /opt/project/build/core/bundle $target_container:/opt/project/build/core/

请注意/上的结尾cp,它告诉docker将源复制到core/目录中,而不是命名bundle-> core
替换

如果要完全“替换”现有的bundle目录,而不是使用cp向其中添加文件,则需要从删除开始。
docker exec $target_container sh -c \
  'rm -f /opt/project/build/core && mkdir -p /opt/project/build/core'

关于docker - Docker:在执行cp之前删除并创建文件夹,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43598584/

相关文章:

Docker volume 每次都重新创建一个新的目标路径

Mac上的Docker TLS错误

docker - 如何设置具有覆盖网络模式的 Docker Swarm 集群

docker - 无法在Docker中链接Consul和Spring Boot应用

docker - stash/unstash 将数据从构建容器传输到其他节点(在 jenkins 中)

在 docker 容器中运行的 Java(JDK8 更新 131 之前)应用程序 CPU/内存问题?

r - 可以将RStudio(IDE NOT服务器)配置为使用远程R设置吗?

postgresql - 连接到 docker postgres 实例 : "The server encountered an internal error and was unable to complete your request." 时出现 pgadmin 错误

mysql - phpmyadmin mysql docker 简单链接

docker - apt-get 在没有 sudo 的容器内失败