본문 바로가기
서버구축 (WEB,DB)

Docker에서 데이터베이스 및 GUI 클라이언트 실행

by 날으는물고기 2023. 11. 6.

Docker에서 데이터베이스 및 GUI 클라이언트 실행

새 프로젝트를 설정할 때 종종 프로젝트를 실행하기 위한 많은 사전 요구 사항 목록이 있을 수 있습니다. 이로 인해 다양한 데이터베이스, 심지어 다른 버전의 데이터베이스를 사용해야 할 때가 있습니다. Docker는 개발 환경에서 로컬 데이터베이스를 실행하기에 훌륭한 도구입니다. 여기에서는 docker-compose.yml 파일을 사용하여 Docker에서 여러 개의 데이터베이스와 GUI 클라이언트를 설정하는 방법을 살펴보겠습니다. 이것은 여러 데이터베이스를 고려한 빠르고 기본적인 방법입니다.

Top 15 most popular databases for web applications in 2023 by chris evans. Javarevisited

 

PostgreSQL

포스트그레스 데이터베이스 및 pgAdmin 클라이언트를 Docker를 사용하여 설정하는 방법은 다음과 같습니다. 아래의 코드와 설명을 참고하세요.

version: "3.7"

services:
  postgres-db:
    image: postgres:12.2
    container_name: PostgreSQL
    restart: always
    environment:
      POSTGRES_DB: postgres
      POSTGRES_USER: admin
      POSTGRES_PASSWORD: secret
      PGDATA: /var/lib/postgresql/data
    volumes:
      - pgsql-data:/var/lib/postgresql/data
    ports:
      - 5010:5432

  pgadmin-client:
    image: dpage/pgadmin4:4.18
    container_name: PgAdmin
    restart: always
    environment:
      PGADMIN_DEFAULT_EMAIL: admin@admin.com
      PGADMIN_DEFAULT_PASSWORD: secret
      PGADMIN_LISTEN_PORT: 80
    ports:
      - 5011:80
    volumes:
      - pgadmin-data:/var/lib/pgadmin
    links:
      - postgres-db:pgsql-server

volumes:
  pgsql-data:
  pgadmin-data:

이 코드는 PostgreSQL 데이터베이스와 pgAdmin 클라이언트를 Docker로 설정합니다. 이것을 실행하기 위해서는 다음 단계를 따라야 합니다:

  1. Docker가 설치되어 있어야 합니다.
  2. 위의 Docker Compose 파일을 작성하고 저장합니다. 파일 이름은 "docker-compose.yml"로 지정할 수 있습니다.
  3. 터미널에서 해당 디렉토리로 이동한 후 다음 명령을 실행하여 컨테이너를 시작합니다:
docker-compose up -d

이제 PostgreSQL 데이터베이스와 pgAdmin 클라이언트가 도커 컨테이너로 실행됩니다. 이제 이들에 액세스하려면 다음과 같이 할 수 있습니다:

  • pgAdmin 클라이언트는 브라우저에서 http://localhost:5011/login 주소로 접근할 수 있으며, 로그인 정보는 admin@admin.com 및 secret입니다.
  • 데이터베이스에 액세스하려면 다음 정보를 사용합니다:
    • 호스트 이름 또는 서버: PostgreSQL (이것은 Docker 컨테이너의 이름입니다)
    • 포트: 5432
    • 데이터베이스 자격 증명: admin 및 secret

이렇게 하면 PostgreSQL 데이터베이스와 pgAdmin 클라이언트를 실행하고 편리하게 사용할 수 있게 됩니다.

 

MySQL

MySQL 데이터베이스 및 GUI 클라이언트를 Docker를 사용하여 설정하는 방법은 다음과 같습니다. 아래의 코드와 설명을 참고하세요.

version: "3.7"

