Docker란 무엇인가?
: 애플리케이션을 컨테이너라는 독립된 환경에 패키징하고 실행할 수 있는 플랫폼. OS 수준의 가상화를 기반으로 하며, VM보다 경량이고 실행 속도가 빠른다.
VM과 Docker의 차이?
: VM은 HOST OS상 가상화를 이용해 다수의 GUEST OS를 만든다. 반면에 Docker는 HOST OS의 커널을 공유하며 리소스 소비가 적고 실행이 빠르다.
Docker 이미지와 컨테이너 차이
: 이미지는 읽기 전용 실행 파일이고, 컨테이너는 이미지 기반으로 실행된 인스턴스(프로세스)
Dockerfile이란?
: 도커 이미지를 만들기 위한 설정 파일로, baseImage, file copy, package install, 실행 명령 등을 정의.
COPY와 ADD 차이
: COPY는 단순한 파일 복사
ADD는 복사 + URL 다운로드 + 압축 해제.
( 일반적으로 COPY를 권장 )
Docker compose란?
: 여러 컨테이너를 하나의 파일에서 정의하고 한 번에 실행할 수 있게 해주는 도구.
Docker Hub와 Registry의 차이
: Docker Hub는 도커의 공식 이미지 저장소,
Registry는 자체적으로 운영 가능한 저장소.
ENTRYPOINT와 CMD의 차이
: ENTRYPOINT는 실행 명령,
CMD는 기본 인자값.
컨테이너 간 통신 방법
: 기본 bridge 네트워크로 통신 가능하며,
Compose에서는 서비스명 기반 DNS로 연결.
컨테이너 상태 확인 명령어
: docker ps (-a), docker inspect
로그 확인 명령어
: docker logs < 컨테이너명 >
컨테이너 접속 방법
: docker exec -it < 컨테이너명 > /bin/bash
Volume과 Bind Mount의 차이
: Volume은 도커가 관리( 운영 )
Bind Mount는 Host 디렉토리와 직접 연결.
멀티스테이지 빌드란?
: 빌드 단계와 실행 단계를 분리 -> 이미지 크기를 줄일 수 있다.
포트 포워딩은 어떻게?
: docker run -dit -p 80:8080 이미지명
( -d(daemon) -it(interact) )
파일 공유 방법은?
:docker run -v /host/path:/container/paht 이미지명
보안 이슈 방법
: 민감 정보를 이미지에 포함하지 않고, 최소 권한 사용자로 실행함.
재시작 정책 설정
: --restart=always 또는 --restart=on-failure
이미지 경량화 방법
: 멀티스테이지, Dockerfile 상 불필요한 파일 제거 및 캐시 최소화, 하나의 RUN 명령어로 레이어 최소화
포트 오픈 여부 확인 방법
: 컨테이너 내부 -> netstat, curl, telnet
컨테이너 외부 -> docker port, nmap, ss
Docker 컨테이너의 격리 수준 정도?
: Host OS, 컨테이너 간 서로 독립적으로 구분.
( 하지만, 커널은 공유 )