티스토리 뷰

컴공-환경설정/docker

0. docker 설치 하기

잘가열b 2020. 5. 21. 04:11

본 글은 ubuntu에 도커를 설치하는 내용을 담고 있음

환경은 아래와 같음

- ubuntu 18.04

- docker : 19.03

 

1. 개요

 학교 gpu 서버를 사용중인데, 사용하는 사람이 워낙 많다보니 프로젝트를 제대로 실행하기가 어려운 상황이 많았고, 중간에 누가 잘못하면 프로그램 실행이 중간에 끊기는 기분좋은 상황이 자주 발생하기 때문에, 확실성이 필요한 서버가 있어야한다는 생각하나로 랩실의 정상적인 컴퓨터 하나를 조립해서 그래픽을 깔고 서버로 이용해야겠다는 생각이 들었음.

 

 이에 따라 ubuntu를 설치하고 그래픽, docker를 설치해서 conda 환경을 하나 만드는 것을 목적으로 하고, 서버 관리자의 경험을 쌓는 것을 부가적인 목적으로 했음

 

 먼저 우분투 18은 누구나 설치 가능할것이고, 데스크탑, 고정ip 로 진행했으며 이 카테고리는 도커 설치와 컨테이너 생성, 이미지 생성, 관리 에 관한 글만 올릴 예정임.

 

 도커의 개념은 주변에도 좋은 글이 많으니깐 굳이 지금 시간들여 작성하지는 않고 간단히 왜 사용하는지에 대해서 만 언급하고자함.

 

 2. 도커 의의

 이전 서버는 가상환경을 만들거나 실제로 os를 설치해서 환경을 구축하는 방식으로 진행했음. 하지만 이는 환경의 영향을 많이 받고, 가상환경을 돌려야하는 경우에는 너무 무거운 단점이 존재했음.

 이후 도커의 container 개념이 도입하면서 도커의 장점이 너무나 부각되어서 누구나 도커를 사용하는 시점이 나옴.

 

 도커는 container라는 개념을 이용해 구축된 이미지에서 container를 만들고. 이를 서버로 사용하는 식으로 사용함.

 이것의 장점은 가볍고 빠름. 실제로 가상머신 하나 만드는데 실제 os를 다 넣어야되기 때문에 웬종일 걸리고 오류 한번 발생하면 재설치하는등 엄청난 비용이 발생했는데, 도커는 하나 만드는데 길어봤자 5분 걸리고, 환경 설정하는데만 시간이 비슷하게 걸리는 정도임.

 추가적으로 이미지의 가장 강력한 장점은 환경에 영향받지 않는점임.

 

 무슨 소리냐면 도커만 있다면, 어디서든 도커의 이미지로부터 컨테이너를 생성해서 해당 서버의 환경을 구축할 수 있음. 예를들어 어떤 파이썬의 프로그램을 돌리려면 내 venv에 해당 모듈을 모두 설치해줘야하고, 심하면 버전이 맞지않아 돌지 않고, 모든걸 맞춰도 다른 이유로 돌아가지 않는 불상사가 발생했음.

하지만 도커만 있다면, 성공적으로 구축된 이미지를 하나 이용해서 컨테이너를 만드는 거 까지만 성공하면 무조건 그 프로그램을 돌릴 수 있는 환경을 만드는 것이기 때문에 매우 획기적이고 좋은 아이디어임.

 

이런 이유로 많은 기업에서 도커를 사용하는 추세였고, 필자도 도커의 필요성은 알았으나 당장 익힐 필요가 없어서 공부를 게을리하고 있다가, 우연한 기회에 도커 사용에 성공해서 이를 추가적으로 개발하기 위해 본 글을 작성중임.

 

 3. 이미지와 컨테이너

 많은 사람들이 도커를 사용하다가 좌절하는 이유는 바로 이미지, 컨테이너, 생성과 접속의 차이때문임.

 필자도 처음에는 헷갈렸으나, 이론을 천천히 읽고 정신차려보니 다시 사용할 수 있었고, 그 이후에 환경설정에서 자꾸 오류가나서 포기를 했었는데, 단순히 서버 생성하는 것은 문제가없어서 도커를 다시 사용중임.

 

 도커의 방식은 어떤 틀을 기준으로 계속 빵을 찍어내는 붕어빵과 비슷함. 이미지에는 해당  환경에 반드시 필요한 내용들이 포함되어있고, 도커 사용자는 이 이미지를 pull 한 다음, 컨테이너를 생성하는 것만으로도 쉽게 서버를 만들 수 있음.

 여기서 문제는 컨테이너 생성과 접속인데, 엄청난 차이가 있음.

 

 생성은 단순히 어떤 이미지를 기반으로 컨테이너를 만드는 것(create, run)이고 접속은 그 컨테이너를 사용하는 것(run, attach, exec)을 의미함.

 가장 쉬운 예제로 hello-world라는 이미지가 있는데, 이 컨테이너를 생성하면 단순히 컨테이너를 이용할 수 있는 컴퓨터를 만든것이고. 사용하기 위해서는 run이나 접속을 통해 컨테이너에 들어가야함.

 또한 컨테이너 종류마다 다른데, 컨테이너는 함수처럼 어떤 명령을 실행시킴.

 예를들어서 hellow-wolrd는 단순히 출력문 하나를 내보내는 것이 모든 명령이기 때문에 이를 아무리 실행시켜도 서버로 쓸수 없는것임.

반면에 ubuntu 이미지를 사용하고자한다면 run 한뒤에 접속을 해서 실제 서버처럼 사용해야함.

 

 이 2 부분(생성, 컨테이너 종류)이 도커초반에 가장 헷갈려하는 부분이고, 이 부분만 잘 잡는다면 더 어려운 부분이 당신들을 기다리고 있으니 조심만 하면됨.

 

4. 설치

 서론은 이만 줄이고 이제 본격적으로 도커 설치에 대한 부분을 다루고자함

 사실 설치는 별거 없음

 

https://docs.docker.com/engine/install/ubuntu/

 

Install Docker Engine on Ubuntu

To get started with Docker Engine on Ubuntu, make sure you meet the prerequisites, then install Docker. Prerequisites OS requirements To install Docker Engine, you need the 64-bit version of...

docs.docker.com

도커 공식 문서에서 하라는대로 apt 등록, 키 등록, ce 설치 등을 하면됨.

 

ce 는 자바처럼 에디션 버전이고, ce가 가장 흔하고 일반적이기 때문에 초심자라면 ce버전을 설치하면됨.

 

설치가 완료되면 version 명령어를 통해 확인을 할 수 있음.

systemctl 명령어를 통해 도커가 돌아가는것이 확인되면 이제 사용하면됨.

 

이후 이미지 및 컨테이너 부분은 다음 글에서 다루는 내용임.

 

5. 결론

 사실 도커 자체가 어렵지는 않았는데 항상 그렇듯이 환경에서 너무 걸리는것이 많고, 네트워크(가상머신의 bridge 등)에서 막혀가지고 좌절했는데, 이번에는 운이 좋게 모든게 잘돼서 좋은 경험을 많이 해본듯함.

 

만약에 다른 오류가 발생한다면 차라리 포맷하고 다시 시작한 후에 잘 정리된 글을 구글링하는 것이 가장 좋은 방법인듯 함.

공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
TAG
more
«   2024/05   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
글 보관함