기록

docker/install docker, docker-compose 본문

DevOps

docker/install docker, docker-compose

youngyin 2023. 7. 18. 10:00

시작하면서

이번주에 긴 휴가가 생겨서 다시 공부를 시작해보려고, 프로그래머스에서 고양이 사진 검색 사이트 API 과제를 풀어보았다. 그 과정에서 도커를 설치하고, 사용했어서 그 과정을 간단하게 정리해보려고 한다.

docker

도커는 애플리케이션을 한 번에 패키징하고, 어디서든 실행할 수 있는 특별한 상자라고 생각할 수 있습니다. 이 상자에는 애플리케이션에 필요한 모든 것이 들어 있어서, 다른 컴퓨터나 서버에 옮겨 놓아도 애플리케이션은 잘 작동합니다.
도커를 사용하면 애플리케이션을 빠르게 배포하고, 문제가 생기면 이전 상태로 쉽게 돌아갈 수도 있습니다.
또한, 여러 사람이 함께 작업할 때도 각자 독립적인 환경에서 작업할 수 있어서 협업이 쉽습니다.

docker 설치하기 

docker compose

도커 컴포즈는 여러 개의 컨테이너로 이루어진 애플리케이션을 쉽게 관리하기 위한 도구이다. 설정 파일을 사용하여 컨테이너의 옵션과 환경을 정의하고, 이를 기반으로 여러 컨테이너를 순차적으로 생성하고 실행할 수 있다.
여기서 설정파일은 docker-compose.yml 파일을 의미하며, 이 파일은 일련의 서비스와 각 서비스에 대한 구성을 포함한다.

  • Download Docker compose
    https://docs.docker.com/compose/install/
  • 어플리케이션, 서비스, 컨테이너
    • 일반적으로 어플리케이션은 여러개의 서비스로 구성된다. 예를 들어 웹 어플리케이션의 경우 웹 서버, 데이터 베이스 서버 등 다양한 기능 컴포넌트가 필요하며, 각 기능 컴포넌트는 독립적인 서비스로 정의되고 실행된다.
    • 도커에서는 여러 개의 컨테이너 구성된 애플리케이션을 서비스라고 표현한다. 서비스는 해당 컨테이너의 실행 옵션과 구성을 정의한다.
  • 도커를 사용해야 하는 이유
    도커를 사용하여 MySQL, Ubuntu, Redis 컨테이너를 순차적으로 실행한다고 하면 다음의 단계가 필요하다.여러개의 컨테이너로 구성된 어플리케이션에서 컨테이너를 여러번 실행하고, 제대로 동작하는지 확인하는 것은 번거로운 일이다. 도커 컴포즈를 사용하면 세 컨테이너의 설정값을 지정하고 실행시킬 수 있다.docker-compose.yml파일은 docker-compose up -d 명령어로 실행할 수 있다.
version: '3'
services:
  mysql:
    image: mysql
    restart: always
    environment:
      MYSQL_ROOT_PASSWORD: password
    volumes:
      - mysql/data:/var/lib/mysql
    ports:
      - 3306:3306

  ubuntu:
    image: ubuntu
    command: tail -f /dev/null
    restart: always

  redis:
    image: redis
    restart: always

설치 중 겪은 문제

docker-compe로 mySql 컨테이너의 설정을 지정하고, 실행하였더니  아래와 같은 문제가 발생했다.

로그에 적혀있는 것처럼 volumn으로 지정한 경로에 접근할 수 없어서 생기는 문제로, 접근 할 수 있는 파일 경로에 추가해서 해결할 수 있었다.

Comments