작성자: admin 작성일시: 2016-04-07 21:30:03 조회수: 9334 다운로드: 165
카테고리: 개발/운용 환경 태그목록: Docker

도커 이미지 설치 및 실행

datascienceschool/rpython 도커 이미지

저자는 데이터 분석 환경을 쉽게 설치할 수 있도록 R와 파이썬 등 데이터 분석에 필요한 모든 소프트웨어를 설치한 리눅스 환경을 datascienceschool/rpython 라는 이름의 도커 이미지로 만들어 도커 허브(docker hub)라고 하는 웹사이트에 올려놓았다.

datascienceschool/rpython은 리눅스 환경에서 R 혹은 파이썬을 사용하여 데이터 분석을 하는데 필요한 대부분의 소프트웨어를 포함하고 있기 때문에 별도의 복잡한 설치 과정 없이 바로 데이터 분석을 시작할 수 있다.

datascienceschool/rpython 이미지에 포함된 운영체제나 소프트웨어들은 다음과 같다. (아래에 적힌 버전은 2017년 6월 기준으로 적은 것이며 계속 업데이트 된다.)

  • 운영체제
    • 우분투 16.04
  • 파이썬
    • 버전 2.7.13 (아나콘다 4.4.0)
    • ipython, numpy, scipy, pandas, matplotlib, seaborn, scikit-learn, nlpy, gensim, theano, tensorflow, keras 등
  • R
    • 버전 3.4.0
    • RStudio
  • 유틸리티
    • git, vim, emacs, tex-live, pandoc, graphviz, imagemagick 등

이 이미지에는 dockeruser 라는 이름의 계정이 이미 만들어져 있으며 이 계정으로 사용하는 것을 권장한다. 계정의 암호는 dockeruserpass 로 설정되어 있다.

  • 계정 이름: dockeruser
  • 계정 암호: dockeruserpass

datascienceschool/rpython 이미지에 대해 더 자세히 알고 싶다면 이미지 제작용 소스 코드가 올라가 있는 다음 깃허브 레포지토리를 참조한다.

도커 이미지 다운로드

datascienceschool/rpython 도커 이미지를 다운로드 받아서 설치하기 위해서는 우선 앞절에 설명한 바와 같이 도커 툴박스부터 설치하고 도커 퀵스타트 터미널(Docker Quickstart Terminal, 이하 도커 터미널로 부른다.)을 실행해야 한다.

