도커 실습 3 - 커스텀 이미지 생성 > 클라우드네이티브

본문 바로가기

[실습] 도커 실습 3 - 커스텀 이미지 생성

필기자
2025-10-08 11:03 154 0

본문

목차
  • 커스텀 이미지 생성

커스텀 이미지 생성

커스텀 이미지 생성 시나리오
  • 빈 컨테이너 생성 후 아파치 웹 서버와 자바를 설치
  • 아파치 초기화면을 변경하고 자바 파일을 생성 및 컴파일한 뒤, 이를 기반으로 이미지 생성

리눅스 우분투 기본 베이스 이미지로 빈 컨테이너 생성


#Ubuntu 컨테이너를 백그라운드에서 실행하고 컨테이너 내부와 상호작용 가능
docker run -dit --name my_ubuntu_container ubuntu:latest

3232235521_1qToapyc_02fc5d5b8f080fb11aa0726f3e10a342ea9f1cfd.png

컨테이너 내부 접속


#컨테이너 내부 접속하여 bash 쉘을 실행하여 상호작용 가능
docker exec -it my_ubuntu_container bash


아파치 웹 서버 설치


#소프트웨어 패키지 정보 최신 상태로 업데이트
apt-get update

3232235521_KwuvZYWj_8cb6120a631a6088472595fc363de0770474f5ab.png


#아파치 웹 서버 설치
apt-get install apache2
  • Do you want to continue? [Y/n] 메시지가 출력 되면 ‘y’ 입력 후 Enter
3232235521_TEozmnuU_df926a82bb951f556ee3206d5de60de7d5bbcce0.png

아파치 웹 서버 시작


#아파치 웹 서버 시작
service apache2 start

3232235521_h07j1bHd_7dad278f1644b10d5b81103400c97af46b6b00cf.png


#도커 명령어 실행을 위해 컨테이너 내부에서 나가기
exit


컨테이너 IP 확인


#컨테이너의 상세 정보 출력
docker inspect my_ubuntu_container

3232235521_nFzDBIhp_9d654b08cd64d455dcb5dda1ab89dc056fe5dbe1.png

아파치 초기 화면 확인
3232235521_PWLwDqrf_c9686fa2b3202abbc59366800a9f832054d114a7.png

컨테이너 내부 접속


#컨테이너 내부 접속하여 bash 쉘을 실행하여 상호작용 가능
docker exec -it my_ubuntu_container bash



#vi 텍스트 편집기 설치
apt-get install vim-tiny
  • Do you want to continue? [Y/n] 메시지가 출력 되면 ‘y’ 입력 후 Enter
3232235521_oajDA34M_9f150be097adaf7e70fe76999c2d65b408bbf744.png

초기 화면 html 파일 수정


#vi 텍스트 편집기로 아파치 초기화면 파일 내용 수정
vi /var/www/html/index.html
  • 수정 후 esc 입력 및 ‘:wq!’ 입력 후 Enter 변경 사항 저장
3232235521_YdymJSIB_b95cd7eba8a39fe9996d30ffe1045eebe869003a.png

업데이트된 아파치 초기 화면 확인
3232235521_b0dwHOlU_52a2cee827aef4481db3a91e47382a0ab536de19.png

자바 설치 및 자바 파일 생성


#자바 설치
apt-get install openjdk-11-jdk –y



#vi 텍스트 편집기로 자바 파일 생성
vi HelloWorld.java
  • 입력 후 esc 입력 및 ‘:wq!’ 입력 후 Enter 변경 사항 저장

#Hello, World를 출력하는 자바 파일 생성
public class HelloWorld {
    public static void main(String[] args) {
        System.out.println("Hello, World!");
    }
}


자바 파일 컴파일 및 실행


#자바 파일 컴파일
javac HelloWorld.java



#자바 파일 실행
java HelloWorld

3232235521_Sp0hXNqH_c9342185e1fc6c75718e7630fe885333aab0d43e.png


#컨테이너 내부에서 나가기
exit


컨테이너 커밋으로 새 이미지 생성

#my_ubuntu_container를 기반으로 my_image:v1 이미지를 생성하여 새로운 이미지 생성
docker commit my_ubuntu_container my_image:v1

3232235521_e5NpRbkt_355ed42c3e12a1a1c5356d2923e6ea19dbaffa56.png

새 이미지로 컨테이너 생성 및 컨테이너 IP 확인


#컨테이너를 백그라운드 모드로 실행하고, 컨테이너 내에서 아파치 웹 서버를 포그라운드 모드로 시작
#포그라운드 모드로 실행하여 웹 서버를 계속 실행하도록 하는 명령어, 컨테이너가 종료되지 않고 웹 서버가 계속 실행
docker run -dit --name my_image_container my_image:v1 apache2ctl -D FOREGROUND


3232235521_eJ0jTMOG_6d03a6db8a4c1b2435f882c6295dd2529fa0739f.png


#컨테이너의 상세 정보 출력
docker inspect my_image_container

3232235521_GbmuU1PS_696ef3e5283b9c28384c8e84fa11d79f5e06b0ad.png

업데이트된 초기화면이 기본값이 된 아파치 초기 화면 확인
3232235521_voi9qjXB_84f6f07b71b323d0b769cca455c58427940cdda5.png

자바 설치 여부 확인 및 자바 파일 실행 확인


#컨테이너 내부 접속하여 bash 쉘을 실행하여 상호작용 가능
docker exec -it my_image_container bash



#자바 파일 실행
java HelloWorld

3232235521_ckSX5vwd_06fc946c4416de4341a3469048ead4cf22fb5161.png


#컨테이너 내부에서 나가기
exit

 

댓글목록0

등록된 댓글이 없습니다.
게시판 전체검색