앱이 실행되는 작은 가상 컴퓨터(필요한 것만 갖고 있고, 빠르게 실행)
VM과 Container의 차이점
VM - 독립적인 플랫폼을 하나씩 증가시킬 때마다 불필요한 OS를 만드는 작업이 요구된다.
Container - 하나의 Host OS위에서 마치 각각의 독립적인 프로그램처럼 관리되고 실행된다.
도커 이미지란 컨테이너를 만들기 위한 '설치 패키지 테플릿' 이다.
Docker는 애플리케이션을 컨테이너(Container)라는 단위로 패키징하고 실행할 수 있게 해주는 가상화 플랫폼이다.
특징: Docker는 클라이언트-서버 아키텍처이다. 도커 클라이언트와 도커 데몬이 RestApi를 사용하여 통신
1. Docker Client
클라이언트는 도커 데몬에게 RestApi 요청을 보내서 실제 작업을 요청한다.
ex)2. Docker Daemon
백그라운드에서 동작하며, 이미지 빌드, 컨테이너 실행, 네트워크 관리 등 실제 작업을 수행하는 핵심 엔진이다.
3. Docker Registry
도커 이미지를 업로드하고 다운로드할 수 있는 중앙 저장소
1. 환경 일치성
다양한 환경에서 동일한 실행 환경을 보장한다. 개발 환경과 운영 환경의 차이로 인한 문제를 방지하며, 응용 프로그램을 어디서든 실행 할 수 있다.
2. 편리한 배포
도커 컨테이너는 이미지로 패키징되어 배포되므로, 애플리케이션 배포가 간단해진다. 이미지를 공유하거나 배포할 때 용이하며, 빠른 확장이 가능하다.
3. 격리된 환경
도커는 각 컨테이너를 격리된 환경으로 실행하므로, 하나의 컨테이너에서 발생한 문제가 다른 컨테이너에 영향을 주지 않는다.
4. 자원 표율성
가상 머신과 비교해 더 가볍고 빠르며, 호스트 시스템의 리소스를 효율적으로 활용할 수 있다.
5. 스케일링
컨테이너 기반 아키텍처는 쉬운 스케일링이 가능하여 요구에 따라 응용 프로그램을 확장할 수 있다.
Docker

홈페이지에 접속하여 자신에게 알맞는 버전을 설치하면 된다.
terminal을 실행시켜docker pull vulnerabels/web-dvwa를 입력한다.
위 사진과 같이 docker image가 생성된 것을 확인 할 수 있다.
terminal에 docker run -d -p 80:80 vulnerables/web-dvwa를 입력한다.
위 사진과 같이 컨테이너를 실행시킨 것을 확인 할 수 있다.(localhost 80포트에서 웹 서버 실행)
localhost:80에 접속

사진 속 네모 안의 부분을 클릭하여 접속한다.

Username: admin Password: password를 입력한다.
Username: admin Password: password를 다시 입력하면 웹 해킹할 가상환경 구축이 완료된다.