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

식빵님의 프로필 이미지

작성한 질문수

개발자를 위한 쉬운 도커

SpringBoot 백엔드 컨테이너 구성

docker cp 또는 docker run cmd 에서 root 경로(/) 작성은 꼭 해야될 필요가 없는 건가요??

해결된 질문

24.07.20 12:53 작성

·

105

·

수정됨

1

안녕하세요 선생님, 영상을 계속 보다보니 궁금한 게 생겨서 질문드립니다.

docker run ~~~~ 하고 맨 끝에 CMD 를 덮어쓸 명령어를 작성하실 때 저는 당연히 "/bin/bash" 처럼 작성할 줄 알았는데, "bin/bash" 로 입력하시더라구요. 그런데 이게 또 되니까 더 신가하더군요.

이뿐만 아니라 docker cp 할 때도
docker cp . gradle:app 을 할 때도
gradle:/app 이 아니라 gradle:app 처럼 작성해도 정상 동작이 됩니다.

이렇게 "/" 경로를 앞에 붙이지 않아도 동작이 되는 이유가 뭔지 알 수 있을까요?

답변 1

1

데브위키님의 프로필 이미지
데브위키
지식공유자

2024. 07. 21. 11:29

식빵님 안녕하세요, 데브위키입니다.

 

네 말씀해주신대로 현업에서는 / 경로를 앞에 붙이는것이 일반적입니다.

다만 Docker 컨테이너의 작업 디렉터리가 루트("/")라면,

/bin/bash

bin/bash

두 경로는 사실상 동일한 위치를 가리키게 됩니다.

 

저도 처음에는 실습을 구성하면서 /bin/bash로 사용했었는데요.

윈도우, 맥 환경에서 모두 동작하는 명령어를 설계하다 보니 특정 상황에서 / 를 앞에 붙였을 때 특정 터미널 환경에어 종종 제대로 실행되지 않는 문제가 있었습니다.

 

정리하자면 작업 데릭터리가 루트 디렉터리일 경우 두 가지 명령은 모두 동일하고, 절대 경로(/bin/bash)가 아닌 상대 경로(bin/bash)로 지정한 이유는 실습 환경의 편의성 때문이기 때문입니다.

 

강의 들으시면서 더 궁금하신 부분이 있으면 편하게 질문해주세요!

식빵님의 프로필 이미지
식빵
질문자

2024. 07. 21. 12:01

아... 윈도우와 맥간의 차이 때문이었군요 😱
답변 감사합니다.

식빵님의 프로필 이미지

작성한 질문수

질문하기