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

GentleM님의 프로필 이미지
GentleM

작성한 질문수

따라하며 배우는 도커와 CI환경 [2023.11 업데이트]

Docker Volume에 대하여

Docker Volume 강의 진행 중 에러...

작성

·

1.3K

1

아래 질문은 해결했습니다.

VScode에서 bash가 아니라 window cmd로 하니까 되네요

혹시 bash에서도 유효한 volum 명령을 알 수 있을까요?

---------------------------------------------------------

이하 해결된 질문

---------------------------------------------------------

안녕하세요 강사님. Docker 강의 잘 듣고 있습니다.

Docker Volume 강의에 따라 실습 진행 중 에러가 발생하여 강사님의 도움을 받고 싶습니다. 참고로 윈도우 사용자이며 에디터는 Visual Studio Code, 쉘은 bash 사용하고 있습니다.

1. 윈도우 사용자 참고 자료에 따라 다음과 같이 명령어를 입력했을 때, invalid charcter error가 발생했습니다.

$ docker run -d -p 5000:8080 -v /usr/src/app/node_modules -v %cd%:/usr/src/app gentlemj/nodejs

docker: Error response from daemon: create %cd%: "%cd%" includes invalid characters for a local volume name, only "[a-zA-Z0-9][a-zA-Z0-9_.-]" are allowed. If you intended to pass a host directory, use absolute path.

2. 아무래도 위의 에러가 %cd% 부분인거 같아서 -v $(pwd):/usr/src/app 로 바꿔서 재입력했습니다. 에러는 발생하지 않았지만 docker ps 입력하니 실행 중인 컨테이너가 없는 상태입니다. 

3. 이후 docker run -p 5000:8080 gentlemj/nodejs ./ 입력하여 확인한 결과, 전에 발생하지 않았던 다음과 같은 에러가 발생합니다. 

$ docker run -p 4000:8080 gentlemj/nodejs ./

/usr/local/bin/docker-entrypoint.sh: 8: exec: ./: Permission denied

4. Node.js 앱 만들기 카테고리의 첫 부분, 빌드 후 실행하는 부분에 따라 실습을 진행해도 docker ps에는 아무것도 잡히지 않습니다.

 docker build -t gentlemj/nodejs ./

 docker run -d -p 4000:8080 gentlemj/nodejs

5. 본 에러 해결 위해 docker ps -a -q, docker system prune 사용해서 모든 컨테이너 및 이미지 네트워크 삭제했지만 위의 에러는 해결되지 않습니다.

6. 강사님의 조언 및 도움을 바랍니다... 아래 gitbut 주소 첨부하였습니다.

https://github.com/MJbae/200815_Basic_React_Node/tree/master/Docker/docker-practice/nodejs-docker-app

답변 5

3

이제는 해결했으리라 생각합니다. 혹시 다른 수강생들이 같은 고민을 하고 있을까봐 정리를 잘해주셔서 여기에 댓글 남깁니다. window에서  명령어를 powershell 환경에서 한다면 %cd% 가 아닌  ${PWD}로 바꾸어 사용하니 저는 동작이 잘 됩니다. 여러 방법을 시도하시면서 이방법도 시도 하셔보는것도 좋을거 같습니다.

John Ahn님의 프로필 이미지
John Ahn
지식공유자

공유해주셔서 감사합니다 !! 

1

docker run -d -p 5000:8080 -v /usr/src/app/node_modules -v ${PWD}:/usr/src/app rlxo6919/nodejs

powershell에서 이렇게 작성했는데 서버는 켜지는데 내용이 안바뀌네요... 

혹시 해결하셨을까요? 저도 김기태님과 같은 환경에 같은 명령어로 진행하는데 소스코드 변경내용이 반영이 안됩니다..

1

저도 비슷한 에러였는데 preference에서 설정 변경하니 해결됐습니다.

https://stackoverflow.com/questions/65245445/docker-error-response-from-daemon-mounts-denied-approving-path-to-file-does

1

John Ahn님의 프로필 이미지
John Ahn
지식공유자

안녕하세요 ^ ^  

1번은

$ docker run -it -p 5000:8080 -v /usr/src/app/node_modules -v $(pwd):/usr/src/app gentlemj/nodejs

이렇게 한번 해보시겠어요 ?  에러 로그를 봐야 할 것 같아요 ...

3번은   도커 이미지를 실행하는 부분이기에  ./    <= 마지막 이 부분은 빼주셔야 합니다     
이렇게 디렉토리 부분 지정은 이미지를 생성할 때 넣어주시면 됩니다. 

4번은   아마 에러가 있기 때문에 노드 서버를 실행하다 실행에 실패했을 가능성이 높습니다.
docker run -it gentlemj/nodejs 로 실행해보시면 에러 로그가 나올겁니다 ~ ! 

제가 봤을때는 이미지 빌드에서 뭔가 문제가 있었던것 같은데 ...

에러가 나면 다시 질문 부탁드릴게요 

0

해당 문구 에러 같습니다. 윈도우에서는

$ docker run -it -p 5000:8080 -v /usr/src/app/node_modules -v $(pwd):/usr/src/app gentlemj/nodejs 에서 

$(pwd): 아닌 pwd:로 수정하여 입력하시면 정상작동 하실겁니다.

 

GentleM님의 프로필 이미지
GentleM

작성한 질문수

질문하기