도커란 무엇인가? Docker는 컨테이너 기반의 오픈소스 가상화 플랫폼입니다.
컨테이너란? 우리가 일반적으로 생각하는 컨테이너와 유사합니다. 컨테이너는 개발자가 앱을 환경에서 분리하여 “내 컴퓨터에서 작동” 하기 위한 표준화된 단위입니다.
도커의 장점
도커는 컨테이너의 표준입니다. 따라서 어느 환경에도 적용 가능합니다.
컨테이너는 OS 시스템의 커널만 사용하기 때문에 앱마다 OS를 설치할 필요가 없습니다.
컨테이너를 격리 하기 때문에 안전합니다.
도커 설치 (Ubuntu 22.04) 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 sudo apt-get update sudo apt-get install apt-transport-https ca-certificates curl gnupg-agent software-properties-common curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/trusted.gpg.d/docker.gpg sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable" sudo apt-get update sudo apt-get install docker-ce docker-ce-cli containerd.io sudo chmod 666 /var/run/docker.sock docker version
아래와 같이 나오면 설치가 완료된 것입니다.
1 2 3 4 5 6 7 8 9 ubuntu@server1:~$ docker version Client: Docker Engine - Community Version: 24.0.6 API version: 1.43 Go version: go1.20.7 Git commit: ed223bc Built: Mon Sep 4 12:31:44 2023 OS/Arch: linux/amd64 Context: default
docker-compose 설치 도커를 사용하다보면 여러 컨테이너를 한번에 실행해야 할 때가 있습니다. 하나하나 실행하는 것은 번거롭기 때문에 docker-compose를 사용합니다.
docker-compse release 에서 최신 버전을 확인합니다.
1 2 3 4 5 6 7 8 9 10 11 sudo curl -L "https://github.com/docker/compose/releases/latest/download/docker-compose-$(uname -s) -$(uname -m) " -o /usr/local /bin/docker-compose sudo chmod +x /usr/local /bin/docker-compose sudo ln -s /usr/local /bin/docker-compose /usr/bin/docker-compose docker-compose --version
yaml 파일 작성 docker-compose를 사용하기 위해서는 yaml 파일을 작성해야 합니다. 아래는 간단한 yaml 파일입니다.
1 2 3 4 5 6 7 8 9 10 11 version: '3' services: web: image: nginx:latest ports: - "8080:80" environment: - NGINX_PORT=80 volumes: - ./nginx.conf:/etc/nginx/nginx.conf
version
: docker-compose 버전
services
: 실행할 컨테이너 목록
web
: 컨테이너 이름(원하는 이름으로 변경 가능)
image
: 이미지명:태그
ports
: 호스트port:컨테이너port
environment
: 환경변수
volumes
: 호스트 디렉토리:컨테이너 디렉토리
docker-compose 명령어 1 2 3 4 5 6 7 8 9 10 11 12 docker-compose build docker-compose up docker-compose up -d docker-compose down docker-compose logs docker-compose logs -f
위의 명령어를 사용하면 yaml 파일에 작성한 컨테이너를 실행할 수 있습니다. 특정 컨테이너만 실행하고 싶다면 docker-compose up 컨테이너이름
으로 실행하면 됩니다.
마무리 컨테이너를 사용하면 앱을 빠르게 배포할 수 있고, 환경에 상관없이 동일한 환경에서 실행할 수 있습니다. 이미지를 배포하는 방법은 여기 를 참고하세요.