services:
  mysql-db:
    image: mysql:8.0
    container_name: MySQL
    restart: always
    cap_add:
      - SYS_NICE
    environment:
      MYSQL_DATABASE: quotes
      MYSQL_USER: citizix_user
      MYSQL_PASSWORD: An0thrS3crt
      MYSQL_ROOT_PASSWORD: mauFJcuf5dhRMQrjj
    volumes:
      - mysql-data:/var/lib/mysql
    ports:
      - 5012:3306

  phpmyadmin-client:
    image: phpmyadmin:5.2.0
    container_name: PhpMyAdmin   
    restart: always
    ports:
      - 5013:80
    environment:
      PMA_ARBITRARY: 1

volumes:
  mysql-data:

이 코드는 MySQL 데이터베이스와 phpMyAdmin 클라이언트를 Docker로 설정합니다. 이것을 실행하기 위해서는 다음 단계를 따라야 합니다:

  1. Docker가 설치되어 있어야 합니다.
  2. 위의 Docker Compose 파일을 작성하고 저장합니다. 파일 이름은 "docker-compose.yml"로 지정할 수 있습니다.
  3. 터미널에서 해당 디렉토리로 이동한 후 다음 명령을 실행하여 컨테이너를 시작합니다:
docker-compose up -d

이제 MySQL 데이터베이스와 phpMyAdmin 클라이언트가 도커 컨테이너로 실행됩니다. 이제 이들에 액세스하려면 다음과 같이 할 수 있습니다:

  • phpMyAdmin 클라이언트는 브라우저에서 http://localhost:5013/ 주소로 접근할 수 있으며, 추가 구성이 필요하지 않습니다.
  • 데이터베이스에 액세스하려면 다음 정보를 사용합니다:
    • 서버 이름: MySQL (이것은 Docker 컨테이너의 이름입니다)
    • 포트: 3306
    • 데이터베이스 자격 증명: citizix_user 및 An0thrS3crt

그리고 MySQL Workbench 클라이언트를 추가로 설정하기 위한 코드도 제공됩니다:

version: "3.7"

services:
  mysql-workbench-client:
    image: lscr.io/linuxserver/mysql-workbench:8.0.29
    container_name: MySQL-Workbench
    environment:
      - PUID=1000
      - PGID=1000
      - TZ=Europe/London
    volumes:
      - mysql-workbench-data:/config
    ports:
      - 5014:3000
    cap_add:
      - IPC_LOCK
    restart: unless-stopped

volumes:
  mysql-workbench-data:

이 부분의 코드를 통해 MySQL Workbench 클라이언트를 Docker로 설정할 수 있습니다. 추가로, MySQL 데이터베이스에 액세스하기 위해서는 다음 정보를 사용합니다:

  • 서버 이름: MySQL (Docker 컨테이너의 이름)
  • 데이터베이스 자격 증명은 위에서 설정한대로 citizix_user 및 An0thrS3crt를 사용합니다.

이렇게 하면 MySQL 데이터베이스와 여러 가지 클라이언트를 실행하고 편리하게 사용할 수 있게 됩니다.

 

MongoDB

MongoDB 데이터베이스 및 Nosqlclient GUI 클라이언트를 Docker를 사용하여 설정하는 방법은 다음과 같습니다. 아래의 코드와 설명을 참고하세요.

version: '3.7'

services:
  mongodb-db:
    image: mongo:4.4.2
    container_name: MongoDB
    restart: always
    environment:
      MONGO_INITDB_DATABASE: chats
    ports:
      - 5015:27017
    volumes:
      - mongodb-data:/data/db

  nosqlclient-client:
    image: mongoclient/mongoclient:4.0.1
    container_name: Nosqlclient
    restart: always
    depends_on:
      - mongodb-db
    ports:
      - 5016:3000

volumes:
  mongodb-data:

이 코드는 MongoDB 데이터베이스와 Nosqlclient GUI 클라이언트를 Docker로 설정합니다. 이것을 실행하기 위해서는 다음 단계를 따라야 합니다:

  1. Docker가 설치되어 있어야 합니다.
  2. 위의 Docker Compose 파일을 작성하고 저장합니다. 파일 이름은 "docker-compose.yml"로 지정할 수 있습니다.
  3. 터미널에서 해당 디렉토리로 이동한 후 다음 명령을 실행하여 컨테이너를 시작합니다:
