도커 실습 3 - 커스텀 이미지 생성 > 도커 & 쿠버네티스

본문 바로가기

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

필기자
2023-09-13 13:51 1,687 0

본문

목차
  • 커스텀 이미지 생성

커스텀 이미지 생성

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

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


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

20230913115719_c30628f738be4b8bf7f10416103b3dba_hiiu.png

컨테이너 내부 접속


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


아파치 웹 서버 설치


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

20230913120114_c30628f738be4b8bf7f10416103b3dba_uuwt.png


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

아파치 웹 서버 시작


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

20230913121517_c30628f738be4b8bf7f10416103b3dba_luq6.png


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


컨테이너 IP 확인


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

20230913121644_c30628f738be4b8bf7f10416103b3dba_2afk.png

아파치 초기 화면 확인 20230913121752_c30628f738be4b8bf7f10416103b3dba_n56u.png

컨테이너 내부 접속


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



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

초기 화면 html 파일 수정


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

업데이트된 아파치 초기 화면 확인 20230913122415_c30628f738be4b8bf7f10416103b3dba_0l4v.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

20230913130855_c30628f738be4b8bf7f10416103b3dba_817q.png


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


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

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

20230913132252_c30628f738be4b8bf7f10416103b3dba_34ee.png

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


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


20230913132729_c30628f738be4b8bf7f10416103b3dba_8ksv.png


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

20230913132815_c30628f738be4b8bf7f10416103b3dba_tjg3.png

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

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


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



#자바 파일 실행
java HelloWorld

20230913134935_c30628f738be4b8bf7f10416103b3dba_jjka.png


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

 

댓글목록0

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