본문 바로가기
Docker

1. 도커의 개념

by shulk 2024. 11. 12.

1. 도커를 왜 배우는 걸까?

이식성 때문에 라는데 이식성이란  특정 프로그램을 다른곳으로 쉽게 옮겨서 설치 및 실행할 수 있는 특성을 말한다.

 

예를들어 친구는 Mysql을 아무 에러 없이 잘 설치 했는데,나는 계속 에러 뜨고 다시 깔아봐도 에러가 뜬다. 에러 이유는 버전이나 친구랑 운영체제가 다르거나 내 컴퓨터에 보안 프로그램때문이거나 등등 다양한 이유때문에 그렇다.

그리고 설치 과정이 복잡할경우 새 컴퓨터를 샀을때 당연 귀찮고 힘들게 느낀다.

 

그래서 이걸 해결하기 위해 존재하는 툴이 도커다. 도커를 사용하면 명령어 한줄로 어떤 컴퓨터에든 MySQL을 에러 없이 설치하고 실행할 수 있게 된다.

 

추가로 도커를 사용하면 이득인점이

(1) 매번 귀찮은 설치 과정을 일일이 거치지 않아도 된다.

(2) 항상 일관되게 프로그램을 설치할 수 있다. (버전, 환경 설정, 옵션, 운영 체제 등)

(3) 각 프로그램이 독립적인 환경에서 실행되기 때문에 프로그램 간에 서로 충돌이 일어나지 않는다.

 

2. 도커,컨테이너란?

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

 

컨테이너란? 예를들어 윈도우의 사용자랑 비슷하다. A사용자에는 어떤 게임이 설치되어 있는데 B사용자 가면 다시 설치 해야한다.

즉 컨테이너는 하나의 컴퓨터 환경 내에서 독립적인 컴퓨터 환경을 구성하여 각 환경에 프로그램을 별도로 설치할 수 있게 만든 개념이다. 

쉽게 말하면 하나의 컴퓨터에 여러개의 미니컴퓨터가 있다. 사진을 보면 미니컴퓨터가 도커에서 컨테이너이고 미니컴퓨터를 포함하고 있는 컴퓨터를 호스트 컴퓨터라 부른다

 

3. 컨테이너의 독립성

2번 설명에서 컨테이너는 독립적인 컴퓨터라 말했는데 어떠한점이 독립적이냐면

(1) 디스크(저장공간) 각 컨테이너들은 각자 자기만의 저장 공간을 가지고 있다. 일반적으로 A컨테이너가 B컨테이너 내부에 있는 파일에 접근할 수 없다

(2) 네트워크(Ip,Port) 각 컨테이너들은 각자 자기의 IP,Port번호를 가지고 있다.

 

4. 이미지란?

닌텐도의 게임칩을 생각해보면 스위치에서 칩으로 다양한 게임이 가능하다. 도커에서는 닌텐도 칩과 같은 역활 하는 개념이 이미지이다.

 

예를들어 스프링 서버 프로젝트를 이미지로 만들었다 가정하고,이 이미지를 도커로 실행하면 스프링 프로젝트는 컨테이너 환경에서 실행된다.

또 다른예시로 Mysql 서버를 이미지로 만들고 마찬가지로 컨테이너 환경에서 실행한다.

이렇게  스프링 프로젝트나 Mysql을 일일이 복잡한 설치과정없이 쉽게 사용하고 실행한다.

 

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

 

 

5. 추가 흐름 실습(흐름을 이해하는거니 아직 왜우거나x)

지금 흐름 실습에는 안나와서 해당이 안되나, 이후 실습에서 나오는 명령어 중 sudo가 포함된 명령어가 있다.윈도우 PowerShell에서는 작동하지 않는 명령어이므로 sudo를 빼고 명령어를 입력하면 된다.

 

(1) Nginx 이미지를 다운로드한다.(즉 닌텐도칩이랑 동일한 개념으로 nginx칩을 다운로드)

$ docker pull nginx

 

(2) 다운로드된 이미지 목록들 보기

$ docker image ls


(3) 이미지컨테이너에 올려 Nginx 서버 실행시키기

$ docker run --name webserver -d -p 80:80 nginx

 

(4) 실행되고 있는 모든 컨테이너 상태 확인하기

$ docker ps

 

(5) 특정 컨테이너 정지

(사진 확대해서 보면 실행되고 있는 컨테이너에 도커는 webserver라는 이름으로 실행중이니 stop webserver적은거)

$ docker stop webserver

 

(6) 정지 시키기전 로컬호스트:80 들어가보면 저렇게 nginx서버 실행중이다. 

 

방금 실습 흐름 그림으로 이해

'Docker' 카테고리의 다른 글

6. 도커 파일 -(1)  (0) 2024.11.15
5. 도커 볼륨 -(2)  (0) 2024.11.14
4. 도커 볼륨 -(1)  (0) 2024.11.14
3. 도커의 명령어 -(2)  (0) 2024.11.13
2. 도커의 명령어 -(1)  (0) 2024.11.13