我想将一些配置文件压缩成 tar 并将其保存在主机上的 /root/ 路径中。
目前,我在容器内运行的代码正在容器内创建 tar,然后将其复制到服务器。
有没有一种方法可以让我从容器内部直接在主机上创建 tar。一个带有触摸命令的简单示例也会有所帮助。
最佳答案
是的,您可以mound主机目录,然后运行所需的命令,
下面将创建 tar 文件并退出。从所需的目录运行以下命令。
树
.
└── config
└── default.conf
创建 tar
docker run -it --rm --workdir=/app -v $PWD/:/app alpine sh -c "tar -czvf file.tar.gz config"
执行后的树
├── config
│ └── default.conf
└── file.tar.gz
从容器到主机
docker run -it --rm --workdir=/app -v $PWD/:/app alpine sh -c "mkdir myfiles; cd myfiles; touch hello.txt; cd ..; tar -czvf file.tar.gz myfiles"
- 它创建 myfiles/hello.txt 或者它也可以是现有目录
- 在主机挂载位置创建 tar
对于容器中现有的目录
docker run -it --rm --workdir=/app -v $PWD/:/app alpine sh -c "cd parent_directory; tar -czvf file.tar.gz myfiles; cp parent_directory/file.tar.gz /app"
将 tar 文件写入主机
docker run -it --rm alpine sh -c "cd path_to_tar ; tar -czf - ." >filename.tar.gz
关于linux - 从 docker 容器在主机上创建/触摸文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62947253/