도커

개념

운영체제 안에 프로세스격리시켜서 마치 가상 머신을 설치한 것과 동일한 효과를 갖는다.

docker

Build, Ship, and Run Any App, Anywhere .. Not Deployment

설치

$ sudo wget -qO- http://get.docker.com/ | sh

권한

$ sudo usermod -aG docker {계정}

버전 확인

$ docker version

우분트 최신 버전 설치해 보기

명령어 구분 예제
search 이미지 검색하기 $ sudo docker search ubuntu

https://hub.docker.com 도커 허브(공식 이미지 repository) 사이트에서 검색 가능함.
pull 이미지 받기 $ sudo docker pull ubuntu:latest

최신 버전으로 설치함.
images 이미지 목록 출력하기 $ sudo docker images
run 컨테이너 생성하기 $ sudo docker run -i -t --name hello ubuntu /bin/bash

컨테이너를 유지하기 위해 bash를 실행하고 컨테이너 안으로 들어감.
ps 컨테이너 목록 확인하기 $ sudo docker ps -a
start 컨테이너 시작하기 $ sudo docker start hello

컨테이너명이 hello인 컨테이너를 시작함.
restart 컨테이너 재시작하기 $ sudo docker restart hello

컨테이너명이 hello인 컨테이너를 재시작함.
attach 컨테이너에 접속하기 $ sudo docker attach hello

bash shell에서 exit 또는 Ctrl+D로 종료함. Ctrl+P, Ctrl+Q로 정지하지 않고 컨테이너에서 빠져나옴.
stop 컨테이너 정지하기 $ sudo docker stop hello

컨테이너명이 hello인 컨테이너를 종료함.
rm 컨테이너 삭제하기 $ sudo docker rm hello

같은 이미지에 여러개 컨테이너를 띄울 수 있음을 의미함.
rmi 이미지 삭제하기 $ sudo docker rmi ubuntu:latest

nginx 최신 버전 설치해 보기

설치 하기

$ docker pull nginx:latest

설치 확인

$ docker images

백그라운드로 띄움 (포트 포워딩 설정함)

$ docker run -d --name hello-nginx -p 8000:80 nginx:latest

exec 명령어로 호스트에서 컨테이너 안의 명령어 실행하기

실행하기

$ docker run -i -t --name hello ubuntu /bin/bash 

빠져나오기

root@b40ae1343938# [Ctrl+P], [Ctrl+Q]

호스트에서 컨테이너로 실행하기

$ docker exec hello echo hello
hello

$ docker exec hello touch /hello.txt

컨테이너로 들어가서 확인해보기

$ docker attach hello

root@b40ae1343938# ls /
hello.txt

도커 가이드

가장 빨리 만나는 도커/이재홍님