Docker 이미지, cp 명령 동작이 다르다고?

by DD
4년 전
조회수 8

Alpine 기반 Docker 이미지와 Debian/Ubuntu 기반 이미지에서 `cp` 명령 동작이 다름을 발견

심볼릭 링크 처리 방식의 차이로 인해 예상치 못한 결과 발생 가능성

Docker 이미지 마이그레이션 시, 이러한 차이점을 인지하고 명령 수정 필요

Alpine vs Debian: cp 명령의 차이

Alpine 기반 이미지의 `cp` 명령은 심볼릭 링크를 삭제하고 파일을 복사한다. 반면 Debian/Ubuntu 기반에서는 심볼릭 링크가 유지되며 파일 내용이 변경된다. 따라서 Docker 이미지 간 마이그레이션 시, 이러한 차이점을 고려하여 명령어 수정이 필요하다.

심볼릭 링크 처리 방식 비교

Alpine은 `cp` 명령 실행 시, 심볼릭 링크를 일반 파일처럼 취급한다. Debian/Ubuntu는 심볼릭 링크의 속성을 유지하며, 링크된 파일의 내용을 변경한다. 이러한 차이는 파일 시스템의 구현 방식과 관련 있으며, Docker 이미지의 Base Image에 따라 달라진다.

Docker 환경에서의 cp 명령 활용 팁

Alpine과 Debian/Ubuntu 이미지 간의 호환성을 위해 `cp` 명령 사용 전 심볼릭 링크를 명시적으로 삭제하는 것이 좋다. 구체적으로 `rm c` 명령을 실행 후 `cp b c`를 수행하면 예상치 못한 문제를 방지할 수 있다. 따라서 Docker 빌드 스크립트 작성 시 주의해야 한다.

Alpine/Debian 기반 Docker 이미지 간 cp 명령 동작 차이

댓글 0

첫 번째 댓글을 남겨보세요!