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는 개인이 이미지를 만들어 공유한 이미지일 경우가 있습니다.)
- Docker는 Docker Hub를 통해 이미지를 공유하는 생태계가 구축되어 있습니다.
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의 최신 버전을 받는 명령어 입니다.
- docker pull <image name>:<tag>를 이용하여 우분투 이미지를 받을 수 있습니다.
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
반응형
'IT기술 > 클라우드 시스템 (Cloud System)' 카테고리의 다른 글
[Docker] 도커 이미지(image) 삭제 방법(repository, registry) (0) | 2022.07.14 |
---|---|
[Docker] 도커 이미지(Image) 생성 및 레지스트리(registry) 업로드 (0) | 2022.07.12 |
[kubernetes] Pod 소개 (0) | 2022.07.04 |
[kubernetes] kube-opeator pod에 rbac 에러가 발생하는 경우 (0) | 2022.03.31 |
[kubernetes] k8s 소개 (0) | 2022.03.28 |
[AWS] Cloud 시스템 구성도(Webserver-ElastiCache-RDS) (0) | 2022.03.21 |
댓글