Dev/Docker

[Docker] Dockerfile의 COPY와 리눅스 cp의 차이

friendshipkim97 2023. 5. 9. 19:24

Dockerfile의 COPY와 Linux의 cp명령어는 복사하는 기능은 똑같지만, 폴더를 풀고 넣느냐 아니냐의 차이점이 있다.

  • Docker의 COPY : 복사하려는 디렉토리를 포함하지 않고 복사
  • Linux의 cp : 복사하려는 디렉토리까지 포함해서 복사

이게 무슨 말일까..? 예를 들어 알아보자,

 

아래와 같은 Dockerfile이 있다고 할 때, 

./src/game폴더에서 ./origin2로 옮기는 경우, game폴더가 풀어져서 game폴더 안에 존재하는,

controller만 도커 이미지 경로로 전달이 된다.

 

결과로, 아래와 같이 도커 이미지 안에 들어가서 경로로 확인해보면, controller만 들어가 있는걸 확인할 수 있다.

반대로, 리눅스에서 cp를 사용하는 경우,

폴더가 풀어지지 않고 복사하려는 폴더 자체가 복사되는 걸 알 수 있다.

 

마냥 똑같은 기능을 할거라고만 생각했던 Dockerfile의 COPY와 Linux의 cp지만, 실제로 해보고 차이를 비교해보니 명확하게 차이를 구별할 수 있었다!