(root 경로에 복사 후 필요한 부분들 수정하면 됌)
Dockerfile, .dockerignore, docker-compose.yml
Dockerfile: 스크립트 이미지 생성시 사용, 되도록 하나만 생성
.dockerignore: 이미지 생성시 제외 파일 또는 폴더 목록
docker-compose.yml: 필수X, 도커로 배포할시만 필수
👉 Dockerfile 예시
FROM: base image 명시-> Dockerhub에서 공식이미지 선택
RUN: 실행 명령어
WORKDIR: work directory 설정
ENV: 환경 변수 설정
COPY: 컨테이너로 복사할 폴더 또는 파일 경로 명시
EXPOSE: 컨테이너에서 외부에 공개할 포트 명시(꼭 run -p옵션과 함께 사용) -> Docker prot 관련 참고
ENTRYPOINT: 컨테이너 수행시 반드시 실행될 명령어 작성. CMD: 실행시 인자값을 주어 명령 변경 가능.? 다시 보고 정리 예정... -> ENTRYPOINT, CMD 차이
👉 .dockerignore
.gitignore와 사용 방법 동일
docker build --tag <new image name>:<version(tag)> .
터미널 해당 경로에서 실행하면 됩니다. 뒤에 '.'을 붙여주지 않으면 에러 발생.. 이 외에도 필요시 다른 옵션 붙여 생성 가능..
👉 컨테이너 생성과 실행
docker run -itd --name <new conctainer name> <image name>:<version(tag)>
👉 Dockerfile에서 EXPOSE로 특정 포트를 지정한 경우
docker run -p <host port>:<container port> <image id>
ex) docker run -p 6000:6000 <image id>
이 외에도 필요시 다른 옵션 붙여 실행 하면 됩니다.
👉 이미지 생성 확인
docker images
👉 컨테이너 생성 확인
docker ps(실행중인 컨테이너만)
docker ps -a(중단 컨테이너 포함)
👉 이미지 삭제
docker rmi <삭제할 image id>
docker rmi <image id>, <image id> ...(여러 이미지 삭제)
docker rmi -f <image id> (컨테이너 실행중 이미지 강제 삭제 필요시)
👉 컨테이너 삭제
docker rm <삭제할 container id>
docker rm <container id>, <container id> ...(여러 컨테이너 삭제)
추가로 정리할 부분들......
++ 도커허브 공식 이미지 선정 정리
++ python 에러 - 이미지 크기 관련 정리
++ node-gyp 에러 관련 정리
++ port 관련...
https://soft.plusblog.co.kr/139
https://blog.naver.com/PostView.nhn?isHttpsRedirect=true&blogId=alice_k106&logNo=220278762795
++지금 이미지 사이즈 너무 커서 줄이는게 좋을 것 같음
https://devopscube.com/reduce-docker-image-size/