文章目录
前言
上一篇文章 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-stopped
container_name: cloudbeaver
networks:
- 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
, 就可以愉快地使用了, 对于服务器上连接数据库页面操作, 这实在是个神器!