본문 바로가기

DevOps/Docker

[Docker 실습] FROM: 베이스 이미지 생성

FROM: 베이스 이미지 생성


1. 연습용 폴더를 생성한 후에 폴더에 파일을 만들어 보자.

mkdir docker-practice

나는 vscode로 파일을 생성했다. 이 때 파일명은 Dockerfile로 한다.

 

2. 파일을 작성해보자. 

=> 나는 어떤 컨테이너가 띄워졌을 때 컨테이너 환경에 jdk17이 깔려있었으면 좋겠어

 

3. 이미지를 만들어보자.

  vscode 터미널에 아래 명령어를 입력해보자. 이 때 마지막에 상대경로를 입력해야한다. 

docker build -t my-jdk17-server .

 

4. 빌드가 잘 됐는지 확인

이미지가 생성되었다.

 

5. 태그명을 입력할 수도 있다.

docker build -t my-jdk17-server:beta

태그명을 beta로 입력했다. 정상적으로 이미지가 생성된 것을 확인할 수 있다. 

 

6. 이미지를 띄워보자.

docker run -d my-jdk17-server

=> 이미지에서 컨테이너가 실행될 때 컨테이너가 내부적으로 해야될 작업들이 종료되면 컨테이너는 자동적으로 종료된다. 

 

7. 컨테이너 안에 진짜 jdk가 깔려있는지 확인하고 싶어

  exec -it로는 확인이 불가능 하다. 컨테이너가 실행중이지 않기 떄문

  파일에 아래 내용 추가 후 다시 빌드해보자. 

ENTRYPOINT ["/bin/bash","-c", "sleep 500"]

 

docker build -t my-jdk17-server .

docker run -d my-jdk17-server

 

8. 컨테이너가 실행 중이니 들어가보자.

docker exec -it b2a bash

java --version으로 확인한 결과 jdk17이 정상적으로 깔려있다

 

9. 이번엔 node를 깔아보자.

 

FROM node

ENTRYPOINT ["/bin/bash", "-c", "sleep 500"]

 

docker build -t my-node-server .

docker run -d my-node-server