2023. 10. 31. 03:01ㆍSTUDY
도커 : 컨테이너를 만들고, 실행하고, 배포할 수 있는 가상화 플랫폼
도커의 컨테이너 : 가상의 환경이 구축되어 있는 하나의 박스
새로운 운영체제 환경을 구축할 필요 없이 하나의 분리된 프로세스처럼 작동하여 가벼움
특정한 환경을 구성하기 위해 만들어진 가상의 공간
- docker image : 도커 컨테이너의 전 단계
- 컨테이너를 생성하고 실행하기 위한 모든 것을 포함한다
ex) 컨테이너 생성에 필요한 파일, 환경변수, 명령어, 파일 시스템 등등
- 자신만의 이미지를 만들거나 다른 사람이 만든 이미지를 사용할 수도 있음
- 이미지 생성 => dockerfile 작성&빌드 ... dockerfile:이미지를 생성하는데 단계적으로 필요한 명령을 작성하는 파일- tag : 태그를 붙이는 것은 하나의 이미지에 여러 개의 별명을 붙여주는 것과 같다. 주로 이미지의 버전을 지정하기 위해 사용
- docker container : 도커 이미지로부터 만들어진 실행 가능한 인스턴스
- 실행 중인 이미지 == 컨테이너
- 도커 이미지와 사용자가 컨테이너를 시작할 때 작성하는 옵션에 의해 정의된다
- 컨테이너를 실행하는 동안은 분리된 파일 시스템을 사용
- docker registry : 도커 이미지를 저장하는 저장소
Docker Hub Container Image Library | App Containerization
- 도커를 쓰는 이유
- 가상 환경 구축의 많은 부분을 생략하고 가볍게 실행되어, 매우 간편하게 문제 환경을 재현한다
- 문제 환경과 거의 동일한 환경을 제공하여 문제 풀이에 방해가 되는 요소를 줄인다
- 문제가 각각 분리된 환경에 있는 것처럼 제공하여 공격 과정에서 다른 문제에 영향을 미치거나, 출제자가 의도하지 않은 공격이 수행되는 것을 막음
- 도커 명령어
docker build : dockerfile을 이용하여 이미지 생성
docker build [옵션] [Dockerfile 경로]
docker build -t [이미지명:태그] [Dockerfile 경로]
# -t : 이미지의 이름과 태그를 지정
#태그를 작성하지 않을 경우 'latest'로 지정
docker build . #현재 디렉토리에 있는 dockerfile로 이미지 생성
docker build -t my -image . #현재 디렉토리에 있는 dockerfile로 'my-image:latest'이미지 생성
docker images : 도커 이미지 목록을 출력
docker run : 도커 이미지로 컨테이너를 생성하고 실행
docker run [옵션] [이미지명|ID] [명령어]
docker run -p [호스트 PORT]:[컨테이너 PORT] [이미지명|ID]
# -p : 도커 컨테이너의 포트와 호스트의 포트를 매핑, 컨테이너에서 리슨하고 있는 포트를 호스트의 특정 포트로 접속할 수 있도록 함
docker run -it [이미지명|ID] [명령어]
# -it : 컨테이너에서 bash셸 사용
# -i (--interactive) : 표준 입력을 활성화하여 사용자가 명령어를 입력할 수 있도록
# -t (--tty) : 가상 터미널(tty)을 사용할 수 있도록
docker run -it my-image:1 /bin/bash : my -image:1 #이미지로 컨테이너를 생성하고 실행하여 bash 셸 열기
docker ps : 실행 중인 컨테이너 목록을 출력
docker ps -a
# -a : 종료된 컨테이너까지 모두 출력
docker create : 도커 이미지로 컨테이너를 생성
docker create [옵션] [이미지명|ID] [명령어]
docker start : 중단된 컨테이너를 시작
docker start [옵션] [컨테이너명|ID]
docker exec : 실행중인 컨테이너에 접속하여 명령 수행
docker exec [옵션] [컨테이너명|ID] [명령어]
#docker run과 유사하게 -it 옵션으로 bash 셸을 실행할 수 있음
docker exec -it [컨테이너명|ID] /bin/bash
#실행중인 컨테이너에서 bash 셸 열기
docker stop : 실행중인 컨테이너를 중단
docker stop [옵션] [컨테이너명|ID]
docker pull : 레지스트리(docker hub)에 존재하는 도커 이미지를 다운받음
docker pull [옵션] [이미지명]
docker pull ubuntu:18.04
#docker hub에서 ubuntu:18.04 이미지를 다운
docker rm : 도커 컨테이너를 삭제
docker rm [옵션] [컨테이너명|ID]
docker rmi : 도커 이미지를 삭제
docker rmi [옵션] [이미지명|ID]
docker inspect : 도커 이미지 혹은 컨테이너의 자세한 정보를 출력한다
docker inspect [옵션] [이미지 혹은 컨테이너명|ID]
'STUDY' 카테고리의 다른 글
[WEB] File Vulnerability (0) | 2024.05.06 |
---|---|
[WEB] command injection (0) | 2024.03.06 |
[NETWORK] SSH (1) | 2023.10.31 |
[NETWORK] nc(netcat) (0) | 2023.10.30 |
공격자의 난독화 전력과 풀이 방법 (0) | 2023.10.14 |