Docker 기본 개념

강민석·2024년 10월 4일

Docker

목록 보기
1/3
post-thumbnail

Docker란?

컨테이너를 사용하여 각각의 프로그램을 분리된 환경에서 실행 및 관리할 수 있도록 하는 도구

  • 컨테이너란?
    하나의 컴퓨터 환경 내에서 독립적인 컴퓨터 환경을 구성해서, 각 환경에 프로그램을 별도로 설치할 수 있게 만든 것

=> 하나의 컴퓨터 환경 내에서 여러 개의 미니 컴퓨터 환경을 구성할 수 있는 형태로 여기서 말하는 미니 컴퓨터 환경을 Docker에서 컨테이너라 부른다

'컨테이너''컨테이너를 포함하고 있는 컴퓨터'를 구분하기 위해 컨테이너를 포함하고 있는 컴퓨터를 '호스트(host)컴퓨터'라고 부른다.

Docker를 사용하는 이유

이식성 : 특정 프로그램을 다른 곳으로 쉽게 옮겨서 설치 및 실행할 수 있는 특성

예를 들어, 친구 컴퓨터에는 MySQL이 에러 없이 잘 깔리는데, 내 컴퓨터에 똑같이 MySQL을 깔려고 하니 에러가 발생하는 상황

  • 에러가 발생하는 원인은 버전 문제, 운영체제가 다른 문제.. 등 다양한 이유로 에러가 발생한다.

  • 설치 과정이 복잡한 경우에는 컴퓨터를 새로 살 때마다 복잡한 설치를 다시 진행해야 한다.

도커의 장점

  • 매번 귀찮은 설치 과정을 일일이 거치지 않아도 된다.
  • 항상 일관되게 프로그램을 설치할 수 있다.(버전, OS, 환경 설정 등 고려 X)
  • 프로그램이 독립적 환경에서 실행되기 때문에 프로그램 간에 충돌 X

컨테이너의 독립성

컨테이너는 '독립적인 컴퓨터 환경'이라고 했다

  • 디스크(저장 공간) : 각 컨테이너마다 각자의 저장 공간을 가지고 있으며 컨테이너 간에 내부에 있는 파일에 접근할 수 없다.

  • 네트워크(IP, PORT) : 각 컨테이너마다 고유의 네트워크를 가지고 있다.

이미지(image)란?

닌텐도와 같은 게임기를 보면 여러가지 칩을 꽂아서 다양한 게임을 즐길 수 있게 되어 있다.
=> Docker에서는 닌텐도의 칩과 같은 역할을 하는 개념이 이미지(image)이다.

  • 예시 1
    Spring Boot 프로젝트를 이미지(닌텐도 칩)로 만들었다고 가정했을 때, 이 이미지를 Docker로 실행시키면 Spring Boot 프로젝트가 컨테이너(미니 컴퓨터 환경)에서 실행된다.
  • 예시 2
    MySQL 서버를 이미지로 만들었다면, 이 이미지를 Docker로 실행시키는 순간 MySQL 서버가 컨테이너 환경에서 실행된다.

이미지는 프로그램을 실행하는 데 필요한 설치 과정, 설정, 버전 정보 등을 포함하고 있다.(프로그램을 실행하는 데 필요한 모든 것을 포함)

Docker에 Nginx 설치

Docker는 터미널에서 명령어를 통해 조작한다.

1. Nginx 이미지 다운로드

Nginx를 미니 컴퓨터에서 실행하기 위해 닌텐도 칩으로 만드는 과정

$ docker pull nginx
(다운로드 된 이미지 확인 시 => $ docker image ls)

2. 이미지를 컨테이너에 올려 Nginx 서버 실행

닌텐도 칩으로 만든 Nginx를 미니 컴퓨터 환경에서 실행시키는 과정

$ docker run --name webserver -d -p 80:80 nginx
(실행되고 있는 모든 컨테이너(미니 컴퓨터) 상태 확인 => $ docker ps)

3. 특정 컨테이너 정지

미니 컴퓨터 환경에서 실행하던 닌텐도 칩 종료

$ docker stop webserver
이미지를 실행시킬 때 만들었던 컨테이너의 이름으로 정지시킴
profile
많이 배우고 싶습니다

0개의 댓글