위와 같은 file과 dir로 구성한 container하나를 만들었습니다.
tmp.py는 test_image라는 dir안의 test_image.jpg를 cv2.read로 읽은 후 이름만 result_image.jpg로 바꿔서
result_image라는 dir안에 저장하는 아주 간단한 python code입니다.
해당 container에 볼륨 마운트 옵션 없이 docker run을 하면 잘 구동이 됨을 확인했습니다.
$ docker run container_name
docker run 이후 container 내부 구성은 아래처럼 됩니다. (run이 종료되면 result_image.jpg가 사라진다는 것은 이해 했습니다.)
┌ test_image(dir) - test_image.jpg
├ tmp.py
└ result_image(dir) - result_image.jpg
여기서 제가 하고싶은 것은
위의 container에 의해 생성된 result_image.jpg를 container로부터 desktop으로 가져오는 것 입니다.
이를 위해 run을 할 때
$ docker run -v /usr/src/app/result_image:/result_image container_name
을 해 보았는데...안됩니다.
> container안의 result_image라는 dir과 desktop의 /result_image라는 dir을 마운트 했습니다.
container안의 image를 desktop으로 꺼내려면 어떻게 해야 할까요?
OS는 windows10이고,
vscode의 powershell에서 위 명령어를 입력했습니다.
dockerfile은 아래와 같습니다.
------------------------------------
FROM python:3.7-buster
WORKDIR /usr/src/app
RUN apt-get -o Acquire::Max-FutureTime=86400 update
RUN apt-get -y install libgl1-mesa-glx
RUN pip install --upgrade pip
COPY requirements.txt ./
RUN pip install -r requirements.txt
COPY ./ ./
CMD ["python", "tmp.py"]
------------------------------------
혹시 명령어가 잘못 된 걸까요?
감사합니다.
그렇다면, 볼륨 마운트는 도커 컨테이너에 있는 파일을 호스트에서 참조하는 방식으로는 사용이 불가능한건가요?
그리고 한 가지 더, docker cp 명령어에서는 반드시 container의 name이 아니라 ID로 명시해야 하나요?
container ID를 사용하면 동작 하는데, container name을 사용하면 동작을 하지 않네요 ㅠ