[Docker] 도커 이미지를 생성해서 배포 (보안 고려)

2025. 4. 14. 11:39·Security

이번 글에서는 Nginx 도커 컨테이너를 기반으로 웹 서버를 실행하고, 수정한 index 페이지를 포함한 새로운 이미지를 생성해 Docker Hub에 배포하는 과정을 정리해 보았습니다.
보안 관점에서의 고려사항도 함께 포함하여 안전한 웹 서비스 운영에 초점을 맞췄습니다.


목표

 

  1. Nginx 컨테이너 이미지를 사용해 웹 서버 실행
  2. index.html 수정 (개발 단계)
  3. 수정된 컨테이너를 새로운 이미지로 커밋
  4. Docker Hub에 배포
  5. (보안) 주요 정보통신기반시설 리눅스 서버 진단 → 보안 패치, 모의해킹 → 안전한 컨테이너 환경 구축

 


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
'Security' 카테고리의 다른 글
  • [Docker] 도커 컨테이너 자원 제한(보안 관점에서의 최적화)
  • [Docker] 도커 컨테이너 전체 삭제 방법
  • [Splunk] Splunk DB Connect 추가 방법
  • [Splunk] Splunk 설치 및 Splunk Forwarder와 Indexer 연동
min8282
min8282
  • min8282
    min8282
    min8282
  • 전체
    오늘
    어제
    • 분류 전체보기 (110)
      • Security (33)
        • System & Network (2)
        • Application (5)
        • Cloud (20)
      • Dev (18)
        • Node.js (12)
        • Hadoop (3)
        • BOJ (2)
      • Web3 & Blockchain (2)
        • Web3 (2)
      • K-Shield.Jr (15)
      • Web Security Academy (3)
      • Wargame (13)
        • Dreamhack (3)
        • Bandit (10)
      • NS (16)
        • CTF (6)
  • 블로그 메뉴

    • 홈
  • 링크

    • github
  • 공지사항

  • 인기 글

  • 태그

    스마트 컨트랙트
    정보처리기사
    티스토리챌린지
    amazon s3 트리거
    오블완
    정처기 필기
    보안 그룹
    aws lambda
    ESC1
    정처기필기
    Path Traversal
    정처기
    web3
    AWS CLI
    prepared statement
    aws 트리거
    metacode
    web security academy
    splunk db connect
    메타코드M
    File Upload
    ELB
    systems manager
    web3 보안
    탈중앙화
    메타코드
    스마트컨트랙트
    AWS SSM
    Session Manager
    metacodem
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.4
min8282
[Docker] 도커 이미지를 생성해서 배포 (보안 고려)
상단으로

티스토리툴바