도커 툴박스가 정상적으로 설치된 경우, 도커 터미널을 실행하면 다음과 같은 화면이 뜰 것이다. 처음 실행하는 경우에는 수 분이 걸릴 수도 있다.

                        ##         .
                  ## ## ##        ==
               ## ## ## ## ##    ===
           /"""""""""""""""""\___/ ===
      ~~~ {~~ ~~~~ ~~~ ~~~~ ~~~ ~ /  ===- ~~~
           \______ o           __/
             \    \         __/
              \____\_______/

docker is configured to use the default machine with IP 192.168.99.100
For help getting started, check out the docs at https://docs.docker.com


user@PC MINGW64 ~
$

이 화면에서 다음과 같이 입력한다. 이 때 가장 앞의 달러표시($)는 터미널의 프롬프트(prompt)를 뜻하는 것으로 사용자가 입력하는 것이 아니다.

$ docker pull datascienceschool/rpython:latest

이 명령을 실행하면 도커 이미지를 다운로드 받기 시작한다. 네트워크 상태에 따라 다운로드에 약 10분 ~ 20분이 소요될 수 있다. 다음과 같은 화면이 나타나면 다운로드가 완료된 것이다.

그림: 도커 이미지 다운로드 화면

이미지를 정상적으로 다운로드 하였는지 확인하기 위해 다음과 같이 docker images 명령으로 현재 존재하는 도커 이미지 목록을 출력한다.

$ docker images
REPOSITORY                  TAG                 IMAGE ID            CREATED              SIZE
datascienceschool/rpython   latest              ce2aabd3c3d0        1 minutes ago        11.54 GB

목록에 datascienceschool/rpython 가 나타났다면 정상적으로 다운로드 된 것이다. 도커 이미지 다운로드 후의 전체 모습은 다음과 같다.

그림: 도커 이미지 다운로드 후의 상태

datascienceschool/rpython 컨테이너 실행

컨테이너를 실행하기 전에 우선 자신의 호스트 컴퓨터의 계정이름과 홈 디렉토리를 확인한다. 만약 윈도우즈 운영체제를 사용하고 있고 사용자 이름이 jane 이면 홈 디렉토리는 아마도 c:\Users\jane 일 것이다. 이 디렉토리는 도커 퀵스타트 터미널에서 /c/Users/jane 이라는 이름이 된다.

호스트 계정 이름을 알았으면 이제 분석 환경을 담고 있는 datascienceschool/rpython 이미지를 실행해 보자. 다음 명령을 실행한다. 호스트계정이름 이라고 되어 있는 부분에는 자신의 호스트 계정 이름을 대신 써 넣는다. 만약 호스트 계정 이름이 빈칸을 포함하고 있다면 따옴표로 전체 폴더 패스를 감싸야 한다.

Mac OS 의 경우에는 홈 디렉토리 경로를 /Users/호스트계정이름 으로 설정한다.

$ docker run -Pit --name rpython -p 8888:8888 -p 8787:8787 -p 6006:6006 -p 8022:22 -v /c/Users/호스트계정이름:/home/dockeruser/hosthome datascienceschool/rpython

위 명령의 의미는 다음과 같다.

  • docker run
    • 도커 컨테이너를 최초로 실행하는 명령
  • -Pit 옵션
    • 컨테이너에서 사용하는 모든 네트워크 포트(port)를 외부로 개방하고 셸을 사용하기 위한 옵션
  • -p 옵션
    • 컨테이너 내부의 포트를 호스트 컴퓨터로 열어준다. 포트는 일단 run 명령을 실행할 때만 열 수 있기 때문에 앞으로 사용할 포트는 미리 열어주어야 한다.
    • 여기에서는 8888, 8787, 6006 포트는 같은 포트 번호로 열었고 22 포트는 8022 로 변경하여 열었다. 따라서 호스트에서는 8022번을 접속하면 컨테이너에서는 22번 포트가 접속된 것으로 인식한다.
    • 각각의 포트는 다음 프로그램을 사용하기 위한 것이다. 접속 방법에 대해서는 이후에 자세히 설명한다.
      • 8888: 주피터 노트북
      • 8787: RStudio
      • 6006: 텐서 플로우의 텐서 보드
      • 22: ssh 서비스
  • -v 옵션
    • 호스트와 도커 컨테이너간에 폴더를 공유하기 위한 옵션
    • 여기에서는 호스트 계정의 홈 디렉토리를 도커 컨테이너 안의 /home/dockeruser/hosthome 이라는 이름의 디렉토리로 만들어 넣었다. 도커 컨테이너내에서 이 디렉토리로 들어가면 호스트 계정의 홈 디렉토리를 사용할 수 있다. 여기에서 파일과 디렉토리를 만들거나 변경, 삭제하면 호스트 컴퓨터의 파일도 영향을 받는다.

정상적으로 동작하면 프롬프트가 다음과 같이 바뀌는 것을 볼 수 있다. 여기에서 dockeruser 는 도커 컨테이너안의 사용자 이름이고 306d4d3d002b는 도커 컨테이너 이름이다. 컨테이너 이름은 사용할 때마다 계속 달라질 수 있다.

dockeruser@306d4d3d002b:~$

만약 위의 명령을 실행했는데 다음과 같은 오류 메세지가 나온다면 이미 docker run 을 한 번 실행했기 때문이다.

Error response from daemon: Conflict. The name "/rpython" is already in use by container

이 경우에는 docker run 명령이 아니라 docker start rpython 을 실행해야 한다. 도커 명령에 대한 자세한 설명은 다음 절에 나온다.

그림: 도커 컨테이너 실행 이후의 상태

자 이제 다시 정리해 보자. 여기가지 제대로 따라왔다면 여러분은

  • 여러분 실제 컴퓨터의 윈도우즈 운영체제(호스트) 안의
  • Oracle VM VirtualBox 가상 머신의 boot2docker 운영체제(가상 머신) 안의
  • 도커 datascienceschool/rpython 컨테이너의 우분투 리눅스 운영체제(도커 컨테이너) 안으로

들어온 것이다.

일단 컨테이너가 가동된 다음에는 고래 그림이 있는 도커 터미널 윈도우를 닫아도 된다. 단 exit 명령등은 사용하지 않고 윈도우의 x 표시를 누르는 방법으로 윈도우를 닫자. 윈도우를 닫아도 도커 컨테이너는 계속 가동되고 있으므로 걱정할 필요가 없다.

주피터 노트북 사용

주피터 노트북(Jupyter Notebook)은 웹 브라우저에서 R 또는 파이썬 등을 실행 시킬 수 있는 다중 언어 실행 환경이다. 주피터 노트북을 사용하려면 호스트 컴퓨터(윈도우즈나 매킨토시)에서 웹 브라우저를 띄운 다음 주소창에 다음 주소를 입력한다

만약 자신의 컴퓨터에서 만들어진 가상 머신의 IP 주소가 192.168.99.100 이 아닌 경우에는 해당 주소를 사용해야 한다.

정상적으로 작동한다면 다음과 같이 주피터 노트북 홈페이지가 나타난다.

그림: 주피터 노트북 실행 화면

R과 RStudio 사용

datascienceschool/rpython 컨테이너 안에는 R과 대부분의 통계 분석용 R 패키지들이 이미 설치되어 있으므로 사용자가 따로 설치할 필요가 없다. 또한 RStudio(서버 버전)라고 하는 R용 통합 개발 환경도 설치되어 있다. RStudio를 실행하려면 호스트(윈도우즈나 매킨토시)에서 웹 브라우저를 시작하고 다음 주소를 입력한다

정상적으로 작동한다면 다음과 같이 RStudio 로그인 화면이 나타난다.

그림: RStudio 실행 화면

질문/덧글

사용자에 의해 삭제되었습니다. kang*** 2016년 6월 10일 11:38 오후

사용자에 의해 삭제되었습니다.

도커 컨테이너 실행 오류에 관해 질문드립니다. guts*** 2016년 6월 14일 9:10 오후

저는 우분투 14.04를 사용하고있습니다.

오늘 업데이트된 datascienceschool/rpython:latest 이미지를 다운로드한 후, "docker run ~~" 을 실행했을때,

"FATA[0000] Error response from daemon: Cannot create container with more than 127 parents." 라는 에러가 발생하였습니다.

검색을 해봤을 때에 마땅한 해결책을 찾지 못하여 해결방안을 알고계신지 질문드립니다 ^^

답변: 도커 컨테이너 실행 오류에 관해 질문드립니다. 관리자 2016년 6월 16일 3:50 오후

docker info 로 버전을 확인하신 후 버전 업그레이드를 하셔야 합니다.

docker image다운 관련 질문 minj*** 2016년 9월 16일 11:44 오전

기존에 사용하던 컨터이너가 안잡히고 이상하여, docker rmi 구문을 이용하여 기존 image를 지우고 새로 다운을 받았는데요.
모둔 값이 pull complete라고 뜨지 않았는데, 다 다운된것처럼 종료되었습니다.

그리고 나서 docker images 를 처보면 아래와 같이 보입니다.

Repository Tag Image ID Created Size
datascienceschool/rpython latest ada190b7ff2f 9 days age 7.702GB
datascienceschool/rpython <none> ada190b7ff2f 9 days age 7.702GB

image를 지우고 다시 다운을 받아야하는 부분일까요?

그리고 docker quick start 를 실행할때 , 예전에는 그런 문구가 없었던 것으로 기억되는데 아래와 같은 문구가 같이 뜹니다.
이부분도 문제 없는 부분일까요?
"Started machines may have new IP addresses. You may need to re-run the 'docker-machine env' command.
Regenerate TLS machine certs? warning : this is irreversible. <y/n>: Regeneration TLS certificates"

답변: docker image다운 관련 질문 관리자 2016년 9월 17일 11:28 오전

말씀하신 현상에서 다운로드는 다시 하시 않으셔도 될 것 같습니다.
그런데 IP address는 변경되었을 수도 있기 때문에 Quickstart terminal에서 나오는 메세지를 확인하시거나
docker-machine ip
명령으로 IP address를 확인해 주세요.

docker run 실행 시 오류가 발생합니다. shin*** 2017년 2월 1일 7:07 오후

docker run -Pit --name rpython -p 8888:8888 -p 8787:8787 -p 6006:6006 -p 8022:22 datascienceschool/rpython
을 실행했을 때 아래와 같은 오류가 발생합니다.

Error response from daemon: Conflict. The name "/rpython" is already in use by container ~~~~~~~. You have to remove (or rename) that container to be able to reuse that name.

처음 실행할 때는 문제가 없었는데 종료 후 다시 실행했더니 이러한 오류창이 발생하였습니다.
답변 부탁드립니다.
감사합니다.

답변: docker run 실행 시 오류가 발생합니다. 관리자 2017년 2월 2일 9:20 오전

이미 한번 실행을 했기 때문에 ``run`` 명령이 아닌 ``start`` 명령을 쓰셔야 합니다. 자세한 내용은 "도커 초간단 사용법"을 참조하세요

linux에서 pull에 문제가 생깁니다. shez*** 2017년 2월 27일 12:55 오후

Pulling repository datascienceschool/rpython

Repository not found

[irteamsu@dev-rpython.ncl ~]$ sudo docker images

REPOSITORY TAG IMAGE ID CREATED VIRTUAL SIZE

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

<none> <none> 782f4961f5e6 7 weeks ago 129.8 MB

답변: linux에서 pull에 문제가 생깁니다. 관리자 2017년 2월 27일 5:36 오후

제가 리눅스에서 docker pull 하면 잘 됩니다.
사용하시는 콘솔에서 인터넷 연결을 확인해 보시고 (호스트에서는 인터넷이 되어도 가상 머신이나 도커 컨테이너에서는 안될 수도 있습니다.)
도커 호스트나 도커 컨테이너 내에서 잘 되는 경우에는 인터넷 도커 허브의 일시적 문제일 수도 있으니 다시 한 번 시도해 보시기 바랍니다.

도커이미지 다운 관련 worl*** 2017년 3월 10일 2:32 오후

먼저 $ docker pull datascienceschool/rpython:latest 입력시에 설치화면이 나타나지 않아
docker run --name=rpython -Pit -p 8888:8888 -p 8787:8787 -p 8022:22 -p 6006:6006 datascienceschool/rpython 입력하였습니다.
맞는 건가요?

답변: 도커이미지 다운 관련 관리자 2017년 3월 12일 11:38 오전

질문을 좀 더 자세하고 정확하게 해 주세요.

사용자에 의해 삭제되었습니다. shez*** 2017년 3월 23일 4:24 오후

사용자에 의해 삭제되었습니다.

도커 설치가 제대로 된 것인지요? 무슨 에러가 있는 것 같은데.... kyou*** 2017년 4월 12일 11:41 오전

$ docker images time="2017-04-12T11:29:39+09:00" level=info msg="Unable to use system certificate pool: crypto/x509: system root pool is not available on Windows"
REPOSITORY TAG IMAGE ID CREATED SIZE datascienceschool/rpython latest 02a0f8cca2d4 21 hours ago 11.8 GB

답변: 도커 설치가 제대로 된 것인지요? 무슨 에러가 있는 것 같은데.... - docker client version 이슈 stee*** 2017년 4월 13일 2:25 오후

docker client에 이슈가 있어 보입니다. 아직 docker toolbox의 버전업은 되지 않았지만, 아래 명령을 사용하면 일단 boot2docker는 버전업이 되네요.

docker-machine upgrade default

docker image 를 c:가 아닌 d:에 다운받아도 실행이 되나요? dcml*** 2017년 4월 17일 1:37 오후

c:용량이 얼마 없어서 d:에 받아서 사용하고 싶은데요?

답변: docker image 를 c:가 아닌 d:에 다운받아도 실행이 되나요? 관리자 2017년 4월 18일 7:55 오전

도커 이미지 저장 위치는 사용자가 마음대로 변경할 수 없습니다.

도커이미지 다운받다가 unauthorized: authentication required 가 뜹니다 love*** 2017년 4월 23일 5:41 오후

도커 설치 후 이미지를 다운받기 위해 'docker pull datascienceschool/rpython:latest' 라는 명령어를 입력하면
'level=info msg="Unable to use system certificate pool: crypto/x509: system root pool is not available on Windows"
latest: Pulling from datascienceschool/rpython'
이런 메시지가 뜬 뒤 다운로드가 시작이 됩니다. 하지만 다운 중 'unauthorized: authentication required' 이런 메시지가 뜨며 다운로드가 중단되고, 'docker images' 명령어로 이미지 확인을 해보면 아무것도 없는 걸로 나옵니다. 해결할 방법을 알려주시면 감사하겠습니다!