在 Docker 中运行数据库和 GUI 客户端

背景

在建立一个新项目时,有时会有一个完整的先决条件列表才能运行该项目,这可能导致我们使用多个数据库甚至不同的版本。Docker 非常适合在开发环境中运行本地数据库。在这里,我们将探索 docker-compose.yml 文件以在 docker 中设置多个 DB 和 GUI 客户端。考虑到多个数据库,这将是一个非常快速和基本的遍历。

我们需要的东西

  • 本地安装的 Docker
  • 码头工人基础知识
  • 使用数据库的经验
  • 使用 GUI 客户端的经验

PostgreSQL

数据库:  PostgreSQL

图形用户界面客户端:  pgAdmin

这将创建一个postgres在 Db 实例中命名的数据库,其中包含凭据 admin和 secret

收缩▲   
<span style="color:#000000"><span style="background-color:#fbedbb">version: "3.7"

services:
  pgsql:
    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:
    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:
      - pgsql:pgsql-server

volumes:
  pgsql-data:
  pgadmin-data:</span></span>

客户

pdAdmin 将在 http://localhost:5011/login

admin@admin.comsecret 作为凭证。

访问数据库

主机名或服务器作为数据库容器名称 PostgreSQL 

港口 5432

数据库凭据admin 和secret

92dc2fc6d6e877383c009c059929fb97.png

MySQL

数据库:  MySQL

图形用户界面客户端:  phpMyAdmin

这将创建一个quotes在 Db 实例中命名的数据库,其中包含凭据 citizix_user和 An0thrS3crt

收缩▲   
<span style="color:#000000"><span style="background-color:#fbedbb">version: "3.7"

services:
  mysql:
    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:
    image: phpmyadmin:5.2.0
    container_name: PhpMyAdmin   
    restart: always
    ports:
      - 5013:80
    environment:
      - PMA_ARBITRARY=1
    
volumes:
  mysql-data:</span></span>

另一个 GUI 客户端:  MySQL Workbench

<span style="color:#000000"><span style="background-color:#fbedbb">version: "3.7"

services:
  mysql-workbench:
    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:</span></span>

服务器名称作为数据库容器名称 MySQL 和其他数据库凭据

客户

PhpMyAdmin 将在 http://localhost:5013/ 

访问数据库

服务器名称作为数据库容器名称 MySQL

数据库凭据citizix_user和 An0thrS3crt

MongoDB

数据库:  MongoDB

GUI客户端:  Nosqlclient

这将在没有凭据的 Db 实例中创建一个名为 chats 的数据库

收缩▲   
<span style="color:#000000"><span style="background-color:#fbedbb">version: '3.7'

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

  mongo_client:
    image: mongoclient/mongoclient:4.0.1
    container_name: Nosqlclient
    restart: always
    depends_on:
      - mongo
    ports:
      - 5016:3000


volumes:
  mongodb-data:</span></span>

客户

Nosqlclient 将在 http://localhost:5016/

访问数据库

主机名作为数据库容器名称 MongoDB

港口 27017

我们也可以使用像 mongodb://userName:password@containerName:27017/dbname 这样的连接字符串

甲骨文

数据库: 甲骨文

图形用户界面客户端:  CloudBeaver

这将创建一个带有凭据的 Db 实例

收缩▲   
<span style="color:#000000"><span style="background-color:#fbedbb">version: '3.7'

services:
  oracle:
    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

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

volumes:
  dbeaver-data:</span></span>

甲骨文 APEX

http://localhost:5020/apex/apex_admin 
用户名:ADMIN
密码:Oracle_11g

客户

CloudBeaver 将在 http://localhost:5021/

最初,它会要求设置一个凭据,所以我使用 adminuseradminpass

访问数据库

主机名作为数据库容器名称 OracleDb

港口 1521

db 或 sid xe

数据库凭据system 和 oracle

56edf0321e60abc11b714d205036e5f2.png

6fe4cc09d6806d0d90d4ac7885d1b014.png

SQL服务器

数据库:  SQLServer

图形用户界面客户端:  CloudBeaver

这将创建一个带有凭据的 Db 实例

<span style="color:#000000"><span style="background-color:#fbedbb">version: '3.7'

services:
  sqlserver:
    image: mcr.microsoft.com/mssql/server:2019-latest
    container_name: SQLServer
    restart: always
    environment:
      - ACCEPT_EULA=Y
      - MSSQL_PID=Express
      - SA_PASSWORD=MyPass@word     #user sa
    #volumes:
      #- sqlserver-data:/var/opt/mssql/data         #not working in windows
      #- "./sqlserver-data/:/var/opt/mssql/data"    #this working in windows
    ports:
      - 5017:1433</span></span>

客户

和甲骨文一样

访问数据库

主机名作为数据库容器名称 SQLServer

港口 1433 

数据库(默认) master

数据库凭据sa和 MyPass@word

使用 Management Studio 访问数据库

服务器名称 localhost, 5017

凭证sa和 MyPass@word

设置 TrustServerCertificate = True ( "The certificate chain was issued by an authority that is not trusted" when connecting DB in VM Role from Azure website - Stack Overflow )

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

千源万码

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值