Window에서 Volume을 적용할 때 작동하지 않는 경우가 있습니다. 예를 들어, "Hello"를 "Hello123"으로 바꿔도 여전히 "Hello"만 나오는 경우입니다. 이런 경우 이전 강의(또는 안내)에서 알려주신 것을 잘 참고해야합니다. 강사님의 안내는 다음과 같습니다. Mac의 경우 아래를 사용한다. docker run -d -p 5000:8080 -v /usr/src/app/node_modules -v $(pwd) :/usr/src/app anonymous123/nodejs 하지만, 윈도우의 경우는 아래를 사용해야한다. docker run -d -p 5000:8080 -v /usr/src/app/node_modules -v %cd% :/usr/src/app anonymous123/nodejs 하지만, 저는 Window를 사용하고 있지만 Bash Shell 을 사용하고 있었기 때문에 %cd%이 아닌 $(pwd)를 사용해야지 명령어가 작동이 되었습니다. 예상할 수 있듯이 이렇게 하면 Volume이 작동되지 않습니다. 그렇기 때문에 cmd 를 이용하여 %cd% 방식으로 해줘야지 volume이 정상 작동 합니다. 결국 OS가 Window라서 그런거 같은데,,, 솔직히 잘은 모르겠습니다 😂 도움이 되셨으면 좋겠습니다!!
윈도우 기준으로 작성했습니다. server.js를 변경해서 도커를 다시 실행해도 변경된 코드가 반영되지 않은 문제를 확인함. 도커 컨테이너 내부 server.js를 확인하기 위해 아래 명령어로 컨테이너에 진입 docker exec -it 컨테이너아이디 sh server.js 파일을 읽기 위해 아래 명령어를 입력함 nano server.js 하지만 아래와 같은 출력이 발생하면서 파일 읽기에 실패함 아래 명령어들을 입력해 해결 apt-get update apt-get install nano nano 설치완료 후 server.js를 읽으니 아래와 같이 변경전 코드가 확인됨: 1) 변경전 res.send('Hello Word'); 2) 변경후 res.send('zxzzzzz'); 3) 도커 컨테이너에서 확인한 코드 도커 명령어 를 완벽히 이해하지 못한 상태 로 본 글을 작성했습니다. 따라서 부족한 부분이 있을 수 있습니다. 다음 강의를 위해 우선 기능이 작동하는데 초점 을 맞췄다는 점 참고 부탁드립니다. 명령어 변경: docker run -d -it -p 5000:3200 -v "/$(pwd)/server.js:/usr/src/app/server.js" joykim93/nodejs:latest 도커 컨테이너에서 server.js 파일 확인 참고: https://docs.docker.com/storage/bind-mounts/ https://cloudkul.com/knowledgebase/nano-command-not-found-docker/ https://itzone.tistory.com/610
강의 너무 잘 듣고있습니다 감사합니다~^^ 제 질문은 배포환경(Elastic bean stalk)에서는 docker-compose.yml에 volume으로 매핑한다면 참조가 되지 않을 것 같은데요 가령 아래와 같은 docker-compose.yml을 master에 푸쉬해서 code pipeline으로 Beanstalk에게 넘겨줘서 컨테이너를 실행시킬 것인데, 그 컨테이너안의 /app 폴더가 로컬폴더인 ./frontend 를 가리킬 것 같지는 않은데요. 그렇다면, volume은 배포환경이 아닌, 개발환경에서의 편의를 위해서 사용하는 것인가요? 감사합니다. version : " 3 " services : frontend : build : dockerfile : Dockerfile.dev context : ./frontend volumes : - /app/node_modules - ./frontend:/app stdin_open : true