文章目錄
- 前言
- 文件目錄
- docker-compose.yml
- 網絡
- 連接
前言
當你迷茫的時候,請點擊 Docker 實戰目錄 快速查看前面的技術文章,相信你總能找到前行的方向
上一篇文章 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
, 就可以愉快地使用了, 對于服務器上連接數據庫頁面操作, 這實在是個神器!