Docker - 이론, 실습

2023. 8. 8. 14:55개발/Docker

728x90
반응형

Docker 란 ?

- 컨테이너 기술을 사용하여 애플리케이션에 필요한 환경을 신속하게 구축하고 테스트및 배포를 할 수 있게 해주는 플랫폼이다.

Container 란 ?

- OS 레벨의 가상화로 프로세스를 격리시켜 동작하는 방식이다.

특징

  • 여러 애플리케이션에서 사용하고 있는 라이브러리나 미들웨어의 버전에 대한 충돌을 회피
  • 이식성과 확장성이 좋다
    • 컨테이너 이미지 그대로 의존성 없이 다른 환경에서 실행 가능
    • 컨테이너를 여러 개 실행해서 이중화 가능
  • 다양한 운영 환경을 지원할 수 있다
    • Windows 환경에서 Linux를 실행하거나 그 반대도 가능

Docker Image 란 ?

  • 컨테이너를 실행할 수 있는 실행파일, 성정 값 들을 가지고 있는 이미지이다.
  • 이미지는 컨테이너를 실행하는데 필요한 모든 것을 포함하고 재사용이 가능하다.

Docker File 란 ?

  • 이미지 생성 출발점으로 이미지를 구성하기 위한 명령어들을 작성한 파일이다.
  • 컨테이너가 특정 행동을 수행하도록 한다.
  • 명령어
명령어 설명
FROM Docker 이미지 기반 레이어를 정의
RUN Docker 이미지를 빌드하는 동안 실행할 명령어 정의
CMD Docker 컨테이너가 시작될 때마다 실행할 기본 명령어 정의
EXPOSE Docker 컨테이너가 런타임에 지정된 네트워크 포트 리스닝
ENV Docker 이미지 환경변수 설정
ADD 호스트 시스템의 파일 또는 디렉토리를 Docker 이미지로 복사, URL과 압축 해제 기능을 추가적으로 지원
COPY 호스트 시스템의 파일 또는 디렉토리를 Docker 이미지로 복사
WORKDIR RUN, CMD, ENTRYPOINT, COPY, ADD 명령어의 작업 디렉토리 변경
VOLUME Docker 이미지에 지속적인 데이터를 저장할 수 있는 디렉토리 생성 또는 기존 디렉토르 마운트
ENTRYPOINT 컨테이너가 실행될 때 항상 실행되도록 하는 명령어 설정
작성 가이드
1. Dockerfile 생성
touch Dockerfile​

2. Dockerfile 편집

# ubuntu 이미지 생성
FROM ubuntu.20.04
# 이미지 생성시 특정 명령어 실행 (bash 명령어와 동일)
Run mkdir /test
# 이미지의 호스트 해당하는 디렉토리, 파일 추가
ADD test1.txt /
# 컨테이너가 실행전 실행되는지 확인
ENTRYPOINT ["echo", "hello"]
# 등등

Docker Compose 란 ?

참고 : https://velog.io/@baeyuna97/Docker-compose-%EB%9E%80
  • 도커 컴포즈는 컨테이너 여러개를 띄우는 도커 애플리케이션을 정의하고 실행하는 도구이다.
  • 설정 파일 작성법은 YAML 형식으로 작성한다.
  • 속성
속성 이름 속성 내용
version Docker compose의 버전
services 서비스명
image Docker 컨테이너 이름 정의
Docker Hub에 존재하는 이미지를 사용 가능
restart Docker 컨테이너 다운시 재시작설정
volumnes docer run  명령의 -v 옵션과 동일한 역할을 하며,
여러개의 Volume을 지정할 수 있다
environment dockerfile의 ENV 옵션과 동일 역할
prots port를 설정
build docker image를 Dockerfile 기반으로 작성 시 사용
Docker-compose 명령어
# 컨테이너 실행 
docker-compose up -d // 도커 백그라운드 실행
docker-compose up --force-recreate // 도커 컨테이너 새로 만들기
docker-compose up --build // 도커 이미지 빌드 후 compose up

# 컨테이너 내리기
docker-compose down // 컨테이너 stop & 삭제
docker-compose stop​

Docker 설치

# apt update
apt-get update

# docker 설치전 필수 패키지 사전 설치
apt-get install apt-transport-https ca-certificates curl gnupg-agent software-properties-common

# docker ubuntu 리포지토리 key 추가
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -

# docker 설치
apt install docker-ce docker-ce-cli containerd.io docker-compose-plugin

# docker 버전 확인
docker -v

# docker compose 설치
sudo curl -L "https://github.com/docker/compose/releases/download/1.29.2/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
  
# Docker-compose 실행 권한 추가
sudo chmod +x /usr/local/bin/docker-compose
  
# Docker-compose 버전 확인
docker-compose --version
728x90
반응형

'개발 > Docker' 카테고리의 다른 글

Docker - Kafka 설치 (UI 관리자 페이지)  (0) 2023.08.08