Docker 개요 by 바죠

Docker?


------------------------------------------------------------------------------------------
도커의 개요

도커(Docker)는 리눅스의 응용 프로그램들을 소프트웨어 컨테이너 안에 배치시키는 일을 자동화하는 오픈 소스 프로젝트이다. 
도커는 오픈소스 프로젝트이자 리눅스 컨테이너에 초점을 맞춘 신생업체의 이름이다.

도커가 도움이 되는 이유:
배포를 해야 응용이 가능하다. 따라서 배포 도구가 필요하다. 배포 도구는 특정 서버에서 구동하는 것을 의미한다. 
배포, 운용에 매우 많은 관심이 고조되고 있다. 어떻게 배포/운용을 효과적으로 할 수 있을까?

매우 많은 경우, 사실상 대부분, 개발하는 컴퓨터와 운용 컴퓨터와는 다르다.

이미지(실행할 수 있는 조건들, 서버 프로그램)를 담아서 컨테이너(실행)를 뛰우는 것이 내용이다. 

도커의 문법을 알면 배포가 간단하게 수행된다. 

도커파일, 도커 이미지, 도커 컨테이너 등이 핵심 키워드가 된다. 

켄테이너를 기반으로 동작함. 패키지 배포하는 데 사용함.

사실, 컨테이너 기반 기술들은 이미 존재했었다.

결국, 도커 컨테이너 형태로 동작을 한다. 통일된 환경으로 배포를 가능하게 한다.

image : 서비스 운영에 필요한 서버 프로그램, 소스코드, 컴파일된 코드, 묶음. 저장소 push/pull
container : image를 실행한 상태, 당연하게도 여러 개의 실행 상태를 만들 수 있기 때문에, 한 개의 이미지로 다수의 컨테이너 생성 가능함.

기존 시스템을 공유. 
가상머신에서 돌아가는 것이 아님. 
실제 머신에서 돌아감.
프로세스를 완전히 격리시킴.
도커: 리눅스 전용이였다. 실제 명령어들은 리눅스 명령어들 처럼 생겼다. 
윈도우 버전이 나옴: 

자동 설치 스크립트로 설치할 수 있다.


도커 설치

docker version

설치된 것들을 확인함. 이미지들을 확인함.
docker images

docker pull ubuntu:14.04

docker search ubuntu

image        : file
container    : process

docker run  -i  -t    ubuntu:14.04  /bin/bash

bash를 통해서 컨테이너에 들어온 경우에 해당함.
ls
ps ax
예를 들어, git을 설치할 수 있다.

컨테이너 안에서 git을 설치할 수 있다.
독립된 git이 생성된다.

exit

컨테이너가 끝난것임. 다시 접속을 할 수 있다. 컨테이너를 다시 살릴 수 있음. 이때 사용하는 것이 restart 
컨테이너 속으로 들어가기 위해서는 attach 명령어가 필요함. 
docker restart e2af61
docker attach e2af61

run, restart, attach, 그 이외에 stop, rm 등의 명령어들이 추가적으로 있다. 


샐행중인 컨테이너들만 나열.
docker ps

과거의 컨테이너들도 나열함.
docker ps -a

종료 역사를 동시에 알려주는 명령어

docker start  켄테이너-아이디  

run : 시작과 함께 들어감.

docker attach 이름

exit

control p control q : 종료하지 않고 밖으로 나오기. control d는 종료.

docker stop

docker ps -a

docker rm 이름

docker ps -a

docker rmi -f 이름   <이미지를 지움> 이미지 하나로 컨테이너 여러 개 실행 가능함.

docker images

컨테이너 안에 파일이 저장될 수 있다.

하나의 운영체제에서 여러개의 도커를 실행시킬 수 있다.

docker start 이름 또는 아이디 <실행만 하고 들어가지는 않음, run은 들어감.>
docker ps 

docker attach 이름 

종료할 경우:
docker stop 이름
docker ps -a
docker rm 이름
docker ps -a

