-
5. 이미지 만들고 배포하기Learn/Docker 2021. 4. 29. 00:39
도커 이미지는 읽기 가능 영역과 쓰기 가능 영역으로 나뉜다.
가령 우분투나 mysql이미지 자체는 바꿀 수 없지만 거기에 뭔가 수정을 한 것은 이미지로 저장할 수 있다.
[ docker commit ]
가령 이미지에 git을 추가하고싶으면, 우분투 이미지를 run해서 컨테이너의 bash를 띄우고
apt로 git을 설치하면 된다.
이렇게 기존의 우분투 이미지에 git을 추가로 설치한 이미지를 만들고 싶다면?
아래와 같이 tag를 바꿔서 commit할 수 있다.
docker commit git ubuntu:git
{유저이름}/{이미지이름}:{태그} 와 같은 형태의 이미지는 유저가 만든 이미지이고,
앞에 {유저이름}이 없는게 공식 이미지라고 보면 된다.
[ docker build ]
위에서 사용한 docker commit은 일단 이미지를 띄우고, 직접 셋팅을 하고 올리는 방식이다.
이런 일련의 과정들을 파일에 적어서 자동화하려면 docker build를 사용하면 된다.
docker build를 사용하기 위해선 Dockerfile을 만들어서 실행할 내용을 적으면 된다.
가령 git을 설치하겠다면 아래와 같이 작성하면 된다.
FROM ubuntu:latest RUN apt-get update RUN apt-get install -y git
그리고 나서 build 명령어를 아래와 같이 날려주면 된다.
docker build -t {user}/{image}:{tag} {build context}
-t 옵션은 명령어로 이미지 이름을 정하기 위한 옵션이다.
마지막의 build context는 build에 필요한 파일, 코드, 스크립트 등을 가지고 있는 경로를 의미한다.
Dockerfile을 작성하는건 원샷으로 끝내기 쉽지 않고 여러번의 TDD같은 과정이 필요하다.
그렇지만 한번 작성하면 다음에 쓰기 용이하고, 셋팅 이력을 확인할 수 있어서 좋다.
나의 경우도 서버를 셋팅하고 2년후에 새로운 서버로 이관하면서 고생했던 기억이 있다.
Dockerfile을 관리하면 셋팅도 쉽고 이력도 확인할 수 있고 너무 좋은듯~
'Learn > Docker' 카테고리의 다른 글
4. Compose (0) 2021.04.26 3. 기초명령어 2편 (0) 2021.04.26 2. 설치, 기초명령어 1편 (0) 2021.04.25 1. 개요 - 도커와 쿠버네티스 (0) 2021.04.20