64일차 - Docker file
=======
도커 이미지 생성
- 컨테이너를 이용한 도커 이미지 생성
- 이전 과정 내용은 공식적으로 제공되는 이미지를 사용하여 진행
- 현재 존재하는 컨테이너를 기반으로 이미지 생성 가능
- 나만의 이미지를 만든 후
① 해당 이미지를 이용하여 대량의 컨테이너 구성 가능
② 다른 컴퓨터 혹은 서버로 이미지 이동 가능
- 공식 이미지를 받아서 만든 것들(nginx 등)은 일일히 복사를 해줘야하고 원하는 파일이 아니다.
- 자기 회사만의 웹서버를 구축해야 하는데 공식이미지를 다운받아 하려면 일일히 다 복사를 해주거나 해야하는데 편하게 하기 위해 공식 이미지를 자기 회사에 맞게 바꿔서 쓴다.
- 커스터마이징한 컨테이너로 이미지를 만드는것
이미지 생성 방법
① commit 명령으로 기존 컨테이너를 이미지로 변환(공식이미지에서 변환시키는것)
- 명령어로 쉽게 이미지를 생성할 수 있으나, 컨테이너 생성이 선행되어야 함
# docker commit [컨테이너 이름] [새로운 이미지 명]
- 기존 컨테이너를 복제하거나 이동할 때 편리
② Dockerfile 스크립트로 이미지 파일 생성
- Dockerfile : 도커 이미지를 생성할 목적의 파일
- Dockerfile 스크립트 작성 → 빌드 → 이미지 생성
# docker build -t [생성할 이미지 명:태그] [Dockerfile이 있는 경로]
컨테이너 생성 = docker compose
이미지 생성 = docker file
commit을 이용한 이미지 생성 실습
- 실습 시나리오
1. Apache 컨테이너 생성 및 실행
2. 컨테이너 → 이미지 변환
3. 최종 확인
실습
- Apache 컨테이너 생성 및 실행
# docker run --name apache04 -d -p 8093:80 httpd
- 컨테이너를 이미지로 변환
# docker commit apache04 apache_myimage04
- 확인
# docker image ls
→ apache_myimage04 이미지 확인 가능
- Dockerfile을 이용한 이미지 생성 실습
실습 시나리오
1. Dockerfile 생성
2. 이미지 빌드(사용할 이미지는 공식 이미지 –httpd 사용)
3. 생성 이미지 확인 및 3개 컨테이너 구동
4. 최종 확인
실습
- Dockerfile 생성
# mkdir /root/web
# cd /root/web
# vi Dockerfile
FROM httpd
LABEL author "psc“
LABEL version="0.1“
ADD index.html /usr/local/apache2/htdocs
ENV TZ="Asia/Seoul"
EXPOSE 80
→ 내용 저장
Dockerfile 항목
FROM : 베이스 이미지 지정
LABEL : 이미지에 메타데이터 추가(이미지에 대한 정보)
ADD : 추가할 파일 / 디렉토리 지정
ENV : 환경변수 설정
EXPOSE : 공개할 포트 지정
# vi index.html
<html>
<body bgcolor=yellow>
Welcome To Test.com
</body>
</html>
→ 내용 저장
- 이미지 빌드
# docker build -t psc_web1:0.1 /root/web
- 이미지 확인 및 3개 컨테이너 구동
# docker image ls
# docker run -itd --name pscweb1 -p 8001:80 psc_web1:0.1
# docker run -itd --name pscweb2 -p 8002:80 psc_web1:0.1
# docker run -itd --name pscweb3 -p 8003:80 psc_web1:0.1
# docker ps -a