docker란?
-
컨테이너 기반의 오픈소스 가상화 플랫폼
-
도커는 환경 분리를 도와준다.
-
작업물을 서버에 올렸는데 작동하지 않는다.
-
-
나의 작업 환경은 윈도우고, 서버는 리눅스
-
-
docker를 통해 다른 머신에서도 같은 환경을 조성해준다.
docker image
-
컨테이너 실행에 필요한 파일과 설정값등을 포함하고 있는 것으로 상태값을 가지지 않고, 변하지 않는다.
-
컨테이너는 이미지를 실행한 상태라고 볼 수 있고 한 이미지로 여러개의 컨테이너를 생성할 수 있다.
-
이미지는 컨테이너를 실행하기 위한 모든 정보를 가지고 있기 때문에 더 이상 의존성 파일을 컴파일 하고 이것저것 설치할 필요가 없다.
-
docker 이미지는 docker hub에 등록하거나, docker registry 저장소를 직접 만들어 관리할 수 있다.
dockerfile
-
이미지를 만들기 위해 dockerfile이라는 파일에 DSL(Domain-specific-language 언어를 이용하여 이미지 생성과정을 적는다.)
-
docker에서 사용하고 싶은 환경을 설정한다.
-
우분투, 파이썬, 깃 등등
-
이 파일을 통해 로컬에서와 서버에서 같은 환경을 조성해준다.
docker 특징
-
docker는 서로 독립적이라서 하나의 서버가 많은 수의 컨테이너를 가질 수 있다.
-
docker 덕분에 매번 새로운 서비스를 만들 때마다 새로운 서버를 사고 설정할 필요가 없다.
-
그냥 docker container를 더 늘리면 된다.
-
원하는 개발 환경을 파일에 저장하면 docker는 내가 원하는 해당 환경을 시뮬레이션 해준다.
-
각각의 환경들은 독립적으로 존재하기 때문에 무슨 환경이든 모듈식으로 관리 가능하다.
-
-
python server, java server, db server 등 모두 따로 구매해줄 필요 없다.
-
볼륨(데이터)을 공유 하지 않으면 서로 같이 쓸 수가 없다.
-
docker volume
-
docker를 사용하다보면 container안에서의 데이터 휘발성 때문에
-
volume을 사용하게 된다.
-
하나의 서버안에서도 여러개의 docker가 돌 수 있고,
-
특정 docker안에서 만들어진 파일은, 공유할 수 없다.
-
이런 불편함을 막기 위해 서버 안에 디스크를 mount 해놓고 사용하면 된다.
-
docker 컨테이너는 언제든지 추가되고 삭제 될 수 있기 떄문에 데이터는 반드시 컨테이너 내부가 아닌 외부 스토리지에 저장해야 한다.
참고 : [초보를 위한 도커 안내서 - 이미지 만들고 배포하기](https://subicura.com/2017/02/10/docker-guide-for-beginners-create-image-and-deploy.html)
'서버' 카테고리의 다른 글
nslookup 이란 (0) | 2020.08.31 |
---|---|
초보자를 위한 REST API (0) | 2020.06.21 |
NAS란(나스란) (0) | 2020.06.01 |
MOUNT란 (0) | 2020.06.01 |
디자인패턴 (0) | 2020.03.16 |