-
[Docker] Docker Image를 직접 만들어 보기DevOps/Docker 2021. 3. 29. 14:38728x90반응형
Docker 이미지를 직접 만들기
- Docker 이미지는 컨테이너를 만들기 위해 필요한 설정이나 종속성들을 갖고 있는 소프트웨어 패키지
- Docker 이미지는 Dockerhub에 다른 사람들이 만들어놓은 이미지를 다운받아 사용할 수도 있고 직접 이미지를 만들어 사용할 수도 있습니다.
이미지의 읽기 영역 vs 쓰기 영역
여기서 빨간 테두리는
읽기 영역
, 초록색 테두리는쓰기 영역
을 할 수 있습니다.읽기 영역
: ubuntu, centOS 등등 (수정할 수 없음)쓰기 영역
: Git 설치, 모듈 설치 등등 (이미지에 추가할 수 있음)
docker run -it --name git ubuntu:latest bash
위와 같이
ubuntu:bash
이미지에는Git
이 설치되어 있지 않습니다.apt-get update apt-get install -y git
git
이라는 컨테이너를ubuntu:git
태그로 commit을 해보겠습니다.위와 같이
images
가 생긴 것을 볼 수 있습니다.위와 같이 새로 만든 이미지로 다시 접속을 했을 때는
git
이 설치되어 있는 것을 볼 수 있습니다.Dockerfile 이란?
Dockerfile 이란 Docker Image를 만들기 위한 설정 파일입니다. 컨테이너가 어떻게 행동해야 하는지에 대한 설정들을 정의하는 파일입니다.
Dockerfile
을 이용해서 이미지를 직접 만들어보겠습니다.Dockerfile 만드는 순서
베이스 이미지
를 명시하기(파일 스냅샷에 해당)- 추가적으로 필요한 파일을 다운 받기 위한 몇가지 명령어를 명시
- 컨테이너 시작시 실행 될 명령어를 명시
베이스 이미지란?
이미지는
layer
들로 구성되어 있습니다. 이미지에 하나씩 레이어들을 더 추가할 수 있습니다.간단하게 Dockerfile로 hello 이미지 만들기
# 베이스 이미지를 명시 FROM alpine # 추가적으로 필요한 파일들을 다운 받기 # RUN ~~ (이번 실습에서는 적지 않음) # 컨테이너 시작 시 실행 될 명령어 CMD ["echo", "hello"]
Dockerfile
을 만들어서 위와 같이 작성을 하겠습니다.docker build . (Dockerfile 실행하기) => Dockerfile이 있는 디렉토리에서 실행을 해야 함
실행과정 정리
베이스 이미지 alpine 이미지를 먼저 다운 받기
alpine 파일 스냅샷은 임시 컨테이너 하드디스크에 넣기
실행할 명령어를 컨테이너 안에 넣기
임시 컨테이너를 기반으로 새로운 이미지가 만들기(그리고 임시 컨테이너는 삭제)
그래서 직접 만든 이미지를 위와 같이 실행을 하면
hello
가 출력되는 것을 볼 수 있습니다.docker run -it ImageID
근데 위에서 보면 알 수 있지만 ImageID를 기억하기란 쉽지가 않습니다. 그래서 이번에는 Image에 직접 이름을 지어보겠습니다.
Docker Image에 이름 주기
docker build -t 도커아이디/이미지이름 디렉토리경로(dockerfile 존재하는) . (이름은 아무거나 주어도 되지만 보통 이미지를 만드는 규칙은 이렇습니다.) docker build -t wjdrbs96/hello:latest . docker run -it wjdrbs96/hello:latest (잘 실행되는 것을 알 수 있음)
위와 같이
docker run -it 이미지이름
으로도 잘 실행되는 것을 볼 수 있습니다.반응형'DevOps > Docker' 카테고리의 다른 글
[Docker] EC2에서 Docker 컨테이너를 활용하여 웹 서버 실행하기 (0) 2021.03.29 [Docker] Docker Image로 Container를 만드는 과정 (0) 2021.03.29 [Docker] Docker 간단한 명령어로 실습해보기 (0) 2021.03.29 [Docker] Docker와 기존 가상화 기술의 차이 알아보기 (0) 2021.03.29 [Docker] Docker란 무엇이고 왜 사용할까? (0) 2021.03.29