이미지는 컨테이너 생성
그럼 이미지는?
Dockerfile 작성 -> 도커 클라이언트 -> 도커서버 -> 이미지 생성
Dockerfile :
Docker Image 만들기 위한 설정 파일
컨테이너가 어떻게 행동해야 하는지에 대한 설정들 정의
도커 클라이언트 :
도커 파일에 입력된 것들이 도커 클라이언트에 전달되어야 한다.
도커 서버 :
도커 클라이언트에 전달된 모든 중요한 작업들을 하는 곳
Dockerfile :
Docker Image 만들기 위한 설정 파일
컨테이너가 어떻게 행동해야 하는지에 대한 설정들 정의
베이스 이미지란?
도커 이미지 여러개의 레이어 되어 있는데
그 중 베이스 이미지는 이 이미지의 기반이 되는 부분
OS 같은 역활
레이어는 중간 단계의 이미지
"hello" 문구 출력
# 베이스 이미지 명시
FROM baseImage
# 추가적으로 필요한 파일 다운로드
RUN command
# 컨테이너 시작시 실행 될 명령어 명시
CMD [ "executable" ]
FROM, RUN, CMD 도커 서버 명령어
FROM
이미지 생성시 기반이 되는 이미지 레이어
<이미지 이름><태그> 형식으로 작성
태그 안붙이면 자동적으로 가장 최신것으로 다운 받음
ex) ubuntu:14.04
RUN
도커이미지 생성되기 전 수행할 쉘 명령어
CMD
컨테이너가 시작되었을 때 실행할 실행 파일 또는 셸 스크립트
해당 명령어는 DockerFile내 1회만 사용
완성된 도커 파일로 이미지 생성하기
도커 파일에 입력된 것들이 도커 클라이언트에 전달되어 도커 서버가 인식하게 해야 한다.
docker build ./ 또는 docker build .
Build 명령어
해당 디렉토리 내에 dockerfile 파일 찾아 도커 클라이언트에 전달
docker build 뒤 ./ 와 . 은 둘다 현재 디렉토리를 가르킨다.
결론
베이스 이미지에서 다른 종속성이나 새로운 커멘드 추가 할때는
임시 컨테이너를 만든 후 그 컨테이너를 토대로 새로운 이미지 만든다
그리고 임시 컨테이너는 지워준다.
docker build -t talgun/hello:latest
-t 도커아이디 / 저장소/프로젝트 이름 : 버전
-> 규칙같은거다.