도커(Docker)

유연희·2022년 6월 30일
0

도커(Docker)란?

도커(Docker)는 리눅스 컨테이너(Linux Container) 기술을 기반으로 하는 오픈 소스 서비스이다.
도커(Docker)를 통해 애플리케이션 실행 환경을 코드로 작성할 수 있다.
도커(Docker)를 통해 OS를 공유, 격리화하여 관리할 수 있다.



Docker는 코드를 실행하는 표준 방식을 제공한다. Docker는 컨테이너를 위한 운영 체제이다. 가상 머신이 서버 하드웨어를 가상화하는 방식과 비슷하게(직접 관리해야 하는 필요성 제거) 컨테이너는 서버 운영 체제를 가상화한다. 그리그 Docker는 각 서버에 설치되며 컨테이너를 구축, 시작 또는 중단하는 데 사용할 수 있는 간단한 명령을 제공한다.


컨테이너는 격리된 공간에서 프로세스가 동작하는 기술이다. 가상화 기술의 하나지만 기존방식과는 차이가 있다.기존의 가상화 방식은 주로 OS를 가상화하였다.

이 방식은 호스트 OS위에 게스트 OS 전체를 가상화하여 사용하는 방식이다. 이 방식은 여러가지 OS를 가상화(리눅스에서 윈도우를 돌린다던가) 할 수 있고 비교적 사용법이 간단하지만 무겁고 느려서 운영환경에선 사용할 수 없었다. 간단하게 이야기해서 각각의 가상머신이 OS를 자체적으로 가지고 있기 때문에 OS를 가상머신 이미지에 포함해야 하고, 배포이미지의 용량이 커지게 된다는 단점이 있다.



하지만 Docker의 container 기술을 사용하면 OS레벨은 공유하며고 어플리케이션 레벨에서는 각각의 어플리케이션을 격리해서 실행 할 수 있다. 그래서 하나의 서버에 여러개의 컨테이너를 실행하면 서로 영향을 미치지 않고 독립적으로 실행할수 있다. 그리고 실행중인 컨테이너에 접속하여 여러개의 프로세스를 백그라운드로 실행할 수도 있다. CPU나 메모리 사용량을 제한할 수 있고 호스트의 특정 포트와 연결하거나 호스트의 특정 디렉토리를 내부 디렉토리인 것처럼 사용할 수도 있다.



컨테이너 기술로 도커는 어떤 문제를 해결할 수 있나?

환경 표준화를 통한 생산성 증가
환경 구성 코드로 제공을 통한 생산성 증가
리소스 격리성을 통한 응용 프로그램 + 실행 환경 분리



참고 | https://velog.io/@plate0113/Docker%EB%9E%80-%EB%AC%B4%EC%97%87%EC%9D%B8%EA%B0%80
https://hanamon.kr/%EB%8F%84%EC%BB%A4%EB%9E%80-docker-%ED%95%84%EC%9A%94%EC%84%B1/

profile
developer

0개의 댓글