해당 글은 Inflearn(인프런) ‘비전공자도 이해할 수 있는 Docker 입문/실전' 강의를 토대로 작성되었습니다.
Docker 기본 개념
먼저 Docker 를 왜 배우는 걸까?
Docker를 쓰는 이유에는 여러가지 장점이 있지만 특정 프로그램을 다른 곳으로 쉽게 옮겨서 설치 및 실행할 수 있는 특성인 이식성 때문이다.
글을 작성하는 본인을 포함하여 특정 프로그램을 배우기 위해 필요한 툴을 설치할 때, 그 과정이 불편해서 특정 블로그나 강의 등에서 알려준 방식대로 설치해도 이상하게 에러가 뜨거나 제대로 안 깔릴 때가 있다. 지우고 다시 깔아봐도 계속해서 똑같은 에러가 뜨기도 한다.
그 이유는 다양하다. 버전을 다른 걸 설치했거나, 운영체제(Window, Mac OS 등)가 다르거나, 내 컴퓨터에 깔려있는 다른 프로그램(ex. 보안 프로그램)과 충돌이 일어났거나와 같은 다양한 이유로 프로그램이 정상적으로 설치되지 않는다. 그리고 설치 과정이 복잡하다면 새 컴퓨터를 사서 MySQL을 설치할 때마다 번거롭고 귀찮다고 느껴진다.
이걸 깔끔하게 해결하기 위해 나타난 툴이 Docker이다. Docker를 사용하면 명령어 한 줄로 어떤 컴퓨터에든 설치하고자 하는 프로그래밍 툴을 에러 없이 설치하고 실행할 수 있게 된다.
뿐만 아니라 Docker를 사용하면 아래와 같은 장점이 있다.
- 매번 귀찮은 설치 과정을 일일이 거치지 않아도 된다.
- 항상 일관되게 프로그램을 설치할 수 있다. (버전, 환경 설정, 옵션, 운영 체제 등)
- 각 프로그램이 독립적인 환경에서 실행되기 때문에 프로그램 간에 서로 충돌이 일어나지 않는다.
Docker란 ?
컨테이너를 사용하여 각각의 프로그램을 분리된 환경에서 실행 및 관리할 수 있는 툴이다.
컨테이너(Container)란?

하나의 컴퓨터 환경 내에서 독립적인 컴퓨터 환경을 구성해서, 각 환경에 프로그램을 별도로 설치할 수 있게 만든 개념이다. 하나의 컴퓨터 환경 내에서 여러개의 미니 컴퓨터 환경을 구성할 수 있는 형태이다. 여기서 얘기하는 미니 컴퓨터를 보고 Docker에서는 컨테이너(Container)라고 부른다.
또한, 여기서 ‘컨테이너’와 ‘컨테이너를 포함하고 있는 컴퓨터’를 구분하기 위해 컨테이너를 포함하고 있는 컴퓨터를 ‘호스트(host) 컴퓨터’라고 부른다.
✅ 컨테이너(Container)의 독립성
컨테이너는 ‘독립적인 컴퓨터 환경’이라고 얘기했는데, 구체적으로 어떤 것들이 독립적으로 관리되는 지 기억해두자.
- 디스크 (저장 공간) : 각 컨테이너마다 서로 각자의 저장 공간을 가지고 있다. 일반적으로 A 컨테이너 내부에서 B 컨테이너 내부에 있는 파일에 접근할 수 없다.
- 네트워크 (IP, Port) : 각 컨테이너마다 고유의 네트워크를 가지고 있다. 컨테이너는 각자의 IP 주소를 가지고 있다.
이미지(Image)란?
닌텐도와 같은 게임기를 보면 여러가지 칩을 꽂아서 다양한 게임을 즐길 수 있게 되어 있다. Docker에서는 닌텐도의 칩과 같은 역할을 하는 개념이 이미지(Image)이다.
Node.js 기반의 Express.js 서버 프로젝트를 이미지로 만들었다고 가정해보자. 이 이미지를 Docker로 실행시키면 Express.js 서버 프로젝트가 컨테이너(Container) 환경에서 실행된다. 복잡한 설치 과정을 거칠 필요 없이 손쉽게 실행된다.
또 다른 예로, MySQL 서버를 이미지로 만들었다면, 이 이미지를 Docker로 실행시키는 순간 MySQL 서버가 컨테이너(Container) 환경에서 실행된다. MySQL을 일일이 설치할 필요없이 MySQL 데이터베이스를 사용할 수 있게 된다.
**이미지(Image)**는 프로그램을 실행하는 데 필요한 설치 과정, 설정, 버전 정보 등을 포함하고 있다. 즉, 프로그램을 실행하는 데 필요한 모든 것을 포함하고 있다.
'Docker' 카테고리의 다른 글
Docker : Docker Compose를 활용해 컨테이너 관리하기 (0) | 2024.12.02 |
---|---|
Docker : Dockerfile 활용해 이미지 직접 만들기 (1) | 2024.12.02 |
Docker : 도커 볼륨을 활용해 데이터 유실 방지하기 (0) | 2024.12.02 |
Docker : [실습] Docker(Nginx 설치 및 실행) (0) | 2024.12.02 |
Docker : Docker CLI 익히기 (1) | 2024.12.02 |
해당 글은 Inflearn(인프런) ‘비전공자도 이해할 수 있는 Docker 입문/실전' 강의를 토대로 작성되었습니다.
Docker 기본 개념
먼저 Docker 를 왜 배우는 걸까?
Docker를 쓰는 이유에는 여러가지 장점이 있지만 특정 프로그램을 다른 곳으로 쉽게 옮겨서 설치 및 실행할 수 있는 특성인 이식성 때문이다.
글을 작성하는 본인을 포함하여 특정 프로그램을 배우기 위해 필요한 툴을 설치할 때, 그 과정이 불편해서 특정 블로그나 강의 등에서 알려준 방식대로 설치해도 이상하게 에러가 뜨거나 제대로 안 깔릴 때가 있다. 지우고 다시 깔아봐도 계속해서 똑같은 에러가 뜨기도 한다.
그 이유는 다양하다. 버전을 다른 걸 설치했거나, 운영체제(Window, Mac OS 등)가 다르거나, 내 컴퓨터에 깔려있는 다른 프로그램(ex. 보안 프로그램)과 충돌이 일어났거나와 같은 다양한 이유로 프로그램이 정상적으로 설치되지 않는다. 그리고 설치 과정이 복잡하다면 새 컴퓨터를 사서 MySQL을 설치할 때마다 번거롭고 귀찮다고 느껴진다.
이걸 깔끔하게 해결하기 위해 나타난 툴이 Docker이다. Docker를 사용하면 명령어 한 줄로 어떤 컴퓨터에든 설치하고자 하는 프로그래밍 툴을 에러 없이 설치하고 실행할 수 있게 된다.
뿐만 아니라 Docker를 사용하면 아래와 같은 장점이 있다.
- 매번 귀찮은 설치 과정을 일일이 거치지 않아도 된다.
- 항상 일관되게 프로그램을 설치할 수 있다. (버전, 환경 설정, 옵션, 운영 체제 등)
- 각 프로그램이 독립적인 환경에서 실행되기 때문에 프로그램 간에 서로 충돌이 일어나지 않는다.
Docker란 ?
컨테이너를 사용하여 각각의 프로그램을 분리된 환경에서 실행 및 관리할 수 있는 툴이다.
컨테이너(Container)란?

