容器与用户本地系统文件路径的通信



我正在使用golang和用于golang的aws S3 SDK执行文件传输服务。目的是将文件上传到S3,并从S3下载文件到用户的系统。我能够做到这一点,但现在,我需要使用docker容器化我的应用程序。由于docker容器将有自己的本地文件系统,我担心我在golang中的代码将下载文件到docker本地文件系统,而不是用户的本地文件系统。谁能告诉我如何实现下载文件到用户的本地系统,而不是docker文件系统?提前谢谢。

为了实现您的请求,您必须将docker文件系统与用户的文件系统绑定。一种方法是使用"volumes"。也可参考链接https://docs.docker.com/storage/获取更多信息。

TL;DR您需要使用卷

例如,要从docker使用aws-cli,从S3下载文件到当前路径,则需要执行:

docker run --rm -it -v $(pwd):$(pwd) -v ~/.aws:/root/.aws -e AWS_PROFILE amazon/aws-cli:2.0.6 s3 cp s3://<bucket_name>/<file> $(pwd)/.

我知道你正在使用一个应用程序来获取这些文件,但是这个例子可以帮助你理解在Docker中是如何工作的。基本上,我们将当前目录映射到docker容器的主文件夹,你只需要调整应用程序使用的卷的路径。

相关内容