더 이상 DB는 Docker로 설치하는 시대! 초보자를 위한 DB 설치 on Docker

더 이상 DB는 Docker로 설치하는 시대! 초보자를 위한 DB 설치 on Docker

2022-10-03 last update

13 minutes reading MongoDB MySQL 도커 PostgreSQL SQLServer

이 기사에 대하여



데이터베이스, 이것은 2020년이 되어도, 엔터프라이즈등의 어플리케이션 개발에 있어서, 반드시 말해도 좋을 정도로 사용되는 것이라고 생각합니다.
다만, 종래와 같이, 프로덕션 환경이나 검증 환경, 개발 환경에 이르기까지, 아직도 인력으로 노력해 ホスト OS に直接インストール 하고 있는 분이 많다고 하는 것이 현상입니다.

(조금 과장이 지날지도 모릅니다만)
개발 환경의 데이터베이스를 설치하는 데 5분 이상 걸리는 것은 시간 낭비입니다!

이제 이 시점에서 Docker에서 Saku와 DB를 설치할 수 있다는 것을 기억하자.
다만, 프로덕션 환경 등, 중복 구성이나 가용성을 담보할 필요가 있는 경우 등은, 제대로 요구에 합치한 인스톨 방법을 실시를 합시다.

Oracle Database on Docker



※ 조금 설치 방법이 번거롭기 때문에, 후일 추기합니다. 빨리 정보를 알고 싶은 분은 참고 정보에 기재된 내용을 참조하십시오.

