인프런 커뮤니티 질문&답변

몽상가님의 프로필 이미지
몽상가

작성한 질문수

[2024] 처음 시작하는 도커와 컨테이너

[실습] Bind Mount

Bind Mount에서 마운트가 되지 않습니다. (파일/경로 동일)

작성

·

108

1

1. 무엇을 하고 싶으신가요?

강좌 bind mount에서 로컬과 도커 컨테이너간의 파일 또는 경로를 공유 (/usr/local/apache2/htdocs/) 를 하고자 하는데 계속 연결이 되지 않습니다.  

 

2. 언제, 어떤 오류가 발생하시나요?

 [doyoung@dockers-m:/test]$ sudo docker run --rm --name httpd -p 8080:80 \

> -v "$(pwd)"/index.html:/usr/local/apache2/htdocs/index.html:rw \

> -d httpd:2.4

a6223fce61285c77f71be99f448e28b4cdba768662030e240db12c6c3d827b55

docker: Error response from daemon: failed to create task for container: failed to create shim task: OCI runtime create failed: runc create failed: unable to start container process: error during container init: error mounting "/test/index.html" to rootfs at "/usr/local/apache2/htdocs/index.html": mount /test/index.html:/usr/local/apache2/htdocs/index.html (via /proc/self/fd/6), flags: 0x5000: not a directory: unknown: Are you trying to mount a directory onto a file (or vice-versa)? Check if the specified host path exists and is the expected type.

[doyoung@dockers-m:/test]$

3. 어떤 시도를 해보셨나요?

로컬 index.html의 권한 변경

chmod 777 index.html

 

파일 경로 변경

/home/doyoung/~~~/~

--> /test/

 

4. 작성한 코드를 공유해주세요.

sudo docker run --rm --name httpd -p 8080:80 \

-v "$(pwd)"/index.html:/usr/local/apache2/htdocs/index.html:rw \

-d httpd:2.4

 

답변 2

0

천강민님의 프로필 이미지
천강민
지식공유자

안녕하세요!

디렉토리를 파일에 마운트 하려 했거나, 파일을 디렉토리에 마운트 하려 했을 때 발생하는 오류로 보입니다.

file index.html                          
index.html: HTML document text, ASCII text

file index.html
index.html: directory

위와 같이 file 명령을 통해서,

로컬 경로에 존재하는 내용이 파일인지 디렉토리인지 확인 부탁드립니다.(오류로 봐서는 index.html이 디렉토리인 것 같아 보입니다.)

감사합니다.

0

안녕하세요, 인프런 AI 인턴입니다.

질문자님께서 겪고 계신 문제는 로컬 시스템의 파일을 Docker 컨테이너의 특정 파일 위치에 bind mount하려 할 때 발생하는 것으로 보입니다. 여러분이 마주한 에러 메시지는 선택하신 호스트 경로가 존재하지 않거나, 파일 대신 디렉토리를 마운트하려 시도했거나 그 반대의 경우일 때 발생할 수 있습니다. 질문하신 내용과 매우 유사한 상황을 해결한 기존 답변 링크를 두 개 찾았습니다:

  1. logs 폴더가 없는 것 같습니다.

    • 깃허브 액션에서 deploy가 실패해요: 이 답변에서는 오류를 해결하기 위한 체계적인 접근 방법을 제시합니다. docker: Error response from daemon과 같은 오류 메시지를 다루고 있으며, 이는 bind mount 시 발생할 수 있는 문제입니다. 로컬 파일 또는 디렉토리의 경로 이상으로 인해 발생할 수 있는 문제에 대한 해결책을 포함하고 있습니다.
  2. Bind Mount시 오류 해결 경험 공유

    • Bind Mount시 오류 해결 경험 공유: 비록 직접적으로 파일 마운트 문제를 다루지 않지만, Docker 내에서 발생할 수 있는 경로/파일 관련 이슈를 풀어나가는 데 도움을 줍니다. 컨테이너와 파일 시스템 간 통신에서 경로 이슈는 공통적인 문제입니다.

질문자님의 오류를 바로 해결할 수 있는 구체적인 답변이 두 링크 중에 직접적으로 제공되지 않을 수도 있으나, 파일 또는 디렉토리를 컨테이너에 마운트할 때 일반적으로 접할 수 있는 경로 설정 및 권한 문제에 대한 해결 아이디어를 얻는 데 도움이 될 것입니다.

마운트 과정에서 발생하는 구체적인 로그와 에러 메시지를 통해 문제의 원인을 좁혀 나가는 것이 중요합니다. “$(pwd)”/index.html 경로와 컨테이너 내 /usr/local/apache2/htdocs/index.html 경로가 정확히 일치하는지, 그리고 해당 파일이 실제로 존재하는지 재확인 해보세요. 또한, 컨테이너 내 경로가 올바른 파일 시스템 구조를 갖추고 있는지도 검토해야 합니다.

저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다.
현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏
추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.

몽상가님의 프로필 이미지
몽상가

작성한 질문수

질문하기