part 6) Use bind mounts
이녀석이 신기한 기능을 한다
바인드를 하여 지금 로컬 파일들과 컨테이너의 파일을 공유할수 있게 된다
docker run -it --mount type=bind,src="$(pwd)",target=/src ubuntu bash
이거의 명령어를 잘라서 보면 (자세한건 다음에)
- it : input terminal 일거다 즉 터미널 안에 들어가 인풋을 할수 있는 환경을 만드는거다
--mount : 뭔가 설정해준다
type=bind : bind(공유) 한다
src="위치" : 로컬의 공유위치를 설정해준다
target="위치" : 컨테이너의 폴더 위치를 설정해준다
ubuntu bash : 우문투 bash 로 실행
이런식이다
저거 실행하면 아 컨테이너 안이구나 하고 알것같다
이제 target폴더로 가보자
root@ac1237fad8db:/# cd src
root@ac1237fad8db:/src# ls
Dockerfile node_modules package.json spec src yarn.lock
나는 target을 src로 하였기에 src로 이동하였다
그리고 보면 지금 app위치에 있는 파일들과 동일한걸 볼 수 있고 이 폴더에 파일을 추가하면 로컬에도 추가된것을 볼 수 있다
root@ac1237fad8db:/src# touch myfile.txt
root@ac1237fad8db:/src# ls
Dockerfile myfile.txt node_modules package.json spec src yarn.lock
보너스로 있는걸 해석해보자
docker run -dp 3000:3000 \
-w /app --mount type=bind,src="$(pwd)",target=/app \
node:18-alpine \
sh -c "yarn install && yarn run dev"
dp : 백그라운드 에 포트 설정
-w : 작업 설정 여기선 "/app" 으로 해서 터미널 들어가면 app이 되겟금 한거같음
--mount : 위에서 설명함 여기는 app을 이어주엇음
node:18-alpine : 실행 환경임
sh -c : 쉘로 실행하겟음 "yarn install && yarn run dev" 명령어를 이건 보시다시시피 app에 이미 yarn 파일이 있는데 그걸 설치 실행한다는 거라고 생각하면됨 내가 안에 들어가서 할 필요가 없어진다~
이거처럼 실행중에도 수정이 되면 새로 리프레쉬 되는것을 볼수 있다
개꿀임..
https://docs.docker.com/get-started/06_bind_mounts/
Use bind mounts
docs.docker.com
'42Seoul > Docker' 카테고리의 다른 글
10. docker 가이드 파해치기 [Get started] part 8 (0) | 2023.03.04 |
---|---|
9. docker 가이드 파해치기 [Get started] part 7 (0) | 2023.03.04 |
7. docker 가이드 파해치기 [Get started] part 5 (0) | 2023.03.04 |
6 docker 가이드 파해치기 [Get started] part 4 (0) | 2023.03.04 |
5. docker 가이드 파해치기 [Get started] part 3 (0) | 2023.03.04 |