도커 및 도커 컴포즈 소개
도커
- 컨테이너 기반의 가상화 플랫폼
- 컨테이너 기반의 가상화 vs 하이퍼바이저 기반의 가상화(OS가상화)
컨테이너
- 논리적인 공간(컨테이너)을 만들어 다양한 어플리케이션을 설치해 하나의 서버처럼 사용할 수 있는 패키지
- 즉, 물류에서 사용하는 컨테이너처럼 하나의 공간에 다양한 물건을 담아 옮기고, 각 서버에서 컨테이너를 구동해 그 안에 존재하는 어플리케이션을 별도의 설정없이쉽게 사용할 수 있다
가상머신과 컨테이너의 차이
- 시스템 구조적으로 컨테이너는 한 OS를 공유하는 구조이고 VM은 각각의 OS를 띄워야하는 구조이기 때문에 컨테이너가 빠르다. 하지만 VM은 사용자가 윈도우를 사용하고 있더라도 새로운 GuestOS를 설치할 때 리눅스 OS를 설치해서 사용할 수 있지만, 컨테이너는 리눅스 OS에서 윈도우용 컨테이너를 사용할 수 없다. 또한 보안적으로 VM은 보안적으로 문제가 생겨도 각각의 VM이 분리되어 있기 때문에 서로 피해가 가지 않지만 컨테이너는 보안적으로 문제가 생길 수 있다.
- 일반적으로 한 서비스를 만들 때 한가지 언어를 사용하여 여러 모듈들이 한 서비스로 같이 돌아간다. A와 B모듈은 괜찮은데 C모듈에 부하가 많이 가는 상황이면 VM을 하나 더 생성해서 띄워야 한다. 반면 컨테이너는 한 서비스를 만들 때 모듈별로 쪼개서 각각의 컨테이너에 담고 그 모듈에 최적화 된 개발 언어를 사용한다. 쿠버네티스는 여러 컨테이너들을 한 파드라는 개념으로 묶을 수 있고 한 컨테이너만도 파드에 담을 수 있는데, 한 파드가 하나의 배포 단위이다. 내가 필요한 파드만 확장할 수 있다. 컨테이너는 시스템을 모듈별로 쪼개서 개발을 했을 때 큰 효과를 발휘할 수 있다.
도커 허브
- 도커에서 제공하는 이미지 저장소
- https://hub.docker.com
도커 컴포즈
- 다중 컨테이너를 정의하고 실행하기 위한 도구
- YAML 파일을 사용하여 다중 컨테이너를 구성함
- https://docs.docker.com/compose
도커를 이용한 개발 환경 구성하기
도커 설치
- https://www.docker.com/products/docker-desktop/ 홈페이지에 접속해서 자신의 OS에 맞는 Docker Desktop를 설치한다.
- 설치가 완료되면 아래 명령어를 통해 설치가 제대로 됐는지 확인한다.
- docker -v
MySQL 도커 이미지 다운로드
- https://hub.docker.com/
- docker pull mysql:{version}
MySQL 도커 컨테이너 생성 및 실행
- docker run --name mysql-sample-container -e MYSQL_ROOT_PASSWORD=<password> -d -p 3306:3306 mysql:{version}
- 현재 실행중인 도커 컨테이너 목록 출력
- docker ps -a
MySQL 도커 컨테이너 접속
- docker exec -it {도커 컨테이너 이름} bash
MySQL 접속
- mysql -u root -p
본 포스팅은 패스트캠퍼스 환급 챌린지 참여를 위해 작성하였습니다.
'패스트캠퍼스 강의' 카테고리의 다른 글
[6일차] 50일 포트폴리오 챌린지 (0) | 2023.08.13 |
---|---|
[5일차] 50일 포트폴리오 챌린지 (0) | 2023.08.12 |
[4일차] 50일 포트폴리오 챌린지 (0) | 2023.08.11 |
[3일차] 50일 포트폴리오 챌린지 (0) | 2023.08.10 |
[2일차] 50일 포트폴리오 챌린지 (0) | 2023.08.09 |