🎯 JDK 17 베이스 이미지로 컨테이너 띄우기
1️⃣ Dockerfile 만들기
FROM 은 어떤 환경에서 컨테이너를 시작할지를 지정해주는 명령어이다.
JDK 17이 설치된 환경을 사용하고 싶다면, openjdk:17-jdk 이미지를 베이스로 쓰면 된다.
Dockerfile:
FROM openjdk:17-jdk
2️⃣ Dockerfile을 기반으로 이미지 만들기
Dockerfile 을 작성했으면 이제 그걸 기반으로 Docker 이미지를 만들 수 있다.
이미지를 만들 때는 docker build 명령어을 사용한다.
docker build -t my-jdk17-server .
-t 는 태그를 지정하는 옵션이다. 태그를 안 붙이면 기본값은 latest 이다.
3️⃣ 이미지를 기반으로 컨테이너 띄우기
docker run -d my-jdk17-server
-d 는 백그라운드 모드로 실행하겠다는 뜻이다.
근데 실행하고 나면 컨테이너가 곧바로 꺼져 있을 수 있다.
그건 아무 명령도 실행하지 않기 때문이다.
4️⃣ 컨테이너 확인해보기
docker ps # 실행 중인 컨테이너 확인
docker ps -a # 종료된 것도 포함해서 모두 확인
컨테이너는 내부 명령이 없으면 바로 종료된다.
그래서 디버깅을 하려면 컨테이너가 꺼지지 않게 만들어야 한다.
5️⃣ 컨테이너 내부로 들어가서 JDK 확인하기
컨테이너가 종료되지 않도록 하기 위해 ENTRYPOINT 로 sleep 명령을 넣는다.
Dockerfile:
FROM openjdk:17-jdk
ENTRYPOINT ["/bin/bash", "-c", "sleep 500"]
이제 다시 빌드하고 실행한다.
docker build -t my-jdk17-server .
docker run -d my-jdk17-server
docker exit -it [컨테이너 ID] bash
컨테이너에 들어간 후 JDK가 설치돼 있는지 확인한다.
java -version
🎯 Node 베이스 이미지로 컨테이너 띄우기
1️⃣ Dockerfile 만들기
Node 가 설치된 컨테이너를 만들고 싶다면, node 이미지를 베이스로 사용하면 된다.
마찬가지로 컨테이너가 꺼지지 않도록 sleep 명령을 같이 넣는다
FROM node
ENTRYPOINT ["/bin/bash", "-c", "sleep 500"]
2️⃣ 이미지 만들고 컨테이너 띄우기
docker build -t my-node-server .
docker run -d my-node-server
docker exec -it [컨테이너 ID] bash
3️⃣ Node가 설치돼 있는지 확인
node -v
📌 이런 식으로 FROM 을 이용하면, 원하는 환경을 갖춘 나만의 컨테이너를 쉽게 만들 수 있다.
JDK든 Node든 Python이든, 필요한 베이스 이미지를 고르기만 하면 된다.
'코딩 > Docker' 카테고리의 다른 글
🐳 [실습] COPY : 파일 복사하기 (0) | 2025.05.13 |
---|---|
🐳 종료된 컨테이너에 들어가서 디버깅하고 싶을 때 (0) | 2025.05.13 |
🐳 FROM: 베이스 이미지 설정하기 (0) | 2025.05.13 |
🐳 Dockerfile이란? (0) | 2025.05.13 |
🐳 Docker로 MongoDB 실행시켜보기 (0) | 2025.05.12 |
댓글