📌Docker란 무엇인가
1차조사
docker란?
- Linux 컨테이너를 매우 가벼운 모듈식 가상 머신처럼 다룰 수 있게 해주는 컨테이너화 기술이며, 컨테이너의 구축, 배포, 복사, 다른환경으로 이동시키는 기능이 있습니다. 어플을 클라우드에 최적화하도록 지원합니다.
- 1차조사 Linux컨테이너란?동일한 운영 체제 커널을 공유하고 시스템의 나머지 부분으로부터 애플리케이션 프로세스를 격리합니다. Linux 컨테이너는 운영 체제에서 기본으로 실행되고 모든 컨테이너 전체에서 운영 체제를 공유하므로 애플리케이션과 서비스를 가볍게 유지할 수 있으며 빠른 속도로 동시에 실행할 수 있습니다. 컨테이너를 사용하면 개발자들의 개발 환경이 각각 다른 상황에서 서버 환경을 재 구축하지 않더라도 어플을 작동시킬수 있습니다. 컨테이너 플랫폼(온프레미스,클라우드,하이브리드) 중 어떤것을 선택해도 컨테이너는 사용자의 요구사항을 충족시킬 수 있습니다.
- Linux 컨테이너 이미지는 이식성과 버전 관리 기능을 제공하여 개발자의 노트북에서 수행하는 작업을 프로덕션에서도 수행할 수 있게 합니다.
도커 개념 재정리
한줄정리 : 도커는 컨테이너 기반의 오픈소스 가상화 플랫폼이다.
- 컨테이너란?
- 공유하기 쉬운 방식으로 어플리케이션과(ex 어플이 독립형인가 기업형인가) 종속 항목을(ex 언어 / 종속성 / 데이터베이스 / 앱서버) 패키징할 수 있는 표준 구성요소이며 휴대가능. 격리. 경량화. 확장성이라는 장점이 있다. 다른 co-worker는 최소한의 작업으로 어플을 실행할 수 있다.
- 이러한 컨테이너를 가능하게 하는 소프트웨어 플랫폼이 Docker 이다.
- 내 운영체제에 도커를 설치하고 내 어플과 종속성을 컨테이너화 한다면, co-worker는 docker명령어를 통해 컨테이너를 실행하고 2번의 장점을 통해 잠재적인 프로세스 실수나 수동작업을 생략할 수 있다.
- 가상머신과의 차이점
- Docker는 게스트 운영체제(Host OS)가 없어서 로드할 필요가 없어 컨테이너 시작시간이 빠르며, 컨테이너를 가상머신보다 더 작고 빠르게 만들며 리소스를 적게 사용한다. '제 컴에서는 되는데요?'를 해결하는 것은 동일하나 솔루션의 방식이 다른 것.
- 도커의 이용방법
- 운영체제에 도커를 설치하고 도커이미지를 빌드방법 설명서-dockerFile 을 통해 도커이미지를 빌드. 도커 이미지란 컨테이너 생성/실행 템플릿이다. (클래스와 실행객체의 관계와 같다) 도커이미지로 도커 컨테이너를 실행한다.
- WSL2(Windows Subsystem For Linux) : Windows10 운영체제에서 리눅스 운영체제의 쉘,시스템을 사용할 수 있도록 지원해주는 기능. Hyper-V(하이퍼바이저)에서 가상머신처럼 부팅되며 기존 가상머신처럼 100% 리눅스 커널과 호환. 가상머신처럼 메모리 할당 / 가상 IP부여(wsl2).
- 쿠버네티스 : 컨테이너를 쉽고 빠르게 배포/확장하고 관리를 자동화해주는 오픈소스 플랫폼으로 구글이 만들어서 현재 수많은 기업에서 사용중
[과제]
Docker를 설치. (2) 설치된 Docker를 이용해서 MySQL DBMS를 설치
이미지 다운은 docker desktop이 편했고
컨테이너 생성은 intelli J 에서 이미지>오른쪽버튼>container 생성이 가장 편했다
docker desktop을 통해 원하는 컨테이너의 terminal을 열면 앞에 #이 붙으면서 바로 컨테이너 이용이 가능했다. 굳이 cmd명령어로 컨테이너에 접근하는 수고가 없어졌다.
컨테이너 생성 후 사용 : https://woonizzooni.tistory.com/entry/Docker-mysql-설치-DB생성-테이블생성-예시
docker start 컨테이너이름
MySQL 컨테이너 쉘 진입 : docker exec -i -t 컨테이너이름 bash
root@컨테이너명:/# mysql -u root -p
Enter password : 비밀번호입력
이후
- DB 조회 & 생성
mysql> SHOW DATABASES;
mysql> CREATE TABLE DB명 (testonly)
- DB선택 & 테이블 생성
mysql> USE DB명 (testonly)
mysql> CREATE TABLE 테이블명(컬럼1, 컬럼2, ...
- 데이터 입력 / 조회 / 삭제 ...
'이외 각종, 몇 개 안되는것들' 카테고리의 다른 글
[git/github] 깃허브에 .idea / imi 빼고 커밋을 해야 하는 이유와 방법 (0) | 2022.03.20 |
---|