형상관리/Docker

[Docker] 개념

usingsystem 2025. 4. 23. 21:07
728x90

[Doker란]

컨테이너라는 개념을 사용하여 각각의 프로그램을 분리된 환경에서 실행 및 관리할 수 있는 툴이다.

 

[Doker를 사용하는 이유]

Docker를 사용하는 이유는 이식성 때문이다. 이식성이란 특정 프로그램을 다른 곳으로 쉽게 옮겨서 설치 및 실행할 수 있는 특성이다. ( 프로그램을 그대로 보존하 이사시키는 느낌 )

 

예를 들어 서로 다른 2대의 컴퓨터에 DB를 설치하기 위해 먼저 한대의 컴퓨터에 DB를 깔았고 에러 없이 잘 동작하였다. 이후 2번째 컴퓨터에 똑같은 방법으로 DB를 설치하였지만 에러가 나며 작동하지 않았다. 이런 이유는 버전에 따른 문제일 수 있고 운영체제종류의 문제일 수 있고 보안프로그램의 문제등 다양하다. 그리고 새로운 컴퓨터가 생겨 똑같이 DB를 설치한다고 가정했을 때 설치 과정이 복잡하다면 번거롭고 귀찮은 일이 될 수 있다. 이런 문제를 Docker는 이식성으로 해결할 수 있다.

 

  • 설치 과정을 일일이 거치지 않아도 됨.
  • 항상 일관되게 프로그램을 설치 가능( 버전, 환경 설정, 옵션, 운영체제 등)
  • 각 프로그램이 독립적인 환경에서 실행되기 때문에 프로그램 간 서로 충돌이 일어나지 않는다.

[컨테이너]

하나의 컴퓨터 환경(window, linux 등)에  독립적인 작은 컴퓨터 환경을 구성하여 각각의 작은 컴퓨터 환경에 프로그램을 독립적으로 설치할 수 있게 만드는 개념이다. 즉 이런 작은 미니 컴퓨터를 컨테이너라고 부른다.

 

컨테이너의 독립성

  • 저장공간(디스크) - 각 컨테이너마다 서로 다른 저장 공간을 갖는다. A컨테이너 내부에서 B컨테이너 내부에 있는 파일에 접근할 수 없다.
  • 네트워크 (IP, PORT) - 각 컨테이너마다 고유의 네트워크를 갖는다. 컨테이너 각자의 IP주소를 갖는다.

 

예를 들어 윈도우 환경에서는 사용자마다 별도의 사용자를 등록하여 각각 독립적으로 사용할 수 있게 구성할 수 있게 하는 기술

 

[호스트 컴퓨터]

여러 개의 컨테이너를 포함하고 있는 컴퓨터를 호스트 컴퓨터라고 부른다.

 

[이미지]

애플리케이션을 실행할 수 있는 완전한 환경(설치과정, 설정, 버전)을 캡슐화한 개념이다.

 

예를 들어 DB서버가 있고 이 DB 서버를 이미지로 만들었다면 해당 이미지를 Docker로 실행하는 순간 DB서버가 컨테이너 환경에서 실행되고 DB를 일일이 설치할 필요 없이 DB를 사용할 수 있다.

 

이처럼 이미지는 프로그램을 실행하는 데 필요한 설치 과정, 설정, 버전 등을 포함하여 손쉽게 프로그램을 다른 환경에서 설치하여 사용할 수 있다.

 

[설치방법]

https://myanjini.tistory.com/entry/%EC%9C%88%EB%8F%84%EC%9A%B0%EC%97%90-%EB%8F%84%EC%BB%A4-%EB%8D%B0%EC%8A%A4%ED%81%AC%ED%83%91-%EC%84%A4%EC%B9%98

 

윈도우에 도커 데스크탑 설치

Install Docker Desktop on Windows Docker Desktop은 컨테이너화된 애플리케이션 및 마이크로서비스를 구축하고 공유할 수 있는 Mac, Linux, Windows 환경용 원클릭 설치 애플리케이션으로, 설치된 머신에서 컨테

myanjini.tistory.com

 

[WSL2 (Windows Subsystem for Linux 2)]

WSL2는 Windows 운영 체제에서 Linux 배포판을 실행할 수 있게 해주는 Windows Subsystem for Linux의 두 번째 버전입니다. WSL2는 Windows에서 Linux 환경을 실행하기 위해 가상화 기술을 활용하여, Linux 커널을 실제로 실행할 수 있는 환경을 제공합니다. WSL2는 Hyper-V를 기반으로 한 도구

 

[Hyper-V]

Hyper-V는 Microsoft가 제공하는 하이퍼바이저(가상화 관리 소프트웨어)로, Windows 운영 체제에서 가상 머신을 실행하고 관리할 수 있게 해주는 기술입니다.

 

[Hyper-V와 WSL2의 관계]

WSL2는 Hyper-V 기술을 기반으로 작동합니다. WSL2는 가상화를 활용하여 Linux 커널을 Windows에서 실행할 수 있게 하므로, Hyper-V가 활성화된 시스템에서만 WSL2를 사용할 수 있습니다.

 

[도커허브]

여러 사용자들이 올린 Docker 이미지 배포 사이트

https://hub.docker.com/

 

Docker Hub Container Image Library | App Containerization

Increase your reach and adoption on Docker Hub With a Docker Verified Publisher subscription, you'll increase trust, boost discoverability, get exclusive data insights, and much more.

hub.docker.com

 

[TAG]

도커허브에서 관리하는 특정 버전

[Docker Volume]

도커 볼륨이란 도커 컨테이너에 데이터를 영속적으로 저장하기 위한 방법이다. 볼륨(Volume)은 컨테이너 자체의 저장 공간을 사용하지 않고 호스트 자체의 저장 공간을 공유해서 사용한다.

 

도커 볼륨을 사용 하는 이유는 예를 들어 어떤 이미지를 갖는 컨테이너가 있다고 가정하자 이미지의 버전업이 많이 되어 새롭게 교체 하려고 한다. 이때 컨테이너 안에 이미지를 업데이트하기 위한 방법은 까다로울 수 있어 새로 버전 업된 이미지를 새로운 컨테이너에 만드는 게 편리하다. 하지만 해당 이미지가 db와 같이 정보를 저장하는 이미지였다면 컨테이너는 독립적인 디스크를 갖기 때문에 삭제시 모든 데이터가 삭제로 인해 문제가 될 수 있다. 이런 문제점 때문에 Docker Volume을 사용한다. 

 

[Docker File]

Docker 이미지를 만들게 해주는 파일. 이름은 반드시 Dockerfile로 만들어 줘야함.

 

728x90