프로그래밍/도커 16

[도커] 6. 도커 명령어 2

이번시간엔 도커를 실행시킬때 사용되는 여러가지 옵션들에 대해 살펴볼것이다. docker run을 사용해서 우분투 이미지를 다운받아 컨테이너화해서 실행시켰다. 우선 ubuntu:latest 라는 문구가 눈에 띈다. 그냥 이미지 이름만 입력하여 다운받으면 자동적으로 최신버전의 이미지를 다운받는다.(latest version) 특정 버전의 이미지를 다운 받기 위해서는 "{이미지이름}:{버전}"형식으로 입력하면 된다. 지난시간과 마찬가지로 우분투가 시작하자마자 끝났기때문에 docker ps 에는 나오지 않고 docker ps -a에 나오는 모습을 볼 수 있다. 이를 방지하기 위해 아래의 명령어를 입력한다. docker run -it ubuntu 이는 우분투 컨테이너와 직접 상호작용을 한다는 의미이다. 이제 우분..

[도커] 5. 도커 명령어 1

지난시간에 docker run 명령을 통해 hello-world컨테이너를 실행시켰다. run 명령어는 로컬에 이미지가 있는지 확인하고 없으면 원격 저장소에서 다운받고 컨테이너를 만들고 실행까지 시켜준다. 사실 run은 pull, create, start명령어로 분해할 수 있다. docker pull ubuntu pull명령어로 우분투 이미지를 다운만 받게 되었다. 다운받은 이미지를 확인하려면 다음 명령어를 입력한다. docker images 방금 다운받은 우분투 이미지가 들어왔다. 이제 이미지를 컨테이너화 해야한다. docker create ubuntu docker ps -a ps -a는 컨테이너 목록을 보는 명령어이다. 컨테이너를 보면 여러가지 요소가 있다. CONTAINER ID : 컨테이너 고유 I..

[도커] 4. Hello Docker

프로그래밍 세계에서는 언어든 라이브러리든 Hello world를 출력하는 것부터 시작한다. 이번 시간에 도커를 사용해서 Hello world를 실행해보도록 한다. 실행방법은 간단하다. docker run hello-world 이 화면이 나오면 성공한 것이다. 실행 과정을 크게 3부분으로 나눠보았다. 빨간 부분은 hello-world 이미지를 로컬에서 찾을 수 없어서 다운받겠다는 내용이다. 파란 부분은 실제 다운받는 과정이며 pull complete앞에 있는 2db... 로 이루어진 문자가 레이어를 나타낸다. 다운 후 유효성 검증을 거친다. 노란 부분은 다운이 완료된 이미지를 실행하여 보여주는 부분이다. 다운받은 이미지를 확인하기 위해 다음 명령어를 입력한다. docker images 방금 다운받은 hel..

[도커] 3. 도커 구조

시대가 지날수록 배포유형이 달라지고 있다. 처음에는 하나의 os에서 직접 앱을 여러개 작동 시키는 방법이었고, 이를 가상화 하여 VM상에서 배포하는 방식을 거쳐 컨테이너 기반의 배포방식으로 발전하였다. 초기 배포방식은 App 하나가 다운되면 시스템 전체가 다운되는 문제가 있었다. 그래서 하드웨어를 가상으로 분할하여 별도의 OS에서 작동하는 VM방식으로 배포를 진행해왔다. 이 경우 8코어 cpu를 2코어 cpu 4개로 나누는 것처럼 사용하는데 이런경우 VM을 4개만 실행해도 자원 점유에 문제가 생긴다. 그래서 컨테이너 기반의 배포방식이 떠오르게 되었다. Host의 자원을 사용하며 여력이 된다면 컨테이너를 많이 띄울 수 있고 하나의 컨테이너는 다른 컨테이너에 영향을 미치지 않는다. 마이크로서비스를 지향하는 ..

[도커] 2. 도커 시작하기

이번시간에 도커를 설치하고 실행해보려고 한다. 도커는 기본적으로 리눅스 커널에서 돌아가기 때문에 리눅스가 필요하다.(window를 위한 docker desktop도 나왔다고 한다.) 기존 사용중이던 리눅스는 이미 설치가 돼 있기 때문에 aws ec2 프리티어 인스턴스를 사용하여 진행할 예정이다. 도커를 설치하기 위해 다음 명령어를 입력한다. sudo apt install -y docker.io -y 옵션은 입력하는 부분이 나오면 y를 선택해준다. 도커가 제대로 설치됐는지 확인하는 방법은 버전을 확인하면 된다. docker --version 도커 명령어 중 하나를 실행해보고자 한다. 다음 명령어는 실행중인 컨테이너 목록들을 보여준다. docker ps 권한이 없다는 메시지가 나온다. sudo를 사용해 임시..

[도커] 1. 도커란 무엇인가

도커는 컨테이너 기반의 오픈소스 가상화 플랫폼으로 알려져 있다. 처음에는 이것이 쉽게 와닿지 않았다. 그래서 좀 쉬운 말로 설명하자면 내가 개발한 환경을 이미지 형태로 저장하여 다른 서버에서도 같은 환경으로 애플리케이션을 작동할 수 있도록 해준다. 몇 가지 사용 예시를 들어보자 1. 개발 pc와 배포 pc의 분리 보통 개발은 로컬 pc에서 진행하고 배포는 로컬 또는 클라우드 pc에서 진행한다. 대부분은 개발과 배포를 같은 곳에서 하지 않을 것이다. 버전에 민감한 라이브러리(TF는 1.x와 2.x가 호환되지 않는다!)들은 서로 버전을 맞춰줘야 하는데 이 라이브러리가 많아지면 관리하기 힘들 것이다. nodejs의 package.json이나 python의 anaconda 같은 패키지 관리 기능을 사용하여도 되..