IT지식/도커(Docker) 사용법

11. Dockerfile의 정의와 image 생성

맨땅에헤딩개발자 2025. 2. 11. 22:40

 Dockerfile이란?

 

Docker이미지는 Docker hub를 통해 다운받아서 사용할 수 있습니다.

이 Docker이미지들은 누군가에 의해 생성되어 Docker hub에 올려놓은 것입니다.

이 이미지를 생성하기 위해선 Dockerfile을 이용해 생성할 수 있습니다.

따라서 Dockerfile은 이미지 생성을 위한 파일입니다.

 

 

BaseImage생성 방법

 

* BaseImage : 컨테이너를 새로 띄워서 환경을 구축할 때 기본적으로 프로그램이 어떤게 깔려있으면 좋을지 선택하는 옵션같은 것을 정의해놓은 파일

 

 

우선 shell을 실행 후

mkdir docker-image 입력 후 

cd docker-image를 통해 해당 폴더 내로 들어가줍니다.

 

eclipse나 intellij같은 편집툴을 여셔서 만들어준 폴더를 열어줍니다.

 

불러온 폴더 내에 Dockerfile이라는 파일을 생성해줍니다.

파일 내에 From openjdk:17-jdk를 입력하고 저장해줍니다.

 

shell로 돌아가셔서

ls로 Dockerfile이 제대로 생성됐는지 확인 후

# docker build -t [이미지명]:[태그명] [Dockerfile이 존재하는 디렉터리 경로]

docker build -t my-first-image . 을 입력해줍니다(여기서 .이란 현재 디렉토리를 의미합니다)

 

 

다운로드가 완료되면 docker image ls 를 입력하여 잘 생성되었는지 확인해봅시다.

 

생성된 이미지를 활용하여 컨테이너를 실행해봅시다.

docker run -d my-first-image 입력 후 docker ps 입력해보시면 밑의 그림과 같이 잘 실행된 것을 볼 수 있습니다.

 

만약 STATUS에 Exited(종료)라고 뜨는 분들이 있으면

왜 종료되었는지 로그를 확인하려고 컨테이너에 접속을 하려고 하는데

docker exec -it d666 bash

Error response from daemon : container d666..... is not running 이라는 오류를 만났을 겁니다.

 

말 그대로 컨테이너가 종료되어 접근할 수 없다는 것 입니다.

즉 종료된 컨테이너에 대한 로그를 볼 수 없다는 것인데 이것에 대한 블로그는 다음 글을 참고하세요.

https://steady-snb.tistory.com/76

 

도커(Docker) 종료된 컨테이너 강제로 로그 조회

ㄹㄹ

steady-snb.tistory.com

 

 

 

 

 

 

 

출처 - 인프런 비전공자도 이해할 수 있는 Docker 입문/실전 중..

https://www.inflearn.com/course/%EB%B9%84%EC%A0%84%EA%B3%B5%EC%9E%90-docker-%EC%9E%85%EB%AC%B8-%EC%8B%A4%EC%A0%84