해결된 질문
작성
·
119
·
수정됨
1
안녕하세요 선생님, 영상을 계속 보다보니 궁금한 게 생겨서 질문드립니다.
docker run ~~~~ 하고 맨 끝에 CMD 를 덮어쓸 명령어를 작성하실 때 저는 당연히 "/bin/bash" 처럼 작성할 줄 알았는데, "bin/bash" 로 입력하시더라구요. 그런데 이게 또 되니까 더 신가하더군요.
이뿐만 아니라 docker cp 할 때도
docker cp . gradle:app 을 할 때도
gradle:/app 이 아니라 gradle:app 처럼 작성해도 정상 동작이 됩니다.
이렇게 "/" 경로를 앞에 붙이지 않아도 동작이 되는 이유가 뭔지 알 수 있을까요?
답변 1
1
식빵님 안녕하세요, 데브위키입니다.
네 말씀해주신대로 현업에서는 / 경로를 앞에 붙이는것이 일반적입니다.
다만 Docker 컨테이너의 작업 디렉터리가 루트("/")라면,
/bin/bash
bin/bash
두 경로는 사실상 동일한 위치를 가리키게 됩니다.
저도 처음에는 실습을 구성하면서 /bin/bash로 사용했었는데요.
윈도우, 맥 환경에서 모두 동작하는 명령어를 설계하다 보니 특정 상황에서 / 를 앞에 붙였을 때 특정 터미널 환경에어 종종 제대로 실행되지 않는 문제가 있었습니다.
정리하자면 작업 데릭터리가 루트 디렉터리일 경우 두 가지 명령은 모두 동일하고, 절대 경로(/bin/bash)가 아닌 상대 경로(bin/bash)로 지정한 이유는 실습 환경의 편의성 때문이기 때문입니다.
강의 들으시면서 더 궁금하신 부분이 있으면 편하게 질문해주세요!
아... 윈도우와 맥간의 차이 때문이었군요 😱
답변 감사합니다.