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

+ Recent posts