도커
개념
운영체제 안에 프로세스를 격리시켜서 마치 가상 머신을 설치한 것과 동일한 효과를 갖는다.
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