[Docker] 도커 이미지 생성
도커 이미지란
도커 컨테이너를 만들기 위해 필요한 설정이나 종속성들을 가지는 소프트웨어 패키지이다.
참고한 한 블로그에서는 이미지를 붕어빵 도면, 컨테이너는 이 붕어빵 도면을 통해 만든 붕어빵 틀로 비유한다.
그러면 이 붕어빵 틀로 만든 붕어빵들은 어떤 환경이든, 우리나라에서 만들어지든, 미국에서 만들어지든,.. 같은 규격으로 동일하게 만들어질 것이다.
이러한 도커 이미지는 [Docker] 도커의 기본 이해에서 <도커 사용의 흐름> 에서 적었듯이 이미 다른 사람이 만들어 놓은 이미지를 도커 허브에서 pull받아서 이용할 수도 있고, 직접 도커 이미지를 만들 수도 있고, 이 직접 만든 이미지를 도커 허브에 업로드 할 수도 있다.
나만의 도커 이미지를 어떻게 생성할 수 있을까?
1. 우선 도커 이미지를 만들기 위한 설정 파일인 Dockerfile을 작성한다. 여기서 컨테이너가 어떻게 행동해야하는지 설정들을 정의해 줄 수 있다.
2. 그 다음 Dockerfile에 입력된 것들이 도커 클라이언트에 전달된다.
3. 도커 클라이언트에 전달된 내용이 도커 서버에 전달되어서 이미지가 생성된다.
1. Dockerfile 작성
' 1.우선 도커 이미지를 만들기 위한 설정 파일인 Dockerfile을 작성한다. 여기서 컨테이너가 어떻게 행동해야하는지 설정들을 정의해 줄 수 있다.' 에 해당한다.
그렇다면 만들고 싶은 이미지에 무엇이 필요한지를 보고 그것들을 정의해주면 된다.
1) 베이스 이미지를 명시 (파일 스냅샷에 해당)
#Dockerfile
FROM [baseImage]
도커 이미지는 layer별로 구성이 되어있고, 도커 이미지는 베이스 이미지 layer를 기반으로 필요한 어플리케이션 및 라이브러리 layer등을 포함시킨 것을 의미한다.
2) 추가적으로 필요한 파일을 다운받기 위한 몇가지 명령어를 명시 (파일 스냅샷에 해당)
#Dockerfile
RUN [command]
3) 컨테이너 시작시 실행될 명령어를 명시해줌 [시작 명령어에 해당]
#Dockerfile
CMD [["executable"]]
2. Dockerfile로 도커 이미지 생성
' 2. 그 다음 Dockerfile에 입력된 것들이 도커 클라이언트에 전달된다.
3. 도커 클라이언트에 전달된 내용이 도커 서버에 전달되어서 이미지가 생성된다. '
단계에 해당한다.
이미지를 생성해주기 위해서는 Dockerfile이 도커 클라이언트로 전달되어 도커 서버로 요청되어야하는데, 그러기 위해서는 build를 해주어야 하고, 이는 해당 디렉토리(./(또는 .)는 현재 디렉토리를 말함) 내에서 dockerfile이라는 파일을 찾아서 도커 클라이언트에 전달해준다.
$ docker build ./
또는
$ docker build .
reference
[Docker] 도커 이미지란, 이미지와 컨테이너 간의 관계
도커이미지 직접 만들기