Docker & K8S
Docker & K8S - dockerignore와 맥 port 5000 에러
터칭 데이터
2023. 12. 21. 13:06
.dockerignore란 무엇인가? (1)
Image build할 때 추가하지 말아야할 파일들이나 폴더들 지정
앞서 살펴보았던 voting-application의 경우 .dockerignore의 내용은 아래와 같음
*.pyc
project.lock.json
bin/
obj/
.vs/
node_modules/
.dockerignore란 무엇인가? (2)
이외에 고려해볼만한 내용들은?
.git
.cache
logs/
*.md
**/*.class
.dockerignore란 무엇인가? (3)
Dockerfile에서 COPY 명령
실수로 불필요한 파일 혹은 민감한 정보가 들어있는 파일들이 이미지로 들어가는 걸 막으려면 COPY 명령을 처음이나 파일이나 폴더별로 일일이 적어주는 것이 좋을 수 있음. 그러면서 .dockerignore의 내용 보강
FROM …
# Copy our code from the current folder to /app inside the
container
COPY . .
COPY로 민감한 정보가 복사되어 이미지로 만들어질 수 있으니 주의! 현재 디렉토리의 모든 내용을 COPY하는 것은 좋은 습관이 아니며 어떤 내용이 COPY되는지 늘 확인하는 습관, Reminder가 중요
.dockerignore의 친구들
.gitignore
.npmignore
.eslintignore
.hgignore
맥에서 발생하는 port 5000 에러
맥에서 Container에 port 5000번을 호스트 포트로 사용하려고 하면 아래 에러 발생
Error response from daemon: Ports are not available: exposing port TCP 0.0.0.0:5000 ->
0.0.0.0:0: listen tcp 0.0.0.0:5000: bind: address already in use
이는 MacOS Monterey에만 존재하는 문제로 해결책이 있긴 하지만 다른 포트번호를 쓰는 것이 더 좋음
저번 voting application에서 포트 맵핑을 5001, 5002로 준 이유는 이런 맥 port 5000에러를 방지하기 위함이었습니다.