본문 바로가기
IT기술/클라우드 시스템 (Cloud System)

[Docker] 도커 소개 및 사용

by Travelo 2022. 8. 22.
728x90
반응형

#가상화 #관리 #네임스페이스 #도커 #명령어 #배포 #사용 #생성 #소개 #엔진 #오픈소스 #이미지 #컨테이너 #클라우드 #virtualization #management #namspace #docker #command #release ##create ##engine #open source #image #container #cloud 

 

 

 

도커(Docker)란?
  • 컨테이너 관리, 생성, 실행, 배포를 위한 오픈소스 엔진  / 컨테이너 기반의 오픈소스 가상화 플랫폼
  • 2013년 Docker, Inc가 프로젝트를 처음 발표하였으며, Linux Container, Cgroups, Namespaces 등 기술 사용
  • LXC와 같이 컨테이너 관리에 쓰이는 가상화 플랫폼이지만 이미지 생성과 배포에 특화

  • 도커 구현 주요 기능
  • lxc와 마찬가지로 namespaces, cgroups을 통한 컨테이너 관리기능을 제공하고 있습니다. 이 주요 기능을 통해 컨테이너를 만들기 위한 프로세스 가상화 기술, 하이퍼바이저를 사용하지 않고 격리된 공간을 제공합니다.
    Docker에는 기존 LXC를 비롯해 0.9버전 이후부터 libcontainer, libvirt 등의 라이브러리가 추가되고 있습니다
    다음 주요 기능을 통해 컨테이너 관리 기능을 제공하고 있습니다.
  • libcontainer – 리눅스 커널이 제공하는 가상화를 직접 사용할 수 있게 해주는 컨테이너 라이브러리이며, 리눅스 플랫폼에 의존적인 LXC를 대체하며 Host OS 의존성을 제고하며, 다양한 플랫폼을 지원합니다.
  • libvirt – 가상화 솔루션 제어를 위한 라이브러리로서 VM들을 관리하는 표준적인 API를 제공하며, libvirt 내부적으로는 하이퍼바이저별 driver를 통해 실제도 통제 작업을 수행할 수 있는 기능을 제공합니다.

 

 

Docker 주요 기본 명령어
  • search
    • Docker Docker Hub를 통해 이미지를 공유하는 생태계가 구축되어 있습니다.
      search 명령으로 Docker Hub에서 이미지를 검색할 수 있습니다.

      (ubuntu 만 검색을 하였으나많은 이미지가 검색됨을 알 수 있습니다.
      보통 official 정보를 보고 ubuntu 공식 이미지를 다운 받을 수 있으며이외의 다른 image는 개인이 이미지를 만들어 공유한 이미지일 경우가 있습니다.)
root@ubuntu:~# docker search ubuntu
NAME                                                   DESCRIPTION                                     STARS               OFFICIAL            AUTOMATED
ubuntu                                                 Ubuntu is a Debian-based Linux operating sys…   9033                 [OK]                
dorowu/ubuntu-desktop-lxde-vnc                      Ubuntu with openssh-server and NoVNC            260                                     [OK]
rastasheep/ubuntu-sshd                                Dockerized SSH service, built on top of offi…   195                                           [OK]
consol/ubuntu-xfce-vnc                                 Ubuntu container with "headless" VNC session…   147                                       [OK]
ansible/ubuntu14.04-ansible                            Ubuntu 14.04 LTS with ansible                   95                                           [OK]
ubuntu-upstart                                         Upstart is an event-based replacement for th…   93                    [OK]                
neurodebian                                            NeuroDebian provides neuroscience research s…   55                 [OK]                
1and1internet/ubuntu-16-nginx-php-phpmyad…       ubuntu-16-nginx-php-phpmyadmin-mysql-5          48                                    [OK]
ubuntu-debootstrap                                    debootstrap --variant=minbase --components=m…   40                  [OK]                
uagebec/ubuntu                                        Simple always updated Ubuntu docker images w…   23                                     [OK]
tutum/ubuntu                                           Simple Ubuntu docker images with SSH access     18                                      
i386/ubuntu                                             Ubuntu is a Debian-based Linux operating sys…   16                                      
1and1internet/ubuntu-16-apache-php-7.0              ubuntu-16-apache-php-7.0                        13                                        [OK]

 

  • pull
    • docker pull <image name>:<tag>를 이용하여 우분투 이미지를 받을 수 있습니다.
      다음은 ubuntu의 최신 버전을 받는 명령어 입니다.
