Docker와 Docker-compose 알아보기

오늘은 Docker와 Docker-compose 에 대하여 알아봅니다.

개요

Docker, Docker-compose는 컨테이너 가상화 기술로 수 많은 컨테이너들을 쉽게 배포할 수 있게 해줍니다.

Docker 설치

우분투에 Docker를 설치합니다.

sudo apt-get remove docker docker-engine docker.io containerd runc

docker, docker.io , or docker-engine 에 대한 오래된 버전을 제거합니다.

sudo apt-get update

패키지 저장소 인덱스를 업데이트합니다.

sudo apt-get install apt-transport-https ca-certificates curl gnupg-agent software-properties-common

HTTPS를 위한 패키지를 설치합니다.

curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -

도커의 공식 GPG 키를 추가합니다.

sudo apt-get update

패키지 저장소 인덱스를 다시 업데이트합니다.

sudo apt-get install docker-ce docker-ce-cli containerd.io

도커 엔진을 설치합니다.

sudo docker run hello-world

hello-world 이미지로 컨테이너를 만들어봅니다.

만약 맥이나 윈도우에서 도커를 수행하려면 아래 링크에서 Docker Desktop을 받습니다.

https://docs.docker.com/docker-for-mac/install/ https://docs.docker.com/docker-for-windows/install/

Docker 제거

sudo apt-get purge docker-ce

docker-ce를 제거합니다.

sudo rm -rf /var/lib/docker

이미지와 컨테이너를 제거하려면 해당 폴더도 제거합니다.

Docker compose 설치

Docker compose도 설치합니다.

sudo curl -L "https://github.com/docker/compose/releases/download/1.25.0/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose

curl로 1.25.0 버전의 Docker compose를 설치합니다.

sudo chmod +x /usr/local/bin/docker-compose

바이너리 파일의 실행 권한을 추가합니다.

sudo ln -s /usr/local/bin/docker-compose /usr/bin/docker-compose

Docker compose 폴더를 링크합니다.

sudo curl -L https://raw.githubusercontent.com/docker/compose/1.25.0/contrib/completion/bash/docker-compose -o /etc/bash_completion.d/docker-compose

bash의 자동완성을 위해서 위 명령을 수행합니다.

맥과 윈도우는 Docker Desktop에 포함되어 있습니다.

Docker compose 제거

sudo rm /usr/local/bin/docker-compose

docker-compose를 제거합니다.

예제

FROM python:3.7.5-slim-buster

COPY . /app

WORKDIR /app

python 이미지를 가져와서 소스 파일을 복사한 도커 파일을 만듭니다.

services:
  python_command1:
    build:
      context: .
      dockerfile: Dockerfile
    command: python3 example1.py
    restart: always
  python_command2:
    build:
      context: .
      dockerfile: Dockerfile
    command: python3 example2.py
    restart: always

docker-compose 파일로 여러 서비스들을 같이 배포합니다.

docker-compose build로 빌드하거나, docker-compose up으로 빌드와 실행을 할 수 있습니다.

Written on December 20, 2019