본문 바로가기
Project/MITRE ATT&CK

Docker 기본

by jino22 2022. 1. 21.

틀린 부분이 있다면 언제든지 댓글 남겨주세요! 


Docker란?

컨테이너 가상화 기술을 사용하여 애플리케이션 실행 환경을 구축 및 운영하기 위한 플랫폼

컨테이너 단위로 서버를 구동시킴, 이 컨테이너의 기반이 docker image

* docker image=애플리케이션 실행에 필요한 파일이 담긴 디렉터리

 

* 가상화 기술이란? 개발 환경 구축을 편리하게 하기 위해 가상 OS위에 애플리케이션을 구동시키는 것. 즉 가상 환경

 - 호스트 가상화: 호스트 OS위에 가상화 소프트웨어를 설치하고 게스트OS를 구동 ex) Virtual Box, VMware

 - 하이퍼바이저 가상화: 하드웨어에 가상화 전문 소프트웨어 하이퍼바이저 설치 후 하드웨어와 가상환경 제어 ex) Hyper-V, XenServer

 - 컨테이너 가상화: 호스트 OS상에서 논리적으로 구역을 나눠 애플리케이션 동작을 위한 라이브러리와 애플래케이션을 컨테이너 안에 넣고 개별 서버처럼 사용 ex) Docker

 

docker 사용시 좋은 점

 - 이식성: 애플리케이션 실행에 필수적인 파일과 환경이 컨테이너에 모두 담겨져 있으므로 테스트 환경과 운영 환경이 달라도 동작 가능

 - 상호운용성: 여러 조직이나 시스템과 연계하여 사용할 수 있는 특성

 

docker 컴포넌트: 이미지를 생성 > 공개 > 컨테이너 실행하기 위한 여러 컴포넌트가 있음

ex) docker engine(core 기능), docker kitematic(GUI tool), docker registry(이미지 공개 및 공유), docker compose(여러 컨터이너를 통합 관리), docker machine(실행 환경 구축), docker swarm(클러스터 관리)

 - docker compose: 여러 컨테이너를 하나로 관리할 수 있는 툴. docker-compose.yml파일에 컨테이너 구성 정보 정의

 


Docker 관련 명령어 (Linux)

 

도커 버전 확인

> docker version

> docker info

 

컨테이너 생성 및 실행

> docker create            (이미지로 생성)

> docker run [option] [이미지명] [커맨드]     (이미지에서 생성하여 컨테이너 상에서 프로세스 구동)

[option]

-d, --detach 백그라운드 실행
-u, --user="사용자명" 사용자명 입력
--expose=[port 번호] 포트 번호 할당
--add-host=[호스트명:IP address] 컨테이너의 /etc/hosts에 호스트명과 ip address 설정
--dns=[IP address] DNS서버의 IP address 설정
-p [호스트 포트 번호]:[컨테이너 포트 번호] 호스트와 컨테이너의 포트 매핑

ex) docker run -d -p 8080:80 httpd

: httpd이미지를 기반으로 컨테이너를 생성하여 백그라운드에서 실행. 호스트의 포트 번호 8080, 컨테이너 포트 번호 80

 

현재 실행중인 컨테이너 목록 확인

> docker ps

상태 확인 > docker stat

 

컨테이너 구동 (중지 상태인)

> docker start

 

컨테이너 일시정지

> docker pause [컨테이너 명]

재시작 > docker unpause [컨테이너 명]

 

구동중인 컨테이너 접속

> docker attach [컨테이너 명]

 

컨테이너 중지

> docker stop

 

컨테이너 삭제

> docker rm

 

Dockerfile 

: 인프라 구성 정보. 어떤 docker image로 부터 docker 컨테이너가 생성되었는지에 대한 정보 포함

FROM 베이스 이미지 지정 ADD 파일 및 디렉터리 추가
MAINTAINER Dockerfile 생성자 COPY 파일 복사
RUN 커멘드 실행 VOLUME 볼륨 마운트
CMD  데몬 실행 ENTRYPOINT 데몬 실행
LABEL 라벨 설정 USER 사용자 설정
EXPOSE 포트 expose WORKDIR 작업 디렉터리 지정
ENV 환경변수 설정 ONBUILD build 완료 후 실행 될 명령어

 

docker compose commend

docker-compose 커멘드는 docker-compose.yml을 저장한 디렉터리에서 실행

ex) docker-compose -f ./sample/docker-compose.yml up

: f 옵션으로 yml 파일 경로 지정하여 구동

up 컨테이너 생성 및 구동 scale 생성할 컨테이너 개수 지정
ps 컨테이너 목록 확인 logs  컨테이너 로그 출력
run 컨테이너 실행 start 컨테이너 구동
stop 컨테이너 중지 restart 컨테이너 재기동
kill 실행중인 컨테이너 강제 종료 rm 컨테이너 삭제

컨테이너 로그 확인

> docker-compose logs

 

 

728x90
반응형

'Project > MITRE ATT&CK' 카테고리의 다른 글

OSINT, STIX, MITRE ATT&CK  (0) 2021.08.24

댓글