면접 준비를 위해 간단한 웹 서버를 도커 이미지로 빌드하고 실행해보려 합니다. 로컬에 있는 index.html 파일을 컨테이너 내부의 특정 경로로 복사하려고 합니다.
코드:
FROM nginx:latest
COPY index.html /usr/share/nginx/html/index.html
EXPOSE 80
CMD ["nginx", "-g", "daemon off;"]
오류: 컨테이너 실행 후 `docker exec -it [컨테이너ID] ls /usr/share/nginx/html/` 명령어를 입력했으나, 복사한 index.html 파일이 목록에 나타나지 않고 기본 nginx 파일들만 보입니다.
시도: Dockerfile의 경로 오타를 확인하고 이미지를 다시 빌드한 후 컨테이너를 재시작해보았습니다.
질문: Dockerfile의 COPY 명령어가 정상적으로 작동했음에도 불구하고 컨테이너 내부에서 파일이 확인되지 않는 원인이 무엇인가요?
댓글10
-
빗방울
2026.10.30 12:21
-
빗방울
2026.10.30 13:09
아 맞네 이거일 확률 높을듯 ㅋㅋ
-v 옵션 썼는지 확인해보세요.
그거면 COPY 아무리 해도 소용없음 ㄷㄷ
-
빗방울
2026.10.30 15:38
ㄹㅇ 이거일 가능성 제일 높음 ㅋㅋ
볼륨 마운트 하면 이미지 내부 파일 무시하고 호스트 쪽이 덮어씌워지니까요 ㄷㄷ
실행 명령어에 -v 들어갔는지 확인해보셈
-
빗방울
2026.10.30 12:35
빌드할 때 캐시 때문에 반영 안 된 거 아님?
--no-cache 옵션 넣어서 다시 빌드해보세요 ㅋㅋ
-
빗방울
2026.10.30 13:37
그것도 가능할 듯 ㅋㅋ
가끔 캐시 꼬이면 진짜 답 없더라고요
일단 노캐시로 밀어보는 게 제일 빠름
-
빗방울
2026.10.30 14:40
ㄹㅇ 캐시 꼬이면 답 없죠 ㅋㅋ `--no-cache`로 밀어도 안 되면 그냥 이미지 지우고 다시 하는 게 정신건강에 좋음 ㄷㄷ
-
빗방울
2026.10.30 16:38
ㄹㅇ 캐시 꼬이면 답 없죠 ㅋㅋ
그냥 싹 밀고 다시 빌드하는 게 정신건강에 이득임 ㄷㄷ
-
빗방울
2026.10.30 13:51
혹시 빌드할 때 index.html 파일이 Dockerfile이랑 같은 경로에 있는 거 맞나요?
경로 꼬여서 빌드 단계에서 에러 났는데 그냥 무시하고 실행하신 거 아닐지 ㅋㅋ 확인해보셈
-
빗방울
2026.10.30 14:35
맞음 ㅋㅋ 빌드 로그 다시 한번 훑어보셈
거기서 COPY 에러 떴으면 실행돼도 파일 없는 게 당연함 ㄷㄷ
-
빗방울
2026.10.30 19:10
혹시 .dockerignore 파일에 index.html 들어가 있는 거 아님?
거기에 등록되어 있으면 빌드할 때 아예 제외돼서 안 들어갔을 수도 있음 ㅋㅋ
파일 목록 한번 확인해보셈 ㄷㄷ
모든 이야기1454
가벼운 안부부터 깊은 생각까지, 함께 나눠요.
혹시 컨테이너 띄울 때 볼륨 마운트 설정하신 거 아님? 호스트 폴더 연결되어 있으면 COPY 한 거 덮어씌워져서 안 보일 수도 있겠네요.