이번 글에서는 Nginx 도커 컨테이너를 기반으로 웹 서버를 실행하고, 수정한 index 페이지를 포함한 새로운 이미지를 생성해 Docker Hub에 배포하는 과정을 정리해 보았습니다.
보안 관점에서의 고려사항도 함께 포함하여 안전한 웹 서비스 운영에 초점을 맞췄습니다.
목표
- Nginx 컨테이너 이미지를 사용해 웹 서버 실행
- index.html 수정 (개발 단계)
- 수정된 컨테이너를 새로운 이미지로 커밋
- Docker Hub에 배포
- (보안) 주요 정보통신기반시설 리눅스 서버 진단 → 보안 패치, 모의해킹 → 안전한 컨테이너 환경 구축
1. Ngninx 컨테이너 이미지를 이용하여 웹 서버 실행
우선 Nginx 공식 이미지를 사용하여 컨테이너를 실행합니다.
docker run -itd --name web01 -p 8080:80 nginx

2. index.html 수정 방법 (개발 단계)
index 페이지를 수정하는 방법은 여러 가지가 있습니다:
- 컨테이너 내부 bash로 직접 접속해서 수정
- cp 명령어로 호스트에서 만든 파일을 컨테이너로 복사
- Docker 볼륨을 마운트 하여 동기화
이번 실습에서는 두 번째 방법, 즉 cp 명령어를 사용했습니다.

index 페이지 수정을 위해 web01 bash로 접속

3. 수정된 컨테이너로 새로운 이미지 생성
수정이 완료된 컨테이너를 기반으로 새로운 이미지를 생성합니다.
docker commit -a "min82" web01 webfront:1.0

docker 허브에 web01 이미지를 webfront라는 이름으로 커밋
4. Docker Hub 로그인 및 이미지 배포
① Docker Hub 로그인

비밀번호 입력 시 보이지 않지만, 정상 입력 후 Login Succeeded 메시지가 뜨면 성공
② 이미지 이름 변경 (태깅)
docker tag webfront:1.0 min82/webfront:1.0

이렇게 하면 webfront:1.0을 min82/webfront:1.0으로 복사하는 형태로, 원본을 유지할 수도 있고 바로 태깅만 해도 무방합니다
③ Docker Hub에 이미지 업로드

업로드가 완료되면 Docker Hub 웹사이트에서 이미지가 등록된 것을 확인할 수 있습니다.

*보안 포인트 요약
- 컨테이너에 직접 접속해 파일 수정보다는 호스트에서 정형화된 방법(cp, volume)을 사용하는 것이 더 안전
- 수정한 웹 페이지 내용은 보안 패치 기준에 맞춰 검토 필요 (예: 입력 검증, 디버깅 코드 제거 등)
- 컨테이너 기반 웹 서비스는 별도의 보안 진단 도구를 통해 모의해킹을 수행해 보는 것도 중요
- 최종 이미지를 배포하기 전, 불필요한 파일 삭제 및 권한 설정을 통해 보안을 강화
마무리
이번 실습에서는 Nginx 기반 컨테이너를 커스터마이징하고, 수정한 웹 페이지를 포함한 이미지를 만들어 Docker Hub에 배포하는 전 과정을 다뤄보았습니다. 단순한 웹 서비스 구성에서 나아가, 보안적인 요소까지 고려한 안전한 이미지 배포가 가능하도록 구성하는 것이 중요합니다.
'Security' 카테고리의 다른 글
| [Docker] 컨테이너 기반의 로드밸런싱 구축 (0) | 2025.04.15 |
|---|---|
| [Docker] 도커 컨테이너 자원 제한(보안 관점에서의 최적화) (0) | 2025.04.14 |
| [Docker] 도커 컨테이너 전체 삭제 방법 (0) | 2025.04.14 |
| [Splunk] Splunk DB Connect 추가 방법 (0) | 2025.04.11 |
| [Splunk] Splunk 설치 및 Splunk Forwarder와 Indexer 연동 (0) | 2025.04.02 |