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 |
---|