Docker 实战 -- cloudbeaver
文章目录
- 前言
- 文件目录
- docker-compose.yml
- 网络
- 连接
前言
上一篇文章 Docker 实战 – Mysql 讲述了用 docker 搭建 mysql 数据库的过程, 连接数据库的工具很多, 但有些是收费软件, 例如: navicat(虽然它真的好用), 但这里还是拥抱开源, 推荐 dbeaver, cloudbeaver ,官网为 https://dbeaver.io/
本篇讲述用 docker 搭建 cloudbeaver 实现 web 端连接数据库执行数据库的CRUD操作
文件目录
准备对应的文件夹存储数据与配置
.
├── docker-compose.yml
└── workspace
docker-compose.yml
docker 编排文件
version: '3.9'
services:cloudbeaver:image: 'dbeaver/cloudbeaver:latest'volumes:- './workspace:/opt/cloudbeaver/workspace'#- './drivers:/opt/cloudbeaver/drivers'ports:- '8978:8978'restart: unless-stoppedcontainer_name: cloudbeavernetworks:- docker-mysql8_mynet # 与 mysql 一个网络下
networks:docker-mysql8_mynet:external: true # 外部网络#driver: bridge
执行 docker-compose up -d
即可启动, 网页访问 http://localhost:8978
即可使用
docker ps # 查看运行情况CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
3f88c03cc6b0 dbeaver/cloudbeaver:latest "./run-server.sh" 5 minutes ago Up 5 minutes 0.0.0.0:8978->8978/tcp cloudbeaver
884cd0fcd595 mysql:8.2.0 "docker-entrypoint.s…" 19 minutes ago Up 19 minutes 0.0.0.0:3306->3306/tcp, 33060/tcp mysql8
网络
如果用 driver 配置, 如下, 会自动创建 beaver-docker_mynet
, 会拼接上docker-compose.yml
文件目录的名称, 如果mysql 的不在同一目录下, 网络是不相通的
...networks:- mynet # 与 mysql 一个网络下
networks:mynet:driver: bridge
查看 docker 网络
docker network ls
NETWORK ID NAME DRIVER SCOPE
fded80a14cdd beaver-docker_mynet bridge local
41bdd66c8c62 bridge bridge local
1feac6175289 docker-mysql8_mynet bridge local
7900c55b5ea3 host host local
2940439894a8 none null local
所以 docker-compose.yml
网络设置修改为与mysql 同一网络
networks:- docker-mysql8_mynet # 与 mysql 一个网络下
networks:docker-mysql8_mynet:external: true # 外部网络#driver: bridge
连接
查询下 mysql 容器的 ip
docker inspect mysql8
..."Networks": {"docker-mysql8_mynet": {"IPAMConfig": null,"Links": null,"Aliases": ["mysql8","db","884cd0fcd595"],"NetworkID": "1feac6175289013e8d59abe6c27a18cc2d2e6b4d49d1237ead9cacdd9df11637","EndpointID": "b3c2b9e91cb5e62e3876c1f608eae873491df8b1f5485277a2ab794c0cc55f7a","Gateway": "172.30.0.1","IPAddress": "172.30.0.2","IPPrefixLen": 16,"IPv6Gateway": "","GlobalIPv6Address": "","GlobalIPv6PrefixLen": 0,"MacAddress": "02:42:ac:1e:00:02","DriverOpts": null
...
连接 mysql ip 172.30.0.2
, 就可以愉快地使用了, 对于服务器上连接数据库页面操作, 这实在是个神器!