Как я могу использовать том docker с образом Ubuntu для доступа к загруженному файлу с AWS S3? - PullRequest
0 голосов
/ 07 апреля 2020

Я хочу скопировать файл из AWS S3 в локальный каталог через контейнер docker. Эта команда копирования проста без docker, я вижу файл, загруженный в текущий каталог. Но проблема в docker в том, что я даже не знаю, как получить доступ к файлу.

Вот мой Dockerfile:

FROM ubuntu
WORKDIR "/Users/ezzeldin/s3docker-test"
RUN apt-get update
RUN apt-get install -y awscli
ENV AWS_ACCESS_KEY_ID=$AWS_ACCESS_KEY_ID
ENV AWS_SECRET_ACCESS_KEY=$AWS_SECRET_ACCESS_KEY
CMD [ "aws", "s3", "cp", "s3://ezz-test/s3-test.py", "." ]

Текущая рабочая папка, в которой я должен увидеть файл загружен в s3docker-test/. Это то, что я делаю после сборки Dockerfile для монтирования тома myvol в локальный каталог

docker run -d --name devtest3 -v $PWD:/var/lib/docker/volumes/myvol/_data ubuntu

Так что после запуска образа я получаю следующее: download: s3://ezz-test/s3-test.py to ./s3-test.py, который показывает, что файл s3-test.py уже загружен, но когда я запускаю ls в интерактивном терминале, я не вижу его. Так как я могу получить доступ к этому файлу?

1 Ответ

0 голосов
/ 07 апреля 2020

Похоже, что вы переопределяете папку контейнеров в вашей пустой папке, когда вы запускаете -v $PWD:/var/lib/docker/volumes/myvol/_data.

Попробуйте просто скопировать файлы из контейнера на хост fs, выполнив:

docker cp \
  <containerId>:/Users/ezzeldin/s3docker-test/s3-test.py \
  /host/path/target/s3-test.py

Вы можете выполнить эту команду даже на сбитом контейнере. Но сначала вам нужно будет запустить его без переопределения папки:

docker run -d --name devtest3 ubuntu
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...