Docker 관심은 있는데, 모르겠네 ... 하여 찾아보다, 좋은 자료를 찾게되어 무작정 따라해봤다.
따라해보는 것 만으로도 많은 것들을 배우게 된다 ...
1. Ubuntu 14.04 설치
2. root 권한으로 Docker 설치.
# apt-get install docker.io
The following extra packages will be installed:
aufs-tools cgroup-lite git git-man liberror-perl
Suggested packages:
btrfs-tools debootstrap lxc rinse git-daemon-run git-daemon-sysvinit git-doc
git-el git-email git-gui gitk gitweb git-arch git-bzr git-cvs git-mediawiki
git-svn
3. 설치 진행을 위한 질의
Do you want to continue? [Y/n] y
4. 설치 후 docker 버전 확인
# docker -v
Docker version 1.0.1, build 990021a
5. 상위 버전으로 docker 업데이트 위한 준비
# wget -qO- https://get.docker.io/gpg | sudo apt-key add -
# sh -c "echo deb http://get.docker.io/ubuntu docker main > /etc/apt/sources.list.d/docker.list"
# apt-get update
6. docker 업데이트
# apt-get install lxc-docker
7. 다시 버전 확인
# docker -v
Docker version 1.7.1, build 786b29d
# docker --version
Docker version 1.7.1, build 786b29d
8. VM 생성을 위한 Image 내려받기
# docker pull <image name>
# docker pull ubuntu:14.04
Status: Downloaded newer image for ubuntu:14.04
pull : docker 레지스트리에서 image 가져오기
Docker Hub - default 레지스트리 : docker inc가 관리중인 public 레지스트리
push : docker hub에 이미지 밀어넣기
9. Image 조회하기
# docker images
REPOSITORY TAG IMAGE ID CREATED VIRTUAL SIZE
ubuntu 14.04 91e54dfb1179 3 weeks ago 188.4 MB
10. 시간을 기록할 임의의 파일 생성
# touch vT-U
11. VM 생성
run 파라메터,
-i : interactive, 컨테이너가 STDIN을 오픈해서 유지하도록 지정
-t : 컨테이너에 pesudo-tty(터미널)를 할당
--name 옵션: 컨테이너 이름을 지정
-d 옵션: 컨테이너를 데몬 형태로 실행
# docker run -i -t --name vT-U ubuntu:14.04 /bin/bash
# docker run -i -t --name vT-CentOS centos:7 /bin/bash
12. VM 내부에 진입되어 있음을 확인하고, ls등의 명령으로 동작상태를 확인해보자.
참고로, 임의의 16진수로 구성된 컨테이너 식별용 primary key ID가 호스트명(hostname) 자리에 확인된다.
eg) 239a854bc658 #
13. VM에서 빠져나오기
<Ctrl+p>
<Ctrl+q>
이 후 다시 기존 호스트명으로 확인된다. (빠져나온상태)
14. 현재 동작중인 컨테이너 목록 확인
# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
239a854bc658 centos:7 "/bin/bash" 22 seconds ago Up 21 seconds vT-CentOS
1beefc9a45ed ubuntu:14.04 "/bin/bash" 4 minutes ago Up 4 minutes vT-U
15. 컨테이너 중지
# docker stop vT-CentOS
# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
1beefc9a45ed ubuntu:14.04 "/bin/bash" 5 minutes ago Up 5 minutes vT-U
16. 존재하는 모든 컨테이너 조회
# docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
239a854bc658 centos:7 "/bin/bash" About a minute ago Exited (137) 13 seconds ago vT-CentOS
1beefc9a45ed ubuntu:14.04 "/bin/bash" 4 minutes ago Up 4 minutes vT-U
# docker ps -l
포트 매핑 확인
17. docker 컨테이너 시작/중지
# docker start <container name | container ID>
# docker stop <container name | container ID>
18. 실행중인 VM(container)에 재접속 (접속을 위해서는 VM 생성 시 -i -t 파라메터를 이용하자)
# docker attach <container name | container ID>
# docker attach 1b
19. container 구동 명령 'run'에 대해서는 잘 봐두자 ...
# docker run -help
20. 호스트의 데이터를 컨테이너와 공유하고자 할 때, (디렉토리 공유)
# docker run -i -t --volume /hostShare:/containerShare --name volume ubuntu:latest bin/bash
21. 호스트의 폴더에 파일 생성
# touch /hostShare/tCreate
# ls /hostShare/
tCreate
22. 컨테이너에 접속 후에 같은 방법으로 확인해보자
# docker attach 00 (컨테이너 ID의 앞부분 일부로도 사용 가능)
# ls /containerShare
# touch /containerShare/tCreate2HostfromContainer
# docker exec vT-U ls
강제 삭제 (파라메터, -f)
# docker rm volume -f
25. 컨테이너 상세 정보 조회
# docker inspect <container name>
# docker inspect vT-U
26. 컨테이너에서 수행된 이력
# docker logs <container name>
# docker logs vT-U
-f : log tailing
-f --lines
-t : log display with time stamp
27. docker image 조회
# docker images
private 정보 함께 조회
# docker images -a
28. 배포를 위해 이미지 만들기 (Golden image 생성)
# docker commit <container name | container ID> <container image name>:<tag>
# docker commit vT-U vt_uimg:0.1
# docker images
REPOSITORY TAG IMAGE ID CREATED VIRTUAL SIZE
vt_uimg 0.1 08002928f22b 15 seconds ago 188.4 MB
centos 7 0f73ae75014f 9 days ago 172.3 MB
ubuntu 14.04 91e54dfb1179 3 weeks ago 188.4 MB
ubuntu latest 91e54dfb1179 3 weeks ago 188.4 MB
29. 이미지 삭제
# docker rmi 0800
30. 실행중인 프로세스 조사
# docker top
출처:
http://blog.naver.com/alice_k106/220319730350
http://blog.naver.com/alice_k106/220360418725
http://blog.naver.com/alice_k106/220359633558
http://ingeec.tistory.com/m/post/73