일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
- oracle
- Java
- android
- write by chatGPT
- lombok
- 자바네트워크
- 리눅스
- kotlin
- 뉴턴역학
- GIT
- 웹 크롤링
- 역학
- write by GPT-4
- 파이썬
- 자바암호
- Spring boot
- 코틀린
- Database
- chatGPT's answer
- 고전역학
- 소프트웨어공학
- 자바
- flet
- NIO
- 인프라
- 유닉스
- python
- 시스템
- JVM
- GPT-4's answer
- Today
- Total
Akashic Records
Docker Container의 Script Reverse 본문
실행 중인 Docker 컨테이너에서 컨테이너 실행 스크립트를 리버스하는 것은 컨테이너가 생성된 이미지와 관련 메타데이터를 검사하여 원래 실행 명령 및 관련 설정을 찾는 것을 의미합니다.
1. 컨테이너의 실행 명령 및 기본 설정 확인:
`docker inspect` 명령어를 사용하여 컨테이너의 메타데이터를 확인할 수 있습니다. 실행 중인 컨테이너의 ID 또는 이름을 사용하여 `docker inspect`를 실행합니다.
docker inspect <container_id_or_name>
출력된 JSON 결과에서 `Config.Cmd` 및 `Config.Entrypoint` 값을 찾아 컨테이너의 실행 명령을 확인할 수 있습니다. 또한, `Config.Env`에서 환경 변수, `HostConfig.PortBindings`에서 포트 바인딩, `HostConfig.Binds`에서 볼륨 마운트 등을 확인할 수 있습니다.
2. 도커 실행 스크립트 생성:
위에서 확인한 설정 값을 기반으로 `docker run` 명령어를 다시 작성합니다. 예를 들어, 다음과 같은 설정을 갖는 컨테이너가 있다고 가정해 보겠습니다.
- 이미지: `my_image:latest`
- 컨테이너 이름: `my_container`
- 실행 명령: `/app/start.sh`
- 환경 변수: `MY_ENV_VAR=my_value`
- 포트 바인딩: 호스트 8080 -> 컨테이너 80
- 볼륨 마운트: 호스트 `/host/data` -> 컨테이너 `/container/data`
이 경우, 다음과 같은 `docker run` 명령어를 작성할 수 있습니다.
docker run -d \
--name my_container \
-p 8080:80 \
-e MY_ENV_VAR=my_value \
-v /host/data:/container/data \
my_image:latest \
/app/start.sh
리버스 엔지니어링을 통해 실행 중인 Docker 컨테이너의 실행 스크립트를 작성할 수 있습니다. 이렇게 하면 해당 컨테이너를 새로 생성하거나 다른 시스템에서 실행할 수 있는 스크립트를 얻을 수 있습니다.
'Library' 카테고리의 다른 글
REST API TEST "Postman"에서 로그인 후 JWT을 Header에 자동 등록하는 방법 (0) | 2023.04.24 |
---|---|
Docker, docker-compose 사용법 (0) | 2023.04.24 |
Dockerfile, Docker Image Build (0) | 2023.04.24 |
How to use callbacks in Java (0) | 2023.04.24 |
7 keys to controlling serverless cloud costs (0) | 2023.04.21 |