하나의 컴퓨터 환경 내에서 독립적인 컴퓨터 환경을 구성해서, 각 환경에 프로그램을 별도로 설치할 수 있게 만든 개념이다. 하나의 컴퓨터 환경 내에서 여러개의 미니 컴퓨터 환경을 구성할 수 있는 형태이다. 여기서 얘기하는 미니 컴퓨터를 보고 Docker에서는 컨테이너(Container)라고 부른다.
또한, 여기서 ‘컨테이너’와 ‘컨테이너를 포함하고 있는 컴퓨터’를 구분하기 위해 컨테이너를 포함하고 있는 컴퓨터를 ‘호스트(host) 컴퓨터’라고 부른다.
✅ 컨테이너(Container)의 독립성
컨테이너는 ‘독립적인 컴퓨터 환경’이라고 얘기했는데, 구체적으로 어떤 것들이 독립적으로 관리되는 지 기억해두자.
- 디스크 (저장 공간) : 각 컨테이너마다 서로 각자의 저장 공간을 가지고 있다. 일반적으로 A 컨테이너 내부에서 B 컨테이너 내부에 있는 파일에 접근할 수 없다.
- 네트워크 (IP, Port) : 각 컨테이너마다 고유의 네트워크를 가지고 있다. 컨테이너는 각자의 IP 주소를 가지고 있다.
이미지(Image)란?
닌텐도와 같은 게임기를 보면 여러가지 칩을 꽂아서 다양한 게임을 즐길 수 있게 되어 있다. Docker에서는 닌텐도의 칩과 같은 역할을 하는 개념이 이미지(Image)이다.
Node.js 기반의 Express.js 서버 프로젝트를 이미지로 만들었다고 가정해보자. 이 이미지를 Docker로 실행시키면 Express.js 서버 프로젝트가 컨테이너(Container) 환경에서 실행된다. 복잡한 설치 과정을 거칠 필요 없이 손쉽게 실행된다.
또 다른 예로, MySQL 서버를 이미지로 만들었다면, 이 이미지를 Docker로 실행시키는 순간 MySQL 서버가 컨테이너(Container) 환경에서 실행된다. MySQL을 일일이 설치할 필요없이 MySQL 데이터베이스를 사용할 수 있게 된다.
**이미지(Image)**는 프로그램을 실행하는 데 필요한 설치 과정, 설정, 버전 정보 등을 포함하고 있다. 즉, 프로그램을 실행하는 데 필요한 모든 것을 포함하고 있다.
'Docker' 카테고리의 다른 글
Docker : Docker Compose를 활용해 컨테이너 관리하기 (0) | 2024.12.02 |
---|---|
Docker : Dockerfile 활용해 이미지 직접 만들기 (1) | 2024.12.02 |
Docker : 도커 볼륨을 활용해 데이터 유실 방지하기 (0) | 2024.12.02 |
Docker : [실습] Docker(Nginx 설치 및 실행) (0) | 2024.12.02 |
Docker : Docker CLI 익히기 (1) | 2024.12.02 |