Docker
컴퓨터에서 어떤 어플리케이션을 만들기 위해서는 운영체제에 웹 서버나 데이터베이스 같은 소프트웨어를 깔아야 한다.
이러한 소프트웨어를 설치하는 일은 귀찮고 까다로운 일이다.
그래서
한 대의 컴퓨터 안에서 각각의 앱을 실행시키고 각각의 앱은 격리된 환경에서 실행된다.
이 때 운영체제가 설치된 컴퓨터 : Host
host에서 실행되는 각각의 격리된 실행 환경 : Container
각각의 container에는 운영체제 전체가 설치된 게 아니라
앱을 실행하는데 필요한 라이브러리와 실행파일들만 포함되어 있음
이러한 장점
1. 이미 존재하는 운영체제를 공유하니까 무엇인가를 설치할 필요 없음
2. 운영체제를 하나만 사용하니까 속도 개선
3. 운영체제 다시 설치할 필요없다 시간 절약
4. 저장용량 절약
리눅스 운영체제에는 이런 앱 실행 방법이 내장되어 있다.
이것이 Container.
컨테이너 기술을 쉽게 사용할 수 있게 해주는 것이 Docker.
도커 설치
docker 는 리눅스 운영체제 기술이다.
- 따라서 docker 위에서 돌아가는 컨테이너 그리고, 컨테이너 안에서 돌아가는 앱들은 리눅스 운영체제에서 돌아가는 앱이다.
자신의 컴퓨터가 리눅스가 아니더라도 도커 사용할 수 있다.
- 가상머신에 리눅스 운영체제를 깔면 그 위에서 도커와 같은 컨테이너 기술 사용가능
- 도커가 알아서 가상머신을 만들어주고 그 위에 리눅스를 설치해준다.
이미지 pull
앱 스토어와 같이 원하는 프로그램 즉, 이미지를 선택한다.
프로그램을 실행하면 프로세스가 동작한다.
하나의 프로그램 안에 여러 프로세스가 있는 것처럼, 하나의 이미지에서 여러 컨테이너를 만들 수 있다.
Docker 네트워크
두 대의 컴퓨터가 있다.
하나에는 웹 브라우저. 다른 곳에는 웹 서버가 있다.
웹 브라우저에서 주소를 입력하고 엔터를 누르면, 웹 브라우저는 80번 포트로 example.com에 접속한다.
80번 포트에는 웹서버가 대기 중이기 때문에 웹 서버로 요청이 전달된다.
Docker를 이용해서 웹 서버를 사용하는 방법
도커를 사용하면, 컨테이너 안에 웹서버가 있다.
컨테이너가 설치된 운영체제 : 도커 Host
하나의 도커 Host 에는 여러 container가 설치될 수 있다.
컨테이너와 host 모두 독립적인 실행 환경이다. 따라서 각자 독립적인 포트와 파일 시스템이 있다.
호스트와 컨테이너의 포트를 연결해주는 작업이 필요하다. Port Forwarding.
컨테이너 안에 html 파일이 있을 때 해당 파일을 수정하는 방법
1. 직접 컨테이너 터미널에 들어가서 파일 수정
2. 호스트와 컨테이너 파일시스템 연결
이렇게 하면 컨테이너가 사라져도 호스트의 파일시스템에 데이터가 있어서 안전한 개발이 가능하다.
'Backend > 생활코딩' 카테고리의 다른 글
[생활코딩] WEB2 - Home Server (0) | 2022.12.16 |
---|---|
[생활코딩] 머신러닝1 정리 (0) | 2021.09.24 |
[생활코딩] OAuth (0) | 2021.08.14 |
[생활코딩 Nodejs] 30강 HTML - post (0) | 2021.02.18 |
[생활코딩 Nodejs] 29-32강 패키지 매니저 PM2, HTML form + 글생성 및 데이터 받기 (0) | 2021.02.15 |