특정 프로그램을 가져와서 실행할 경우:
docker images
docker pull nginx:latest
docker images
docker run -d --name hello-nginx  nginx:latest  <데몬 실행>
docker ps

------------------------------------------------------------------------------------------

예를 들어, 도커를 이용하여, 윈도우즈에서 우분투를 실행하기:

docker run -it ubuntu
도커는 이미지가 없으면, 즉시 설치하고 그 다음에 실행한다.
ls 명령어가 바로 먹힌다.

docker run -it --name james ubuntu

------------------------------------------------------------------------------------------

해당 이미지가 없을 경우, 도커 허브에서 가져올 수 있다.

커뮤니티 편집, CE 버전 사용.
EE 버전은 유료 버전

도커 툴박스 사용

docker toolbox for windows

윈도우즈: 오라클 vm 위에서 도커가 실행됨.

개발, 배포, 그리고 운용

컨테이너화하여 사용함.

docker --version

docker quick start terminal  <클릭>  


docker-machine ls
default

이미지를 뛰어서 컨테이너를 생성.

oracle VM virtualbox 

도커-머신끼리는 독립됨.

------------------------------------------------------------------------------------------



------------------------------------------------------------------------------------------




docker --help
docker --version
docker version

docker  system  df

docker  image  ls

docker  container  run --name  webserver -d -p 6080:80 nginx
docker  ps

windows 10  : docker for windows
windows 7   : docker ToolBox
Mac           : docker for Mac

docker  container  run  ubuntu:latest   /bin/echo  'Hello World'
docker  ps -a

docker  search  ubuntu
docker  search  centos

docker  container  run  -it  --name   "test1" centos   /bin/cal
docker  ps -a

docker  container  run  -it  --name  "centosshell"  centos  /bin/bash 

control p control q 명령어로 빠져 나가기 + control c
detach

attach

exit는 진짜로 나오기. stop 하고 나온다.

docker ps -a

------------------------------------------------------------------------------------------

도커는 이미지를 만들기 위해 Dockerfile이라는 파일에 자체 Domain-specific language언어를 이용하여 이미지 생성 과정을 적습니다. 

# our base image
FROM python:3-onbuild
# specify the port number the container should expose
EXPOSE 5000
# run the application
CMD ["python", "./app.py"]



------------------------------------------------------------------------------------------

docker pull nginx
docker image ls
docker container run     --name  pcname_webservername  -d  -p  6080:80               nginx

background : -d
port :  -p

docker ps -a

docker top pcname_webservername 
docker container rm   pcname_webservername 
멈추어 있는 것 삭제는 rm 대신에 prune

docker container run -it --name "test1"  centos  /bin/cal

docker ps -a 
exit 상태를 확인할 수 있음.

docker container run -it --name "centosshell"  centos  /bin/bash

centos 세계로 들어감.
whoami
ls
cat /etc/hosts
exit
하고 나올 수 있음.
docker ps -a 


docker container run -it --name "ubuntushell"   ubuntu  /bin/bash
cat /etc/issue
clear
exit 대신에 control p, control q
를 사용하면 빠져나올 수 있다. 
docker ps 로 현재 실행 상황을 체크할 수 있다. 

control c를 하면 나올 수 있다.

docker container exec -it ubuntushell cat /etc/hosts
떠 있는 상태에서 명령어 실행을 할 경우.

docker stop ubuntushell
docker start ubuntushell
docker attach unbuntushell 
명령어로 ubuntu 셀로 직접 들어 갈 수 있다. 

docker container stop ubuntushell
죽이는 경우.

------------------------------------------------------------------------------------------

------------------------------------------------------------------------------------------


------------------------------------------------------------------------------------------


------------------------------------------------------------------------------------------

------------------------------------------------------------------------------------------


------------------------------------------------------------------------------------------


------------------------------------------------------------------------------------------

------------------------------------------------------------------------------------------


------------------------------------------------------------------------------------------


------------------------------------------------------------------------------------------




덧글

댓글 입력 영역

최근 포토로그



MathJax