我无法从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/