docker-compose up -d

이제 MongoDB 데이터베이스와 Nosqlclient GUI 클라이언트가 도커 컨테이너로 실행됩니다. 이제 이들에 액세스하려면 다음과 같이 할 수 있습니다:

  • Nosqlclient 클라이언트는 브라우저에서 http://localhost:5016/ 주소로 접근할 수 있으며, 추가 구성이 필요하지 않습니다.
  • 데이터베이스에 액세스하려면 다음 정보를 사용합니다:
    • 호스트 이름: MongoDB (이것은 Docker 컨테이너의 이름입니다)
    • 포트: 27017
    • 연결 문자열을 사용할 수도 있으며, 예를 들면 "mongodb://userName:password@containerName:27017/dbname"와 같이 사용할 수 있습니다.

이렇게 하면 MongoDB 데이터베이스와 Nosqlclient 클라이언트를 실행하고 편리하게 사용할 수 있게 됩니다.

 

Oracle

Oracle 데이터베이스 및 CloudBeaver GUI 클라이언트를 Docker를 사용하여 설정하는 방법은 다음과 같습니다. 아래의 코드와 설명을 참고하세요.

version: '3.7'

services:
  oracle-db:
    image: wnameless/oracle-xe-11g-r2:18.04-apex
    container_name: OracleDb
    restart: always
    environment:
      - ORACLE_ALLOW_REMOTE=true
      - ORACLE_DISABLE_ASYNCH_IO=true
      - ORACLE_ENABLE_XDB=true
    ports:
      - 5019:1521
      - 5020:8080

  cloudbeaver-client:
    image: dbeaver/cloudbeaver:22.1.1
    container_name: CloudBeaver
    restart: unless-stopped
    volumes:
      - cloudbeaver-data:/opt/cloudbeaver/workspace
    ports:
      - 5021:8978

volumes:
  cloudbeaver-data:

이 코드는 Oracle 데이터베이스와 CloudBeaver GUI 클라이언트를 Docker로 설정합니다. 이것을 실행하기 위해서는 다음 단계를 따라야 합니다:

  1. Docker가 설치되어 있어야 합니다.
  2. 위의 Docker Compose 파일을 작성하고 저장합니다. 파일 이름은 "docker-compose.yml"로 지정할 수 있습니다.
  3. 터미널에서 해당 디렉토리로 이동한 후 다음 명령을 실행하여 컨테이너를 시작합니다:
docker-compose up -d

이제 Oracle 데이터베이스와 CloudBeaver GUI 클라이언트가 도커 컨테이너로 실행됩니다. 이제 이들에 액세스하려면 다음과 같이 할 수 있습니다:

  • Oracle APEX 관리자 페이지는 http://localhost:5020/apex/apex_admin 주소로 접근할 수 있으며, 로그인 정보는 다음과 같습니다:
    • 사용자 이름: ADMIN
    • 비밀번호: Oracle_11g
  • CloudBeaver 클라이언트는 브라우저에서 http://localhost:5021/ 주소로 접근할 수 있으며, 초기 자격 증명을 설정하라는 메시지가 표시됩니다. 여기서 사용자 이름은 "adminuser"이고 비밀번호는 "adminpass"로 설정했습니다.
  • 데이터베이스에 액세스하려면 다음 정보를 사용합니다:
    • 호스트 이름: OracleDb (이것은 Docker 컨테이너의 이름입니다)
    • 포트: 1521
    • 데이터베이스 또는 SID: xe
    • 데이터베이스 자격 증명: system 및 oracle

이렇게 하면 Oracle 데이터베이스와 CloudBeaver 클라이언트를 실행하고 편리하게 사용할 수 있게 됩니다.

 

SQL Server

SQL Server 데이터베이스 및 CloudBeaver GUI 클라이언트를 Docker를 사용하여 설정하는 방법은 다음과 같습니다. 아래의 코드와 설명을 참고하세요.

version: '3.7'

