헬창 개발자

도커 맛만 보기 본문

공부방

도커 맛만 보기

찬배 2022. 10. 29. 22:32

도커란?

  • 도커 : 컨테이너 기술을 기반으로 한 가상화 플랫폼, 즉 독립된 환경을 만들어서 하드웨어를 효율적으로 활용하는 기술

가상화와 컨테이너

도커의 분할된 가상 머신들은 각각 독립적인 환경으로 구동됩니다. 이 때 베이스가 되는 기존의 환경을 Host OS, 그리고 가상 머신으로 분할된 각각의 환경을 Guest OS라고 부릅니다.

  • 가상화 : 물리적 자원인 하드웨어를 효율적으로 활용하기 위해서 하드웨어 공간위에 가상의 머신을 만드는 기술
  • 컨테이너 : 컨테이너가 실행되고 있는 호스트 os의 기능을 그대로 사용하면서 프로세스를 격리해 독립된 환경을 만드는 기술

 

가상 머신을 생성하기 위해서는 하이퍼바이저라는 소프트웨어를 사용합니다. 하이퍼바이저는 호스트 하드웨어에 설치되어 호스트와 게스트를 나누는 역할을 하고, 각각의 게스트는 하이퍼바이저에 의해 관리되며 시스템 자원을 할당 받습니다. 이 때 하이퍼바이저에 의해 생성된 게스트는 호스트나 다른 게스트와 상호간섭을 하지 않고 완전히 분리된 환경에서 구동됩니다. 하이퍼바이저를 활용하면 마치 하드웨어가 여러개인 것처럼 하나의 서버를 여러 명이 나눠 쓸 수 있고 컴퓨터 한대에서 서로 다른 OS를 동시에 사용할 수 있습니다.

  • 도커 vs 가상머신

도커 컨테이너와 많이 비교하는 것이 가상머신인데 VM은 컴퓨터 안에 또 다른 컴퓨터를 동작시키는 것을 말합니다. 사용법은 간단하지만 무겁고 느려서 실제 운영환경에서 사용하는 데는 무리가 있습니다,

컨터이너와 가상머신의 가장 큰 차이점은 ‘자원 공유의 수준’입니다. 가상머신은 하드웨어 수준의 자원을 공유하는 형태라면, 컨테이너는 호스트 운영체제와 커널공간, 그리고 라이브러리, 바이너리 같은 것을 공유하는 형태라서 상대적으로 가볍고 자원 공유가 효율적입니다. 내 컴퓨터 위에 애플리케이션 레이어에서 개개의 애플리케이션 형태(컨터이너)로 동작하기 때문에 애플리케이션을 여러 개 돌려 서버를 운용할 수 있습니다.

 

 

도커 설치

https://docs.docker.com/desktop/install/windows-install/

 

Install Docker Desktop on Windows

 

docs.docker.com

회원가입은 필수다. 설치과정은 Next 연타하고 재부팅하면 된다.

 

  • 버전 확인

설치가 완료되면 도커 데스크탑을 실행하면 CMD창이 열리고 docker -v 명령어을 입력해서 버전을 확인할 수 있다.

 

도커 간단 사용법

1) ubuntu 이미지 실행

# ubuntu 이미지 다운로드
$ docker pull ubuntu

# test라는 컨테이너명으로 실행 (실행하자마자 bash 터미널에 연결 유지하기)
$ docker run -it --name test ubuntu bash

2) 실행된 컨테이너에 git 설치

# apt 갱신
$ apt update

# git 설치
$ apt install git

3) ubuntu+git이 설치된 컨테이너를 commit하여 이미지 생성

# 컨테이너 bash 연결 종료
$ exit

# commit!
# docker commit <컨테이너명> <리포지토리>:<태그>
$ docker commit test monadk:ubuntu-git

# 생성되었는지 확인
# monadk 리포지토리, ubuntu-git이라는 태그로 이미지 생성되어 있음
$ docker images

4) 2개의 컨테이너로 실행하여 각각 python, node.js를 설치

nodejs

# monadk:ubuntu-git 이미지를 nodejs라는 컨테이너명으로 실행
$ docker run -it --name nodejs monadk:ubuntu-git bash

# bash터미널 - nodejs 설치
$ apt update && apt install nodejs

# 실행 테스트 - 각각이 독립된 실행환경
$ nodejs  # 실행됨
$ python  # command not found

도커 데스크탑을 확인해 보면 새로운 컨테이너가 생긴걸 확인할 수 있다.

test 컨테이너의 bash 쉘을 돌리고 Nodejs를 설치후 콘솔을 출력해보자

nodejs 컨테이너에는 python이 설치가 안되어있기 때문에 실행이 안된다.

 

python

# monadk:ubuntu-git 이미지를 python 컨테이너명으로 실행
$ docker run -it --name python monadk:ubuntu-git bash

# bash터미널 - python 설치
$ apt update && apt install python

# 실행 테스트 - 각각이 독립된 실행환경
$ python  # 실행됨
$ nodejs  # command not found

 

'공부방' 카테고리의 다른 글

[스프링부트] 게시판 만들기  (1) 2023.08.18
prophet 설치 오류 해결 방법  (0) 2022.11.03
passport 구현  (0) 2022.10.25
실시간 소켓 통신 구현을 해보자  (2) 2022.10.05
Node.js 환경에서 NoSQL : MongoDB 사용하기  (0) 2022.09.22
Comments