넹현업에 가면 Docker 환경에서 개발을 하게 된다.💡 Why?프론트를 개발하든 백을 개발하든 결국엔 세상에 공개하는 배포 과정이 이루어져야 한다.개발이 Docker 환경에서 이루어지면 배포가 쉬워져서 Docker를 많이 활용하게 된다.그래서 우리가 직접 Docke
도커가 뭐야? 컨테이너가 뭐야? 도커 설치하기
레지스트리, docker hub, image, container, pull
컨테이너 만들기, 컨테이너 보기, 컨테이너 끄기, 로그 보기, 컨테이너 삭제하기, 이미지 삭제하기
-p 옵션
run 옵션: -d, -e, --link
Stateless, Stateful, 호스트 볼륨 공유, 볼륨 컨테이너, 도커 볼륨
브리지 네트워크, 호스트 네트워크, 논 네트워크, 컨테이너 네트워크, —net-alias, MacVLAN 네트워크
Json-file 로그, syslog, fluentd, 아마존 클라우드워치 로그
컨테이너 메모리 제한, 컨테이너 CPU 제한, Block I/O 제한, 스토리지 드라이버와 컨테이너 저장 공간 제한
도커 허브, commit, save/load, export/import
이미지 배포, 도커 허브 이미지 저장소, 도커 허브에 배포하기, 저장소 웹훅, webhook
Dockerfile 용도, 작성법, 빌드 컨텍스트, .dockerignore
멀티 스테이지 빌드가 필요한 이유
ENV, VOLUME, ARG, USER, ONBUILD, STOPSIGNAL, HEALTHCHECK, SHELL, ADD vs COPY 차이점, ENTRYPOINT vs CMD 차이점
하나의 명령어를 \\로 나눠서 가독성을 높인다..dockerignore 파일을 작성해 불필요한 파일을 빌드 컨텍스트에 포함하지 않는다.빌드 캐시를 이용해 기존에 사용했던 이미지 레이어를 재사용한다.&&로 각 RUN 명령을 하나로 묶어 하나의 RUN으로 여러 개의 명령어