도커

DevOps

Vagrant vs. Terraform/Docker(베이그란트와 테라폼, 도커 비교)

예전에 Terraform 글을 쓰면서 vagrant와 terraform을 가볍게 비교하고 넘어간 적이 있다. Vagrant 와 같은 도구는 데모용 가상화 환경을 구축하기 위해 존재 하지만 프로덕션 환경과 더 밀접하게 일치하는 실제 인프라에서 소프트웨어를 데모하는 것은 여전히 ​​매우 어렵다는게 요지였는데, 이는 Vagrant가 소수의 버추얼머신을 사용하는 개발 환경을 위해 개발된 것이고, Terraform은 실제 인프라를 관리하기 위해 설계/개발된 것이기 때문이다. [DevOps/02]Terraform Use cases 테라폼을 사용하는 이유 테라폼을 사용하는 이유 1. Heroku App Setup - codify the setup required for a Heroku application, ensu..

DevOps/Docker

[도커]도커 이미지 만들기(Dockerfile, commit)

1. 도커 이미지 도커 이미지는 프로그램을 실행하는데 필요한 설정과 소프트웨어 종속성(프로그래밍 언어 런타임 및 기타 소프트웨어 라이브러리의 특정 버전 등)을 가지고 있다. 여러개의 레이어로 되어있다. 도커 이미지는 여러개의 레이어가 쌓여서 만들어진다. 베이스 이미지는 이미지의 기반이 되는 부분이다. 이미지에 무언가가 추가 되면(변경 사항이 생기게 되면) 레이어가 추가되게 되는데, 이를 레이어 캐싱이라고 한다. 2. 도커 이미지 만들기 도커 이미지는 도커 파일을 사용하거나 커밋을 사용하면 만들 수 있다. 🔽 예제 container name: python-os image name: centos:7 python package install 후 /app dir에 마운트 working dir, volume 모두..

DevOps/Docker

[도커]도커에서 레디스 사용하기

뉴스를 돌아다니다가 Redis가 나와서 머리를 싸맸다. '분명 어디선가 들어본 적 있는 것 같은데...'하고 고민하다가 깨달았다. 가장 최근으로는 두 달 쯤 전에 2021년 4월 DBMS 인기 순위라는 글을 작성하면서도 봤고, 학부 데이터베이스 강의를 들을 때 인메모리 데이터베이스로 몇 번 언급 됐다. Redis(레디스)는 Remote Dictionary Server의 약자로, "키-값" 구조의 비정형 데이터를 저장하고 관리하기 위한 오픈 소스 기반의 비관계형 데이터베이스 관리 시스템(DBMS)이다. 4월에도 Key-Value Database 중에서 1위였는데, 이번 달도 마찬가지로 1위다. 레디스를 언제 사용하면 좋은지는 이 브런치 글에 잘 정리되어 있다. 레디스(Redis)는 언제 어떻게 사용하는 게..

DevOps/Docker

[도커]네트워킹

도커는 운영체제 수준 가상 소프트웨어를 활용하여 사용자가 모든 라이브러리 종속성이있는 도커 컨테이너에서 애플리케이션을 개발, 배포, 관리 및 실행할 수 있도록 지원하는 플랫폼이다. 도커 컨테이너는 애플리케이션을 실행하는 데 필요한 모든 종속성 (프레임 워크, 라이브러리 등)을 포함하는 독립 실행형 패키지다. 결국 프로세스를 분리해 독립적으로 실행될 수 있도록 하는 독립성이 도커의 본래 목적이다. 도커에서 네트워크는 도커 컨테이너에게 완전한 격리를 제공하기위해 사용된다. 도커 네트워킹의 장점은 아래와 같다. 1. They share a single operating system and maintain containers in an isolated environment. - 단일 운영 체제를 공유하고 격리된..

DevOps/Docker

[도커]데이터 관리(Bind Mount, Volume, Tmpfs Mount)

0. 데이터 관리 도커 튜토리얼(링크)에서는 간단한 ToDo 애플리케이션*의 빌드, 업데이트, 공유를 직접 해보며 도커의 컨셉을 이해한다. 튜토리얼 Part 2-4를 수행하면서 작성한 ToDo 애플리케이션을 실행할 때마다 초기화된다. 튜토리얼 Part 5인 Persisting the DB(링크)에서는 데이터를 영구적으로 저장하는 두 가지 방법(Bind Mount, Volume)을 소개한다. 이미지는 여러 개의 레이어로 이루어져 있다. 기본적으로 이미지로 컨테이너를 실행해 파일을 생성하거나 삭제하면 새로운 레이어를 만들어 내용을 저장한다. 이 내용은 컨테이너와 함께 삭제된다(⭐컨테이너의 휘발성). 컨테이너가 삭제된다고 내부의 중요한 데이터까지 삭제되면 안 되므로 사용하는 두 가지의 대표적인 방법이 Bind..

DevOps/Docker

[도커]명령어 모음

도커 사용하기 Usage: docker [OPTIONS] COMMAND 도커는 서버를 코드 형태로 정의해서 이미지를 만들고, 이미지를 사용해서 컨테이너를 실행한다. 따라서 일관성 유지와 버전 관리가 편하다. (1) 도커 이미지 🐋 도커 이미지 여러개의 레이어로 구성됨 각 레이어는 Read Only 이미지로 컨테이너를 실행해서 파일을 생성하고 삭제할 때 새로운 레이어를 만들어 내용 저장 → 컨테이너와 함께 삭제되는 런타임 데이터임 → 영구적으로 저장하려면 볼륨(Bind Mount, Volume)을 사용해야 함 디스크에 저장된 상태 프로그램을 실행하는데 필요한 설정과 소프트웨어 종속성(프로그래밍 언어 런타임 및 기타 소프트웨어 라이브러리의 특정 버전 등)을 가지고 있다. 🐋 관련 명령어 (2) 도커 컨테이너..

DevOps/Docker

[도커]도커 이미지와 도커 컨테이너

도커는 대표적인 컨테이너 기술이다. 나는 회사에서 모 프로젝트를 진행하면서, 온갖 가상머신에 각종 프로그램을 실행하기 위한 설정을 하고 라이브러리를 설치하면서 컨테이너 기술에 관심을 가지게 됐다. 컨테이너 GCP에서 컨테이너의 개념과 이점을 잘 설명한 글(cloud.google.com/containers/?hl=ko)이 있다. 일부를 발췌하면 아래와 같다. 컨테이너와 VM의 공통점 가상 머신(VM)은 호스트 운영체제에서 구동되며 그 바탕이 되는 하드웨어에 가상으로 액세스하는 Linux, Windows등의 게스트 운영체제를 의미한다. 컨테이너는 가상 머신과 마찬가지로 애플리케이션을 관련 라이브러리 및 종속 항목과 함께 패키지로 묶어 소프트웨어 서비스 구동을 위한 격리 환경을 마련해준다. 컨테이너와 VM의 ..

박한결
'도커' 태그의 글 목록