services:
  sqlserver-db:
    image: mcr.microsoft.com/mssql/server:2019-latest
    container_name: SQLServer
    restart: always
    environment:
      - ACCEPT_EULA=Y
      - MSSQL_PID=Express
      - SA_PASSWORD=MyPass@word     # 사용자 sa의 비밀번호
    #volumes:
      #- sqlserver-data:/var/opt/mssql/data         # Windows에서 작동하지 않음
      #- "./sqlserver-data/:/var/opt/mssql/data"    # Windows에서 작동하는 방법
    ports:
      - 5017:1433

client:
    image: dbeaver/cloudbeaver:22.1.1
    container_name: CloudBeaver
    restart: unless-stopped

volumes:
  #sqlserver-data:

이 코드는 SQL Server 데이터베이스와 CloudBeaver GUI 클라이언트를 Docker로 설정합니다. 이것을 실행하기 위해서는 다음 단계를 따라야 합니다:

  1. Docker가 설치되어 있어야 합니다.
  2. 위의 Docker Compose 파일을 작성하고 저장합니다. 파일 이름은 "docker-compose.yml"로 지정할 수 있습니다.
  3. 터미널에서 해당 디렉토리로 이동한 후 다음 명령을 실행하여 컨테이너를 시작합니다:
docker-compose up -d

이제 SQL Server 데이터베이스와 CloudBeaver 클라이언트가 도커 컨테이너로 실행됩니다. 이제 이들에 액세스하려면 다음과 같이 할 수 있습니다:

  • 데이터베이스에 액세스하려면 다음 정보를 사용합니다:
    • 호스트 이름: SQLServer (이것은 Docker 컨테이너의 이름입니다)
    • 포트: 1433
    • 데이터베이스: master
    • 데이터베이스 자격 증명: sa 및 MyPass@word
  • SQL Server Management Studio를 사용하여 데이터베이스에 액세스하려면 다음 정보를 사용합니다:

이렇게 하면 SQL Server 데이터베이스와 CloudBeaver 클라이언트를 실행하고 편리하게 사용할 수 있게 됩니다.

 

MariaDB

MariaDB 데이터베이스를 설정하고, 해당 데이터베이스에 액세스하기 위한 PHPMyAdmin 또는 CloudBeaver 클라이언트를 Docker를 사용하여 구축하는 방법은 다음과 같습니다. 아래의 코드와 설명을 참고하세요.

version: "3.7"

services:
  mariadb-db:
    image: mariadb:10.6
    container_name: MariaDB
    restart: always
    environment:
      - MYSQL_DATABASE=quotes
      - MYSQL_USER=citizix_user
      - MYSQL_PASSWORD=An0thrS3crt
      - MYSQL_ROOT_PASSWORD=mauFJcuf5dhRMQrjj
    volumes:
      - mariadb-data:/var/lib/mysql
    ports:
      - 5018:3306

volumes:
  mariadb-data:

이 코드는 MariaDB 데이터베이스를 Docker 컨테이너로 설정합니다. 이를 실행하기 위해서는 다음 단계를 따라야 합니다:

  1. Docker가 설치되어 있어야 합니다.
  2. 위의 Docker Compose 파일을 작성하고 저장합니다. 파일 이름은 "docker-compose.yml"로 지정할 수 있습니다.
  3. 터미널에서 해당 디렉토리로 이동한 후 다음 명령을 실행하여 컨테이너를 시작합니다:
docker-compose up -d

MariaDB 데이터베이스가 이제 Docker 컨테이너에서 실행됩니다. 이제 데이터베이스에 액세스하려면 다음과 같이 할 수 있습니다:

  • 데이터베이스에 액세스하려면 다음 정보를 사용합니다:
    • 호스트 이름: MariaDB (이것은 Docker 컨테이너의 이름입니다)
    • 포트: 3306
    • 데이터베이스 자격 증명: citizix_user 및 An0thrS3crt
  • PHPMyAdmin 또는 CloudBeaver와 같은 클라이언트를 사용하여 데이터베이스에 액세스할 수 있습니다. 이 클라이언트를 통해 데이터베이스에 연결하고 관리할 수 있습니다.

 

원문 : codeproject.com

728x90

댓글