728x90
Git만큼 사랑받는 개발 툴이 된 Docker
- stackoverflow 2022 개발자 설문조사에서 앞으로 배우고 싶은 언어에 npm 다음으로 Docker가 올랐다
Docker란 무엇일까?
- Open platform이다
- 어플리케이션을 인프라에서 분리한다
- 신속하다
- 인프라를 어플리케이션을 관리하는 것처럼 관리할 수 있다
- 코드 배포에 용이하다
컨테이너
기반가상화
도구- 애플리케이션을
컨테이너
라는 단위로 격리하여 실행하고 배포하는 기술
Container란 무엇일까?
- 컨테이너는
가상화 기술
중 하나 - 호스트 운영체제 위에 여러 개의 격리된 환경을 생성
- 각각의 컨테이너 안에서 애플리케이션을 실행
가상화 기술이란 무엇일까?
- 하나의 물리적인 컴퓨터자원(CPU, 메모리, 저장장치 등)을 가상적으로 분할 하여 여러 개의 가상 컴퓨터 환경을 만들어내는 기술
- 이를 통해 물리적인 컴퓨터 자원을 더욱
효율적
으로 사용할 수 있으며 서버나 애플리케이션 등을 운영하는데 있어유연성
과안전성
을 제공한다
- 가상화 서버 없이 서버 올리기
- 하이퍼바이저를 통한 가상화 서버
- 컨테이너 엔진을 통한 가상화 서버
👌 하이퍼 바이저란?
- 가상머신(Virtual Machine, VM)을 생성하고 구동하는 소프트웨어
- OS에 자원을 할당 및 조율
- OS들의 요청을 번역하여 하드웨어에 전달
- 대표적으로 VMware가 있다
Virtual Machine VS Container
컨테이너 기반 특징
- 리눅스 커널의 기능을 사용하여 만들어짐
- chroot : 파일 시스템을 격리
- namespace : 프로세서 격리
- cgroup : 하드웨어 자원 격리
- 프로세스 단위의 격리 환경
Docker란 무엇일까?
컨테이너
기반가상화
도구- 리눅스 컨테이너 기술인 LXC(Linux Containers) 기반
- 애플리케이션을
컨테이너
라는 단위로 격리하여 실행하고 배포하는 기술 - 다양한 운영체제에서 사용할 수 있으며, 컨테이너화된 애플리케이션을 손쉽게 빌드. 배포, 관리할 수 있는 다양한 기능을 제공
- 위 기능들을 통해 애플리케이션을 빠르게 개발하고, 효율적으로 배포, 관리할 수 있음
Docker Architecture
도커 데몬(Docker daemon = dockerd)
- 도커 엔진의 핵심 구성요소
- 도커 호스트에서 컨테니러를 관리하고 실행하는 역할
- 컨테이너를 생성, 시작, 중지, 삭제하는 등의 작업을 수행
- 컨테이너 이미지를 관리
- 외부에서 이미지를 다운로드하고 빌드하는 작업 수행
도커 클라이언트(Docker Client)
- 도커와 상호작용
- docker 명령어를 사용하면 Docker daemon으로 보내어 실행
도커 오브젝트(Docker Object)
- 도커 이미지(Docker Image)
- 도커 컨테이너를 만들기 위한 읽기 전용 템플릿
- 도커 컨테이너(Docker Container)
- 한 도커 이미지의 실행 가능한 인스턴스
- 애플리케이션을 싱행하기 위한 모든 파일과 설정 정보를 포함하는 패키지
도커 레지스트리(Docker Registries)
- 도커 이미지를 관리하고 저장하는 곳
- Docker hub : 디폴트 레지스트리, 누구나 접근 가능한 공개형 저장소
도커 라이프 사이클
도커 파일
실습 순서
- 레지스트리에서 이미지 다운 받기
docker pull httpd
- 이미지 리스트
docker images
- 이미지를 사용해 새로운 컨테이너 만들기
docker run httpd
docker run --name secondContainer httpd
docker run -p 8888:80 -v ~/Desktop/git/httpdtest:/usr/local/apache2/htdocs httpd
> httpd 이미지 실행
> httpd 이미지를 실행할 때 이름 옵션 설정
> httpd 이미지를 실행할 때 80 포트를 8888로 매핑, httpd에 있는 파일 위치에 내가 매핑하고 싶은 파일 위치를 설정
- 도커 실행 중지
docker stop 9b0f49de746c
docker stop -a
> 특정 이미지만 중지, 혹은 모든 도커 중지
- 도커 컨테이너 삭제
docker rm 6026ab9b44cc
도커 파일을 활용한 실습
- 도커 파일 작성
FROM httpd:latest
COPY index.html /usr/local/apache2/htdocs/index.html
EXPOSE 80
- 이미지 만들기
docker build -t my-httpd
> -t는 내가 원하는 태그 이름을 달 수 있는 옵션
- 이미지 실행
docker run -d -p 8888:80 my-httpd
728x90
'study > TIL🐥' 카테고리의 다른 글
[Linux] iptables로 포트 포워딩하기 (0) | 2024.06.20 |
---|---|
ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/tmp/mysql.sock' (2) (0) | 2023.03.07 |
[Spring] 301, 302 redirect 시키기 (0) | 2022.10.31 |
[Vue.js] Class로 구성된 js 파일 import, 사용하기 (1) | 2022.10.05 |
[Vue.js] 외부 javascript 구문 추가 방법 (1) | 2022.10.05 |