본문 바로가기

Docker

[Docker] Dockerfile 생성과 컨테이너 실행하기

🐳 Dockerfile이란?

docker 이미지는 Dockerhub을 통해 다운받아 사용할 수 있다.

그럼 이미지는 어떻게 만드느냐?

Dockerfile을 통해 내가 원하는 환경을 가진 나만의 이미지를 만들 수 있다! 

Dockerfile 생성

✅ From 이란?

From은 베이스 이미지를 생성 
즉 컴퓨터 환경을 구축할 때 기본 프로그램이 어떤 걸 할지 선택하는 옵션! 

# Dockerfile 에 설치할 jdk 작성
FROM openjdk:17-jdk

 

✅ Dockerfile 빌드 및 이미지 생성

 

빌드 명령어

docker build -t my-jdk17-server .

-t: 이미지에 이름(my-jdk17-server)을 붙이는 옵션

.: 현재 디렉터리의 Dockerfile을 기준으로 빌드

 

이미지 확인

docker image ls

my-jdk17-server라는 이름의 이미지가 생성된 걸 확인할 수 있다.

 

✅ container 실행시켜 보기

컨테이너 실행

docker run -d my-jdk17-server

 

실행 중 컨테이너 확인

docker ps

 

정상적으로 실행됐고 로그를 확인해 봤을 때도 에러메시지에는 에러가 없었는데 왜 실행은 안되었을까?

현재 Dockerfile은 내부에서 아무 작업도 하지 않기 때문에
컨테이너가 “할 일 없음 → 바로 종료” 가 된다!

 

✅  Dockerfile 수정해서 실행

Dockerfile 수정

# 도커 파일 수정
FROM openjdk:17-jdk

ENTRYPOINT [ "/bin/bash", "-c", "sleep 500" ]
# 컨테이너가 켜진 상태에서 sleep 500으로 500초간 유지되도록 설정!

 

다시 빌드 및 실행

# 빌드
docker build -t my-jdk17-server .

# 실행
docker run -d my-jdk17-server

# 내부 접속
docker exec -it 33 bash

#java 설치 확인
java --version