我无法从documentation中了解如何使用单个命令将tar提取到容器中:

tar xf ./tarfile.tar.gz | docker cp - $CONTAINERID:/var/www/html

最佳答案

将tar存档本身作为stdin传递

gzip -cd tarfile.tar.gz | docker cp - $CONTAINERID:/var/www/html

gunzip tarfile.tar.gz
docker cp - $CONTAINERID:/var/www/html < tarfile.tar

请记住,删除Docker容器是非常常规的操作,这样做时,它们的整个文件系统都会丢失。通常最好使用docker run -v选项将主机文件系统的某些部分注入(inject)到容器中,而不要尝试使用诸如docker cp(或docker exec)之类的命令性命令,在重新创建容器时必须重复这些命令。
mkdir html
(cd html && tar xf ../tarfile.tar.gz)
docker run -v "$PWD/html:/var/www/html" ...

关于docker - 将tar从主机提取到docker容器,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/56810543/

10-16 18:06