문제 설명
Docker 실습을 위한 문제입니다. 주어진 Dockerfile을 빌드하여 이미지를 생성하고 컨테이너를 실행해 보세요!
플래그의 형식은 DH{...} 입니다.
문제 파일 다운받고, cd명령어를 사용해 경로를 문제 파일로 옮겼다. 파워쉘에서 docker build . 명령어 입력했더니 빌드가 잘 됐다.
docker images 명령어를 입력해 image id를 얻었다.
그리고 얻은 image id 를 이용해 docker run 명령어를 입력해 줄 수 있었다.
그리고 cat 명령어를 사용해 flag 파일의 내용을 확인하니 플래그값을 구할 수 있었다.
dockerfile을 이용한 건 처음이라서 검색에 많이 의존했다..그렇기에 모르거나 헷갈리는 부분, 궁금증이 드는 부분을 정리해봤다.
dockerfile을 사용하는 프로세스는 다음과 같은 절차로 작업이 진행된다.
dockerfile 생성 → docker build 로 이미지 생성 → 생성된 이미지로 docker container run 수행
(워게임 풀 때는 이미 dockerfile이 생성되어 있었으므로 별도로 생성 과정이 필요하지는 않았다.)
-it 옵션
-i : 컨테이너가 실행된 후 터미널을 계속 열어두고, 사용자가 명령어를 입력할 수 있게 해줌. -> ls나 cat 명령어를 사용할 수 있었던 이유이다.
-t : 터미널을 위한 가상 화면을 할당한다. -i와 결합해서 사용하면 명령어를 입력 후 터미널로 결과를 확인할 수 있게 해주는 것이다.
*컨테이너 : 필요한 라이브러리 및 바이너리와 함께 애플리케이션을 컨테이너 이미지라고 하는 독립된 패키지로 패키지화하여 여러 컴퓨팅 환경에 쉽게 배포할 수 있다. 즉, 프로그램을 실행하는 데 필요한 환경을 포장해서 어디서든 똑같이 실행할 수 있게 해주는 도구인 것이다.
/bin/bash는 bash셸을 실행하겠다는 뜻이다. 컨테이너 내에서 실행할 셸 프로그램을 지정하는 것.
bash는 명령어를 입력하고 실행할 수 있는 환경을 제공하며, 리눅스에서 많이 이용된다.
도커파일 : 청사진 혹은 설계도 역할, 실행 준비가 된 템플릿
컨테이너 : 도커파일의 청사진/설계도를 기반으로 실행하는 것. 실제로 실행된 인스턴스
개인 공부 목적으로 작성된 글이며, 틀린 정보나 해석이 있을 수 있음.
https://dreamhack.io/wargame/challenges/876
'슈포스 > 워게임' 카테고리의 다른 글
[misc]Dreamhack_baby-linux (1) | 2024.11.19 |
---|---|
[web]Dreamhack_command-injection-1 (0) | 2024.11.12 |
[web]Dreamhack_🌱simple-web-request (0) | 2024.11.04 |
[web]Dreamhack_Flying Chars (0) | 2024.10.31 |
[misc]Dreamhack_64se64 (0) | 2024.10.08 |