더북(TheBook)

컨테이너 파일 시스템은 윈도 컨테이너와 리눅스 컨테이너의 동작이 일치하지 않는 몇 안 되는 영역 중 하나다. 동일하게 동작하는 경우가 없는 것은 아니다. 예를 들면 Dockerfile 스크립트 내 경로 문자열이 그렇다. Dockerfile 스크립트에서 리눅스 스타일의 경로 문자열 \data를 사용해도 윈도 컨테이너에서 그대로 C:\data의 별명으로 처리된다. 그러나 볼륨이나 바인드 마운트에서는 동작이 달라진다. 이번 장의 실습에서 경로 문자열을 운영체제별로 다르게 환경 변수로 정의하는 것도 바로 이 때문이다.

단일 파일 마운트의 한계점은 이보다 더 명확하다. 윈도와 리눅스 컴퓨터를 모두 갖고 있거나 리눅스 컨테이너와 윈도 컨테이너를 모두 지원하는 윈도 버전 도커 데스크톱에서 확인해 볼 수 있다.

실습 단일 파일 마운트는 리눅스 컨테이너와 윈도 컨테이너에서 서로 다르게 동작한다. 두 가지 컨테이너를 모두 실행할 수 있다면 다음 명령을 실행해 보라.

cd ./ch06/exercises/bind-mount

# 리눅스
docker container run --mount type=bind,source="$(pwd)/new/123.txt",target=/init/123.txt diamol/ch06-bind-mount

# 윈도
docker container run --mount type=bind,source="$(pwd)/new/123.txt",target=C:\init\123.txt diamol/ch06-bind-mount

docker container run diamol/ch06-bind-mount

docker container run --mount type=bind,source="$(pwd)/new/123.txt",target=/init/123.txt diamol/ch06-bind-mount
신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.