반응형
아래는 docker공식 홈페이지 소개의 일부이다.
###Docker는 애플리케이션을 개발, 배포 및 실행하기 위한 개방형 플랫폼입니다.
- Docker를 사용하면 애플리케이션을 인프라에서 분리하여 소프트웨어를 신속하게 제공할 수 있습니다.
- Docker를 사용하면 애플리케이션을 관리하는 것과 동일한 방식으로 인프라를 관리할 수 있습니다.
- 코드 배포, 테스트, 배포를 위한 Docker의 방법론을 활용하면 코드 작성과 프로덕션 환경에서의 실행 사이의 지연을 크게 줄일 수 있습니다.
...
- Docker는 컨테이너라고 하는 느슨하게 격리된 환경에서 애플리케이션을 패키징하고 실행할 수 있는 기능을 제공합니다.
- 격리 및 보안을 통해 주어진 호스트에서 여러 컨테이너를 동시에 실행할 수 있습니다.
- 컨테이너는 가볍고 애플리케이션을 실행하는 데 필요한 모든 것을 포함하므로 호스트에 설치된 것에 의존할 필요가 없습니다.
- 작업하는 동안 컨테이너를 공유할 수 있으며, 공유하는 모든 사람이 동일한 방식으로 작동하는 동일한 컨테이너를 받도록 할 수 있습니다.
docker의 가장 핵심은 컨테이너 라는 환경에서 애플리케이션을 구동할수 있다는 것이다. 이 컨테이너를 이용하면 인프라와 애플리케이션의 실행환경을 분리시켜서 애플리케이션의 관리가 쉬워지게 되는 결과를 가져오게 된다.
이게 특히 협업할때 좋은데, 여러사람이 코드를 실행하는 환경이 모두 다를수가 있다.(실행환경의 버전이나 라이브러리들의 버전등등) 같은 코드를 컴퓨터에 실행시켰는데, 어떤사람은 실행되고, 또 어떤 사람은 실행 안되고 할수가 있다.
docker를 사용하게 되면 이런 부분들이 컨테이너라는 단일 환경에서 실행되게 되어 docker가 설치된 컴퓨터라면 어디든 동일하게 실행이 가능하다는 것이다.
그래서 보통 애플리케이션을 hosting하는 컴퓨터(클라우드or온프레미스)에 docker를 설치해서 배포하는것이 보통이다.
docker가 어떤 방식으로 실행되는지 그림으로 보면
client에서 docker 명령어를 실행 -> docker deamon이 실행되면서 이미지(컨테이너를 만들기 위한 일종의 blue print)를 이용해서 컨테이너를 생성하여 애플리케이션을 구동한다.
- image(애플리케이션을 만들기 위한 blue print) -> container(실제 instance)
- 프로그래밍으로 생각해보면, 프로그램 코드(blue print) -> 컴파일(instance) 정도가 될거 같다.
나는 리눅스공부할때 보통 사용하는데, 굉장히 쉽게 설정이 가능하다.
개인 컴퓨터에서 도커를 이용하여 리눅스 컨테이너를 실행하는 법을 포스팅해야겠다.
반응형