틀린 부분이 있다면 언제든지 댓글 남겨주세요!
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
'Project > MITRE ATT&CK' 카테고리의 다른 글
OSINT, STIX, MITRE ATT&CK (0) | 2021.08.24 |
---|
댓글