root@ubuntu:~# sudo docker pull ubuntu:latest

 

  • images
    • docker images 명령어를 통해 docker image 목록을 출력할 수 있습니다.
root@ubuntu:~# sudo docker images
REPOSITORY          TAG                 IMAGE ID            CREATED                  VIRTUAL SIZE
ubuntu                latest                e54ca5efa2e9        Less than a second ago   276.1 MB

 

  • run
    • docker run <option><image name><execute file>을 이용하여 이미지를 컨테이너로 생성한 뒤 bash shell로 실행 할 수 있습니다.
root@ubuntu:~# sudo docker run -i -t --name hello ubuntu /bin/bash

 

  • ps
    • docker ps 를 통해 모든 컨테이너 목록을 출력하여 확인할 수 있습니다.
root@ubuntu:~# sudo docker ps -a
CONTAINER ID  IMAGE          COMMAND    CREATED        STATUS                             PORTS  NAMES
6338ce52d07c  ubuntu:latest  /bin/bash  4 seconds ago  Exited (0) Less than a second ago                    hello

 

  • start
    • docker start <container name>을 통해 정지한 컨테이너를 시작할 수 있습니다.
root@ubuntu:~# sudo docker start hello

root@ubuntu:~# sudo docker ps
CONTAINER ID  IMAGE          COMMAND    CREATED         STATUS                        PORTS  NAMES
6338ce52d07c  ubuntu:latest     /bin/bash  15 minutes ago  Up 3 seconds                               hello

 

  • restart
    • docker restart <container name>을 통해 컨테이너를 재시작 할 수 있습니다.
root@ubuntu:~# sudo docker restart hello

 

  • attach
    • docker attach <container name>을 통해 컨테이너에 접속 할 수 있습니다.
root@ubuntu:~# sudo docker attach hello
root@6338ce52d07c:/#

 

  • exec
    • docker exec <container name><command><option>을 통해 외부에서 컨테이너 안의 명령을 실행 할 수 있습니다. 실행 중인 컨테이너에만 사용가능 하며 패키지 설치나 데몬 실행에 활용 할 수 있습니다.
root@ubuntu:~# docker exec hello echo "Hello World"
Hello World

 

  • stop
    • docker stop <container name>을 통해 컨테이너를 정지할 수 있습니다.
root@ubuntu:~# sudo docker ps
CONTAINER ID  IMAGE         COMMAND    CREATED         STATUS                       PORTS  NAMES
6338ce52d07c  ubuntu:latest /bin/bash  51 minutes ago  Up 2 minutes                                  hello

root@ubuntu:~# sudo docker stop hello

root@ubuntu:~# sudo docker ps
CONTAINER ID  IMAGE         COMMAND    CREATED         STATUS                       PORTS  NAMES

 

  • rm
    • docker rm <container name>을 통해 컨테이너 삭제를 할 수 있습니다.
root@ubuntu:~# sudo docker rm hello

root@ubuntu:~# sudo docker ps –a
CONTAINER ID  IMAGE         COMMAND    CREATED         STATUS                       PORTS  NAMES

 

  • rmi
    • docker rmi <image name>:<tag>를 통해 이미지를 삭제 할 수 있습니다.
root@ubuntu:~# sudo docker images
REPOSITORY          TAG                 IMAGE ID            CREATED                  VIRTUAL SIZE
ubuntu                latest                e54ca5efa2e9        Less than a second ago   276.1 MB

root@ubuntu:~# sudo docker rmi ubuntu:latest

root@ubuntu:~#  sudo docker images
REPOSITORY          TAG                 IMAGE ID            CREATED                  VIRTUAL SIZE
  •  

 

728x90
반응형

댓글