becool

20210809 (월) container개념, docker 설치 본문

docker

20210809 (월) container개념, docker 설치

gusalstm 2021. 8. 9. 17:22
반응형

09:31 docker

 

 가상화 (Virtualization)

    하드웨어와 실행환경을 가상으로 구성하는 기술

    HW+SW : HW - Kernel - OS - Lib., Runtime - App.

→ HW+SW : HW - Kernel - OS - Hypervisor - VM [ HW - Kernel - OS - Lib. - App. ]

    중복된 OS와 App등으로 성능 저하. 

 HW+SW : HW - Kernel - OS - Container  - VM [ App. ]

    Guest OS 등을 간소화함으로써 독립/격리성을 제공하고 성능손실을 최소화

 

◎ https://www.redhat.com/ko/topics/containers/containers-vs-vms

 가상화의 종류

   ① 서버 가상화 : 가상 머신을 생성하여 관리하는 기술  (하드웨어 가상화)

   ② 네트워크 가상화 : 여러 호스트가 연결된 물리적인 네트워크를 가상화 하는 기술

   ③ 스토리지 가상화 : 여러개의 디스크 공간을 하나의 논리적인 드라이브 처럼 사용하는 기술 (Ceph, GlusterFS 등)

   ④ 컨테이너 가상화 : OS에서 논리적인 구획을 만들고 컨테이너 간 독립적으로 애플리케이션을 실행하는 환경

 

 

 

 Linux Container (LXC) :

   Linux 운영체제에서 Application을 격리하기 위한 컨테이너 기술

   Linux 커널에 탑재되어 있음

 

 Docker

   Container를 실행할 수 있는 실행환경

   Container 이미지를 생성, 배포하기 쉬운 환경을 제공  

 

 Docker 장점

   서버를 코드 형태로 정의

   높은 이식성

   상호 운용성

 

  이미지 : container에서 App. 이 실행되기 위한 환경을 구성하는 요소 - Application, Data, Library 등의 모임

  컨테이너 : 이미지의 실행 형태, 이미지를 메모리에 적재하여 실행

  저장소(Repository) : 컨테이너 이미지를 공유하기 위한 저장 공간. 용도에 따라 Public, Private 형태로 사용

     기본 저장소는 도커에서 제공하는 Docker Hub를 사용. 필요에 따라 사설저장소를 운영하여 사용 가능

 

##### Docker 설치 #####
[user@host2 ~]$ cd /etc/yum.repos.d
[user@host2 yum.repos.d]$ sudo wget https://download.docker.com/linux/centos/docker-ce.repo
[sudo] password for user:
--2021-08-09 11:54:29--  https://download.docker.com/linux/centos/docker-ce.repo
Resolving download.docker.com (download.docker.com)... 54.230.62.109, 54.230.62.14, 54.230.62.39, ...
Connecting to download.docker.com (download.docker.com)|54.230.62.109|:443... connected.
HTTP request sent, awaiting response... 200 OK
Length: 1919 (1.9K) [binary/octet-stream]
Saving to: ‘docker-ce.repo’

100%[==============================================================================>] 1,919       --.-K/s   in 0s

2021-08-09 11:54:29 (112 MB/s) - ‘docker-ce.repo’ saved [1919/1919]

[user@host2 yum.repos.d]$ ls
CentOS-Base.repo  CentOS-Debuginfo.repo  CentOS-Media.repo    CentOS-Vault.repo          docker-ce.repo
CentOS-CR.repo    CentOS-fasttrack.repo  CentOS-Sources.repo  CentOS-x86_64-kernel.repo  virtualbox.repo
[user@host2 yum.repos.d]$ yum install docker-ce docker-ce-cli containerd.io -y
[user@host2 yum.repos.d]$ sudo hostnamectl set-hostname docker-host0
[user@host2 yum.repos.d]$ sudo -i
[root@docker-host0 ~]# systemctl start docker
[root@docker-host0 ~]# systemctl enable docker
[root@docker-host0 ~]# usermod -a -G docker user

[user@docker-host0 docker]$ docker search mysql
[user@docker-host0 docker]$ docker search httpd
[user@docker-host0 docker]$ docker pull httpd
[user@docker-host0 docker]$ docker pull alpine:3.13.1
[user@docker-host0 docker]$ docker images
REPOSITORY    TAG       IMAGE ID       CREATED        SIZE
httpd         latest    bde40dcb22a7   3 days ago     138MB
hello-world   latest    d1165f221234   5 months ago   13.3kB
alpine        3.13.1    e50c909a8df2   6 months ago   5.61MB
centos        latest    300e315adb2f   8 months ago   209MB

 Docker 컨테이너 이미지 검색, 다운로드

   $ docker search IMAGE : 컨테이너 이미지 검색 (빌드 자동화 여부, 공식여부)

   $ docker pull IMAGE : 컨테이너 이미지 다운로드

   $ docker images : 현재 가지고 있는 이미지 리스트 출력 (repository, TAGS)

    → 하나의 repository 안에 여러개의 이미지가 들어가 있음.

 

 

 

Docker 컨테이너 이미지 검색
 $ docker search 이미지
 NAME - 컨테이너 이름
 DESCRIPTION - 설명
 STARS - 평점
 OFFICIAL - 공식 이미지 여부
 AUTOMATED - 자동화 빌드 여부

Docker 컨테이너 이미지 다운로드
 $ docker pull 이미지

Docker 컨테이너 이미지 목록 확인
 $ docker images
  REPOSITORY - 컨테이너 이미지 이름(이미지가 저장되는 Repository 이름)
  TAG             - 컨테이너 세부 이미지를 구분하기 위한 이름
  IMAGE ID     - 컨테이너 이미지를 고유하게 구분하기 위한 ID
  CREATED      - 컨테이너 이미지 생성 시기
  SIZE             - 컨테이너 이미지의 용량

 $ docker images  컨테이너이미지

Docker 컨테이너 이미지 삭제
 $ docker image rm  이미지

Docker 컨테이너 실행 (컨테이너가 없을 때 최초 실행)
  docker container run [OPTIONS] IMAGE [COMMAND] [ARG...]
  $ docker container run --name  -i -t  CONTAINER_NAME IMAGE  COMMAND
  $ docker container run -i -t --name centos7 centos:7 /bin/bash

 CentOS 이미지에서 bash shell 실행 (Foreground)
   docker container run -i -t --name centos7-1 centos:7 /bin/bash
 CentOS 이미지에서 bash shell 실행 (Background)
   docker container run -d -t --name centos7-2 centos:7 /bin/bash

Docker 컨테이너 실행 (컨테이너가 존재하는 경우)
  docker container start  CONTAINER_NAME

Docker 컨테이너 중지
  docker container stop  CONTAINER_NAME

Docker 컨테이너 제거
  docker container rm CONTAINER_NAME

Docker 컨테이너 Attach
  docker container attach CONTAINER_NAME

Docker 컨테이너 CPU, RAM 사용량 정보
  docker container stats

 

728x90
Comments