본문 바로가기
OS-OE Knowledge/Virtualization KB

Docker 설치 및 구동 무작정 따라하기

by 스쳐가는인연 2015. 9. 19.

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


23. 컨테이너 외부에서 특정 컨테이너에 특정 명령 수행 및 그 결과 출력 (해당 컨테이너는 구동중이어야 함)
# docker exec vT-U ls

24. run 명령 구동 시 오류를 만나게 되는 경우
1) 컨테이너 명 중복 생성 시도
# docker run -i -t --name vT-U ubuntu /bin/bash
Error response from daemon: Conflict. The name "vT-U" is already in use by container 1beefc9a45ed. You have to delete (or rename) that container to be able to reuse that name.

2) 구동중인 컨테이너 삭제 시도
# docker rm volume
Error response from daemon: Cannot destroy container volume: Conflict, You cannot remove a running container. Stop the container before attempting removal or use -f
Error: failed to remove containers: [volume]


강제 삭제 (파라메터, -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

반응형