상세 컨텐츠

본문 제목

Docker 설치 및 사용법

IT/Simple-Task

by HarimKang 2019. 12. 31. 05:28

본문

Writer : Harim Kang

해당 모든 내용은 edwith+ [부스트코스] 파이토치로 시작하는 딥러닝 기초 강의 중, Docker 환경 설정 부분을 보고 직접 설치하고 다양한 정보를 찾아본 후 정리한 포스팅입니다. https://www.edwith.org/boostcourse-dl-pytorch


Docker란?

Container - based virtualization system

컨테이너 기반의 오픈소스 가상화 시스템을 의미합니다.

다양한 프로그램, 실행환경을 컨테이너로 추상화하고 동일한 인터페이스를 제공하여 프로그램의 배포 및 관리를 단순하게 해 줍니다.

더 많은 효율성을 내기 위하여 가상화를 사용합니다. docker는 하드웨어에 의존적인 부분을 가지고 있는 게스트 OS를 사용하지 않아서 기존의 가상 시스템보다 능력이 좋습니다.

매번 환경 설정 때마다의 불편함을 최소화시키고, 간편하게 빌드하여 환경 설정을 할 수 있다는 장점이 있습니다.


Docker의 간단한 주요 개념

Container

OS를 가상화하여 격리된 공간에서 프로세스가 동작하는 기술로서, 기존의 VM방식에서 프로세스를 격리시켜서 성능 문제를 해결하였습니다.

Image

컨테이너 실행에 필요한 파일과 설정값 등을 포함하고 있는 것으로서, 변하지 않습니다.

같은 이미지에서 여러 개의 컨테이너를 생성할 수 있고 컨테이너의 상태가 바뀌거나 컨테이너가 삭제되더라도 이미지는 변하지 않고 그대로 남아있습니다.


Docker 설치법

Windows 10을 기준으로 설명하겠습니다,

Windows 10 pro는 Docker for Windows를 설치하여야 하고, Windows 7, 8, 10은 Docker toolbox를 설치하면 됩니다. 해당 포스팅에서는 Windows 10 기준이므로, Docker toolbox를 설치해보겠습니다.

Reference : Docker 소개 및 안내 - 오상준

  1. 구글에서 'Docker Toolbox'를 검색합니다.

  2. 다운로드 & 설치 : exe파일을 다운로드하고 누르시면 됩니다.

  3. Docker Quickstart Terminal을 관리자 권한으로 실행합니다.

    • 첫 실행은 꽤 오래 걸립니다. 인내를 가지고 기다립니다.

    • 아래의 고래 모양이 나오면 성공입니다.

  4. 실제로 설치가 잘된 지 확인을 위하여 아래의 명령어를 입력합니다.

     $ docker run hello-world

    아래의 문구가 나오면 정상 작동입니다.


Docker 사용법

Docker 이미지 다운로드

hub.docker 에서 도커 이미지를 받아서 컨테이너를 사용할 준비를 하면 됩니다.

원하는 컨테이너를 검색하여 찾아보면 된다.

$ docker pull [이미지 종류]

이미지를 다운로드하였다면, 도커 이미지를 확인하는 코드를 입력해봅시다.

$ docker images

Docker 컨테이너 실행하기

Docker 이미지로부터 컨테이너를 생성하여 실행합니다.

$ docker run -i -t --name [원하는 이름] [실행하고자 하는 이미지] /bin/bash
# /bin/bash명령어를 입력해주어야 실행 가능

위의 코드를 통해서, 컨테이너를 만들어서 root 계정으로 내부 쉘에 접속하였습니다. docker run 명령어는 최초 한 번만 실행하시면 됩니다.

docker를 실행하는 명령어는 아래와 같습니다.

docker run [OPTIONS] IMAGE[:TAG|@DIGEST] [COMMAND] [ARG...]

 

-d detached mode
-p 호스트와 컨테이너의 포트를 연결 (Forwarding)
-v 호스트와 컨테이너의 디렉토리를 연결 (마운트)
-e 컨테이너 내에서 사용할 환경변수 설정
–name 컨테이너 이름 설정
–rm 프로세스 종료시 컨테이너 자동 제거
-it -i와 -t를 동시에 사용한 것으로 터미널 입력을 위한 옵션
–link 컨테이너 연결 [컨테이너명:별칭]
root@[고유번호]:~#

완전히 컨테이너를 끄고 싶다면 exit 명령어를 입력하면 됩니다.

root@[고유번호]:~# exit

아래의 명령어를 통하여 현재 docker 컨테이너가 켜져 있는지를 확인할 수 있습니다.

$ docker ps # 실행중인 컨테이너 목록만
$ docker ps -a # 모든 컨테이너 목록

아래의 명령어를 통하여 명명한 컨테이너를 실행할 수 있습니다.

$ docker start [컨테이너 명명 이름]

컨테이너가 켜진 것과 터미널 접속은 다릅니다. 터미널 접속은 아래의 명령어와 같습니다.

$ docker attach [컨테이너 명명 이름]

컨테이너를 켜 둔 채로 터미널에서만 빠져나오려면 [Ctrl + p + q]를 사용하면 됩니다.

컨테이너를 제거하려면 아래와 같은 명령어를 사용해 줍니다.

$ docker rm [OPTIONS] CONTAINER [CONTAINER...]

Git을 활용한 Docker 환경 설정

Git Clone

root@[고유번호]:~# git clone [클론하고자 하는 레포지토리 주소]

Docker Console에서 붙여 넣기는 Ctrl + v 후, 마우스 오른쪽 클릭을 해주면 됩니다.

클론 하여 내려받은 레포지토리 내부로 들어가 보겠습니다.

root@[고유번호]:~# cd [레포지토리 이름]
root@[고유번호]:~/[레포지토리 이름]#

필수적인 패키지를 설치해줍니다.

root@[고유번호]:~/[레포지토리 이름]# pip install --upgrade pip
root@[고유번호]:~/[레포지토리 이름]# pip install -r requirements.txt

아래의 명령어는 jupyter notebook를 실행하는 명령어입니다.

root@[고유번호]:~/[레포지토리 이름]# jupyter notebook --ip 0.0.0.0 --allow-root

실행 시 나오는 token을 [IP주소]:8888에 접속하여 입력하면 끝이 납니다.

jupyter notebook 종료는 Ctrl + c입니다.

Docker Cheat Seat

Reference

'IT > Simple-Task' 카테고리의 다른 글

[Python] 데이터 csv 저장  (0) 2020.06.16
[Python] JSON 다루기 기초  (0) 2020.05.22

관련글 더보기

댓글 영역