SQL Server on Docker



  • Docker Hub - Microsoft SQL Server (Ubuntu 기반)

  • GitHub에서 게시하는 리포지토리를 참조하여 docker-compose.yaml을 만듭니다.
    ※아래와 같은 yaml 는 RHEL 베이스의 SQL Server (on Linux) on Docker 입니다.
    ※GitHub의 리포지토리에서는, 브랜치로 RHEL 베이스와 Ubuntu 베이스의 2 개를 준비하고 있습니다. (2017은 Ubuntu 전용)

    docker-compose.yaml
    version: '3'
    
    services:
      mssql:
        image: mcr.microsoft.com/mssql/rhel/server:2019-latest
        container_name: 'mssql2019-latest-rhel'
        environment:
          - MSSQL_SA_PASSWORD=<your_strong_password>
          - ACCEPT_EULA=Y
          # - MSSQL_PID=<your_product_id> # default: Developer
          # - MSSQL_PID=Express
          # - MSSQL_PID=Standard
          # - MSSQL_PID=Enterprise
          # - MSSQL_PID=EnterpriseCore
        ports:
          - 1433:1433
        # volumes: # Mounting a volume does not work on Docker for Mac
        #   - ./mssql/log:/var/opt/mssql/log
        #   - ./mssql/data:/var/opt/mssql/data
    
    docker-compose up -d 에서 컨테이너를 시작하면 SQL Server 설치가 완료됩니다.
    docker-compose up -d
    

    MySQL on Docker


  • Docker Hub - mysql
  • Docker Hub - adminer

  • GitHub에서 게시하는 리포지토리를 참조하여 docker-compose.yaml을 만듭니다.

    docker-compose.yaml
    version: '3'
    
    services:
      db:
        image: mysql:8
        container_name: mysql
        restart: always
        environment:
          MYSQL_ROOT_PASSWORD: [email protected] #required
          # MYSQL_DATABASE: employees #optional
          # MYSQL_USER: user #optional
          # MYSQL_PASSWORD: [email protected] #optional
          # MYSQL_ALLOW_EMPTY_PASSWORD: "yes" #optional
          # MYSQL_RANDOM_ROOT_PASSWORD: "yes" #optional
          # MYSQL_ONETIME_PASSWORD: "yes" #optional (MySQL 5.6 or above)
          # MYSQL_INITDB_SKIP_TZINFO: "" #optional
        ports:
            - 3306:3306
        volumes:
            - ./data/mysql:/var/lib/mysql
            - ./conf:/etc/mysql/conf.d
    
    docker-compose up -d 에서 컨테이너를 시작하면 MySQL 설치가 완료됩니다.
    docker-compose up -d
    

    PostgreSQL on Docker


  • Docker Hub - postgres
  • Docker Hub - adminer

  • GitHub에서 게시하는 리포지토리를 참조하여 docker-compose.yaml을 만듭니다.

    docker-compose.yaml
    version: '3'
    
    services:
      db:
        image: postgres:13
        container_name: postgres
        restart: always
        environment:
          POSTGRES_PASSWORD: [email protected] #required
          # POSTGRES_USER: postgres #optional
          # POSTGRES_DB: postgres #optional
          # POSTGRES_INITDB_ARGS: "--data-checksums" #optional
          # POSTGRES_INITDB_WALDIR: "" #optional (PostgreSQL 10+ or above)
          # POSTGRES_INITDB_XLOGDIR: "" #optional (PostgreSQL 9.x only)
          # POSTGRES_HOST_AUTH_METHOD: trust #optional
          # PGDATA: /var/lib/postgresql/data/pgdata #optional
        ports:
            - 5432:5432
        volumes:
          - ./data:/var/lib/postgresql/data
    
    docker-compose up -d 에서 컨테이너를 시작하면 PostgreSQL 설치가 완료됩니다.
    docker-compose up -d
    

    MongoDB on Docker


  • Docker Hub - mongo

  • GitHub에서 게시하는 리포지토리를 참조하여 docker-compose.yaml을 만듭니다.

    docker-compose.yaml
    version: '3'
    
    services:
      mongo:
        image: mongo:latest
        container_name: mongodb
        restart: always
        environment:
          MONGO_INITDB_ROOT_USERNAME: root
          MONGO_INITDB_ROOT_PASSWORD: [email protected]
        ports:
            - 27017:27017
        volumes:
            - ./data/db:/data/db
            - ./data/configdb:/data/configdb
        # Command 1: Customize configuration without configuration file
        # Command 2: Setting WiredTiger cache size limits
        # command: >
        #   --serviceExecutor adaptive
        #   --wiredTigerCacheSizeGB 1.5
    
      mongo-express:
        image: mongo-express:latest
        container_name: mongo-express
        restart: always
        ports:
          - 8081:8081
        environment:
          ME_CONFIG_MONGODB_ADMINUSERNAME: root
          ME_CONFIG_MONGODB_ADMINPASSWORD: [email protected]
    
    docker-compose up -d 에서 컨테이너를 시작하면 MongoDB 설치가 완료됩니다.
    docker-compose up -d
    

    관리 도구



    관리 도구에 대해서는 각자 좋아하는 것을 사용하면 좋다고 생각합니다만, 추천은 Visual Studio Code 를 사용하는 방법입니다.
    Docker Compose도 DB 작업도 Visual Studio Code 내에서 할 수 있으므로 매우 편리합니다.
    자세한 내용은 아래 문서를 참조하십시오.
  • Visual Studio Code에서 SQL Database와 상호 작용하는 편리한 확장 기능
  • Visual Studio Code에서 MySQL을 조작하기 위한 편리한 확장 기능
  • Visual Studio Code에서 PostgreSQL 및 Cosmos DB로 작업하기 위한 편리한 확장 기능
  • Visual Studio Code에서 MongoDB와 상호 작용하는 편리한 확장 기능

  • 또, MySQL 과 PostgreSQL 의 곳에서 기재하고 있는 adminer 의 컨테이너를 함께 만드는 것도 개미라고 생각합니다.

    참고 정보



    Oracle Database


  • GitHub - oracle/docker-images
  • 공식 Oracle Database Docker 이미지 구축
  • Oracle Database 19c available on GitHub
  • [Oracle Database] 공식 Docker Image를 이용하여 Oracle Database 19c 환경을 구축해 보았습니다.

  • SQL Server


  • Docker Hub
  • 빠른 시작: Docker를 사용하여 SQL Server 컨테이너 이미지 실행
  • Windows에서 SQL Server를 사용하여 C# 앱 만들기

  • MySQL


  • Docker Hub

  • PostgresQL


  • Docker Hub

  • MongoDB


  • Docker Hub