DevOps 13

[Docker] VM가상화와 컨테이너 가상화의 차이

VM가상화와 컨테이너 가상화의 차이 두 가상화 모두 실행하고자 하는 애플리케이션의 프로세스 및 종속 요소와 소스 등을 패키지, 즉 이미지화 하여 HostOS와 격리된 환경을 제공한다. VM 가상화는 호스트 운영체제와 같이 별도의 GuestOS를 두고, 원하는 애플리케이션을 설치하는 하드웨어 수준의 가상화를 구현 Host의 하드웨어 리소스 자원을 각 GuestOS가 공유 컨테이너 가상화는 VM가상화에 비해 경량이면서 호스트 운영체제의 커널을 공유하는 운영체제 수준의 가상화를 구현 Host운영체제의 커널을 공유하는 Docker Engine이 존재함. 더 빠르고 경량 VM은 OS의 부팅과정이 필요하다. 부트로더가 커널을 호출하고, Systemd 데몬이 호출되는 등의 과정이 필요하지만, 컨테이너는 프로세스이기 ..

DevOps 2024.04.08

[Docker] 컨테이너 기술이란

사이드 프로젝트 [보틀노트]에서 docker-compose.yaml을 작성해서 redis와 mysql을 컨테이너화해서 구성하는 작업을 하고 있다. 구글링해서 docker-compose.yaml파일 간단히 긁어와서 테스트 몇번 하면 끝나는 거지만, 도커라는 기술에 대해서 제대로 알고 싶어졌다. 컨테이너 기술은 요즘 대세인 MSA의 근간이 되는 기술이기 때문에 기초를 탄탄하게 알아야 한다는 생각이 들어서, 패스트캠퍼스 강의를 듣고 핵심 내용을 정리한다. 컨테이너 기술이란 컨테이너는 애플리케이션을 언제든 실행 가능하도록 필요한 요소를 하나의 런타임 환경으로 패키징한 논리적 공간을 말한다. 애플리케이션과 종속항목을 하나로 묶어서 실행하게 해주는 운영시스템을 가상화한 경량화된 격리 프로세스이다. 핵심은 바로 경량..

DevOps 2024.04.08

[도커] 컨테이너를 재시작하면 MySql 테이블이 사라지는 오류

1. 도커를 재시작했더니 MySql 테이블이 사라졌다. 남궁성의 스프링의 정석을 들으면서 게시판 CRUD를 구현하는 연습을 하고 있었다. 처음에 DB를 연결할 때, 로컬에 MySql을 설치해서 jdbc 드라이버로 연결하는 방식으로 강의에는 나와 있었다. 하지만 나는 이 참에 '도커'라는 것을 한번 써보고 싶어져서 도커라는 놈을 설치하고 그 위에 이미지를 설치하고 어찌 저찌해서 MySql을 설치하고 사용중이었다. 나는 맥북을 사용중인데, 노트북 특성 상 화면을 닫기만 하면 자동으로 잠자기 모드에 들어가니 전원을 끌 일이 잘 없었다. 그런데 어제 갑자기 컴퓨터를 재부팅하고 도커를 run했는데, 테스트 케이스들이 줄줄이 에러가 나는 대참사가 발생했다. 원인은 가만히 있던 db의 테이블이 사라져있었다. 이 놈의..

DevOps 2023.08.17