본문 바로가기

컨테이너/Docker

(6)
[Docker] 컨테이너 기술과 발달의 역사 쿠버네티스를 공부할때 항상 도커를 먼저 공부해봐라. 라는 이야기를 들을때가 많다. 그 이유가 무엇일까라는 고민을 했었고, 그에 대한 내 생각을 리서치 결과를 토대로 적어보려고 한다. 내가 근삼이님의 블로그를 되게 자주 보는데 글을 너무 정성껏 쓰셔서 읽다보면 나도 모르게 기분이 좋다. https://ykarma1996.tistory.com/192 컨테이너의 구조와 오픈소스의 생태계에 관한 리서치(feat. 도커는 적폐인가?) 컨테이너 이미지의 빌드 및 배포에 관한 성능을 개선하기 위해 리서치를 하다보니, 혼자 알기에 너무 재밌는 배경들이 많아서 정리해 보기로 했다. 오늘은 컨테이너와 이미지의 구조 및 원리(특 ykarma1996.tistory.com 이번에도 컨테이너 기술에 대해서 mount namesp..
[도커 강의] (5). 도커 컴포즈 사용법 1. 도커 왜쓸까? 개발 환경 구성이라는 어려움 새 프로젝트를 시작하거나 기존 프로젝트에 참여한 후 가장 먼저 하는 일은 바로, 개발 환경 구성일 겁니다. 파이썬Python을 사용하는 프로젝트라면 보통 pip 명령과 requirements.txt 파일을 사용해 의존 패키지를 설치합니다. 거의 언제나 하나 이상의 프로젝트를 진행해야 하니까, 의존성이 섞이지 않게 virtualenv도 사용합니다. $ sudo apt-get install python3-venv $ python3 -m venv venv $ source venv/bin/activate [ requirements.txt ] Django==3.1.3 djangorestframework==3.12.2 mysqlclient==2.0.1 django-m..
[도커 강의] (4). 도커파일 만들어보기 1. 도커파일이란? 지금까지는 단순히 공식 허브에 이미지를 다운받아서 컨테이너를 생성하고 그 안에서 각종 도구를 사용하고나 파일을 생성하는 과정을 진행했었습니다. 하지만, 이렇게 되면 매번 애플리케이션을 동작하는 환경을 구성하기 위해 패키지를 설치하고 환경설정하는 과정을 반복해야 합니다. 이런 문제를 간소화하기 위해서 Dockerfile이란게 존재합니다. Dockerfile은 컨테이너에 설치해야하는 패키지, 소스코드, 명령어, 환경변수설정 등을 기록한 하나의 파일입니다. 그리고 이를 빌드하면 자동으로 이미지가 생성됩니다. 이렇게 되면 앞으로는 애플리케이션 빌드 및 배포를 자동화할 수 있게됩니다. 기본적인 예제 부터 살펴보겠습니다. # 1. 우분투 설치 FROM ubuntu:18.04 # 2. 메타데이터 ..
[도커강의] (3) 도커의 여러가지 기능들을 확인해보자. 1. 컨테이너를 외부에 노출 컨테이너도 가상머신과 마찬가지로 가상 ip 주소를 할당 받습니다. 기본적으로 도커는 172.17.0.x 의 IP를 순차적으로 할당합니다. 하지만 이 가상 ip주소로는 우리 로컬pc의 환경에서 통신할수 없습니다. 다만 , 컨테이너의 포트를 호스트의 포트와 바인딩해 연결할수 있게 설정 할수 있습니다. ( -p 옵션 ) -p 옵션에 대해서 알아보기 위해 컨테이너에 아파치 웹서버를 설치하고 외부에 노출해보자. $ docker run -i -t --name mywebserver -p 80:80 ubuntu:14.04 -p 옵션을 통해 내 로컬 pc의 80번 포트를 컨테이너의 80번 포트와 포트포워딩 했다. 즉 localhost:80으로 접속하게 되면 container의 80번 포트로 ..
[도커 강의] (2)도커 사용법을 알아보자 1.컨테이너 생성 ❤️1.1 Docker run $ docker -v Docker version ... $ docker run -i -t ubuntu:14.04 하지만 다음 옵션 -i -t 로 컨테이너를 만들경우 들어갔다가 exit를 하는 순간 Docker 컨테이너는 종료된다. # docker run -itd --name kpkim ubuntu:14.04 단한줄의 명령어로 컨테이너를 생성 / 실행과 동시에 컨테이너 내부로 들어가는 명령어 -i 옵션 (상호 입출력) -t tty를 활성화(bash) 사용 -d background 실행 , exit시 컨테이너 종료 안됨 --name 컨테이너의 Name을 정함 $ docker exec -it kpkim /bin/bash root@bff498040cde:/# 컨테..
[도커 강의] (1) 도커 설치 (*리눅스/ *윈도우) 1. Redhat Linux 가상환경에 도커 설치하기 도커에 대한 학습을 하기 이전에 준비할 것은, Linux나 Window OS가 필요하다. 우선 Linux에 도커를 설치하는것이 조금 더 쉽고 번거롭지 않기 때문에 linux에 도커 엔진 설치를 해보겠다. [root@localhost ~] uname -r > 3.10.0-1127.19.1.el7.x86_64 [root@localhost ~] yum install -y yum-utils [root@localhost ~] yum-config-manager \--add-repo \ https://download.docker/com/linux/centos/docker-ce.repo [root@localhost ~]yum install -y docker-ce [..