Docker 활용 사용
Docker 활용 (2/3) - 사용
작성 2019년 5월 23일 김경호
1. Docker 사용 전 간단 설명
우리가 Virtual Box에서 가상을 띄울 iso 파일을 다운 받는것 처럼 Docker에서는 리눅스 계열의 이미지를 다운 받을 수 있습니다. 이 이미지는 그냥 비어있는 운영체제(CentOS, Ubuntu 등)일 수있고 미리 남들이 DB나 Tomcat을 설치 및 셋팅 해놓은 이미지일 수 있습니다. 어떤 이미지를 받느냐는 Docker쓰는 사람 맴입니다. ^오^ ^우^
Docker는 이미지를 다운받은 후 해당 이미지에 대해 컨테이너를 생성하여 사용하는 형식입니다. 첨이신 분은 헷갈리실 수 있으므로 Virtual Box와 비교를 하자면
항목 | Virtual Box | Docker |
---|---|---|
설치 파일 | iso |
이미지 |
가상 머신 | 가상시스템 |
컨테이너 |
이렇게 비교할 수 있습니다.
아무튼 결론적으로 설치파일=이미지를 받아 가상 머신=컨테이너를 생성한다고 보시면 될것같습니다.
그리고 자신이 셋팅해놓은 컨테이너를 이미지화 시켜 다른 사람들이 사용하게 할 수도 있습니다. 우리팀은 각 사이트마다 매번 셋팅을 하기 귀찮으니 이 부분이 가장 중요할 수 있겠습니다.
2. Docker 이미지 다운 받기
우선 설치 직후 Docker가 가지고 있는 이미지를 확인 합니다.
$ docker images
예상한대로 첨엔 암것도 없습니다.
그러니 본인이 다운받고 싶은 환경의 키워드를 search하여 이미지 명을 확인해 봅니다.(예로 centos)
$ docker search centos
이미지 명과 함께 어떤 이미지인지 설명이 간단히 나옵니다. ┗(-_-)┓
저는 노말하게 centos 중 가장 최신 이미지를 받아 보겠습니다. 참고로 centos 다음 : 이 붙으면 버전을 지정하여 받을 수 있습니다. 예) centos:6.7 만약 : 을 생략하면 가장 최신 버전의 이미지가 다운로드 됩니다.
$ docker pull centos:latest
다시 이미지 목록을 확인하면
$ docker images
위와 같이 방금 받은 이미지를 확인하실 수 있습니다.
이렇게 기본적인 이미지를 받아 보았고 “나는 내가 필요한 환경이 셋팅된걸 쓰고싶다” 하실때 남이 차린 밥상에 숟가락만 얹듯 필요하신 환경의 Docker 이미지를 구글에서 찾아보시면 해당 환경의 이미지 명부터 컨테이너 띄우는 방법까지 나와있으니 따라하실 경우 작업 시간을 매우 줄일 수 있습니다.
3. Docker 컨테이너 띄우기
다음은 이미지를 받은 후 Docker 컨테이너 생성 방법 입니다. 컨테이너 생성시 호스트와 컨테이너 간의 여러 옵션 값들이 있습니다.
옵션 | 설명 |
---|---|
-d | 백그라운드 모드 |
-p | 호스트와 컨테이너 간 포트 포워딩 |
-v | 호스트와 컨테이너 간 디렉토리 마운트 |
-e | 컨테이너 내의 환경변수 설정 |
-name | 컨테이너 이름 설정 |
-rm | 프로세스 종료시 컨테이너 자동 제거 |
-it | 터미널 입력을 위한 옵션 |
-link | 컨테이너 연결 |
하지만 저희는 항상 쓰는 것만 쓸것이기 때문에 모든 옵션을 외울 필요가 없습니다. (΄◞ิ౪◟ิ‵)
컨테이너 생성의 예
$ docker run -it -d -p 3301:3306 -v /tmp:/root/tmp:rw centos /bin/bash
위의 예를 설명 드리면
현재 콘솔로 결과를 출력(-it)하며 백그라운드로 실행(-d)하고
호스트 포트 3301을 컨테이너 포트 3306으로 포워딩(-p) 하며 호스트의 디렉토리 /tmp를 컨테이너의
디렉토리 /root/tmp로 읽기/쓰기 마운트(-v)를 하며 centos 이미지를 이용하여 /bin/bash 쉘로
컨테이너 생성하라 입니다.
생성 후 컨테이너를 확인해보면
$ docker ps -a
컨테이너 ID가 “439b40cae588” 로 centos 컨테이너가 생성되었으며 현재
STATUS 가 Up인 걸로 보아 실행 중인 것을 확인할 수 있습니다.
이제 모든 준비가 끝났으니 해당 컨테이너로 접속하여 작업을 하시면 됩니다.
$ docker exec -it 컨테이너ID /bin/bash
보시면 콘솔이 [root@컨테이너ID /]# 형태로 바뀐 것으로 보아 정상적으로
컨테이너로 접속 하였습니다. ƪ( ˘ ⌣˘ )ʃ
이 상태에서 셋팅하실 작업을 모두 완료 하신 후 다음의 명령어로 컨테이너에서 탈출 하시면 됩니다.
$ exit
만약 컨테이너가 맘에 안드시거나 어 뭐지 한번 더해봐야지 하실 경우
먼저 기존 컨테이너를 중지 후
$ docker stop 컨테이너ID
컨테이너 삭제
$ docker rm 컨테이너ID
주의 하셔야할 점은 컨테이너는 무조건 중지 후 삭제 입니다.
실행 중인 컨테이너는 삭제 되지 않습니다.
이렇게 기본적으로 Docker 이미지를 다운받아 컨테이너를 생성하는 방법을 소개했습니다.