[Linux]도커(Docker)개념 정리

vector13·2021년 12월 15일

* 도커(Docker)란 :

리눅스 컨테이너에 여러 기능을 추가, 어플리케이션을 컨테이너로서 좀 더 쉽게 사용할 수 있도록 한 오픈 소스 프로젝트

도커 실행 환경 단위: 컨테이너

  • 도커 엔진 : 컨테이너 생성하고 관리하는 주체, 컨테이너 제어하며 다양한 기능을 제공한다.
  • 도커엔진(Docker Engine)이 있으면 커널은 호스트 커널을 공유하기 때문에 크기가 작고 성능 손실이 없다. 가상 머신은 어플리케이션 실행시 반드시 Hypervisor를 거쳐야 하므로 성능 손실이 발생하고 가상머신마다 Guest OS가 있어 무겁다.
    도커가 있으면 리눅스를 간단하게 할 수 있다.

운영환경이 다른 개발서버(개발자가 개발하는 서버)와 운영서버(사용자들이 사용하는 서버)의 환경을 일치시키는 방법으로 도커가 있다. -> 개발과 운영을 긴밀하게 연결 : DevOps (Development, Operations)

* 도커 사용 이유

  1. 어플리케이션의 개발과 배포가 편해짐 (컨테이너에서 개발, 도커 이미지 생성, 서버에 전달)
  2. 여러 어플리케이션의 독립성과 확장성이 높아짐. (하나의 어플리케이션을 여러개의 마이크로서비스로 이루어진 마이크로서비스 아키텍처가 가능해진다. ex, 웹서버 컨테이너, DB 컨테이너 등으로 독립적으로 나눠서 개발/배포 가능 )

* docker 엔진 설치 명령어

su root
curl -fsSLhttps://download.docker.com/linux/ubuntu/gpg| sudoapt-key add -
add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu $(lsb_release-cs) stable“
apt update
apt install docker-ce
docker info
  • Docker이미지
    : 컨테이너 생성하는데 사용된다. 누구나 만들 수 있다.
    hub.docker.com 에 들어가면 만들어진 이미지 볼 수 있다.
    도커 이미지 종류에는 우분투, apache 웹서버, MySql, 하둡, 스파크, 스톰 등 빅데이터 분석도구

  • Docker 컨테이너 : 이미지로부터 생성되는 독립된 실행 공간이다.

  • ubuntu:14.04 이미지를 이용한 컨테이너 생성하기
docker –v
docker run -i -t ubuntu:14.04
  • run: 지정한 이미지 다운받아 컨테이너 생성/실행 -i: 상호 입출력 가능하게 -t: tty활성화해서 bash 셸 사용하게
  • 컨테이너(실행공간) 빠져나오기 : exit또는 ctrl+D (정지 후 빠져나옴) (정지안시키고 빠져나오는건 Q)
  • docker 이미지 다운받기 : docker pull

  • docker 다운로드 이미지 리스트 확인 : docker images

  • 다운받은 docker 이미지로 컨테이너 생성 : docker create -i-t --name 이름 이미지이름

  • 생성한컨테이너실행 : docker start 이름

  • 실행중인 컨테이너 내부로 들어가기 : docker attach 이름

컨테이너 포트를 외부에 노출하기

: 컨테이너 생성시 -p 옵션 이용 형식: -p 호스트의포트:컨테이너의포트
예) docker run -it --name mywebserver-p 7777:80 ubuntu:14.04
컨테이너 내부에서 웹서버 설치
apt install apache2 -y
service apache2 start
그 후 외부 웹브라우저에서 localhost:7777로 입력하면 아파치 서버와 연결되서 외부 요청이 내부로 들어가 접속가능

도커의 장점

: 어플리케이션의 개발과 배포 등이 쉬워진다.
어플리케이션을 마이크로서비스 단위로 나누어 개발 및 실행을 가능하다.
이미지를 이용해 컨테이너를 만들고, 거기서 작업
전체를 또 이미지로 만들어서 -> 컨테이너로 만든다.
즉, 컨테이너 여러 개 만들어 동작시키고 각각에 마이크로 서비스를 담아서 서로 통신하도록 동작시킬 수 있다는 큰 장점이 있다.

profile
HelloWorld! 같은 실수를 반복하지 말기위해 적어두자..

0개의 댓글