Docker 19.03.13的四個使用細節
最先提一句,據說docker若崩潰難以恢復,docker上是否放mysql需要慎重考慮
1.localhost在docker裡意味著什麼?
不是docker所在的伺服器的ip地址
docker裡的tomcat容器上的web專案連線mysql的url中,例如
spring.datasource.url=jdbc:mysql://域名:3306/資料庫名?characterEncoding=UTF-8&serverTimezone=GMT
如果這個mysql和這裡的docker安裝在同一臺伺服器上(當然實際生產環境時MySQL單獨存放的),無論這個mysql安裝docker上還是直接安裝在linux上,
域名不要使用localhost(這相當於一個相對地址),
而要用ip地址(這相當於一個絕對地址),
例如連線docker裡的mysql容器,用localhost會導致連線mysql失敗,tomcat執行日誌報sqlException和communicationException異常:
2.如何登入docker裡的mysql容器?
執行在docker裡的mysql容器,linux上訪問它要加 -h 127.0.0.1, 如:
mysql -h 127.0.0.1 -u root -p
當然要訪問它也可以使用客戶端navicat。
3.關於docker上的mysql容器裡面的庫及其表的存在或清空問題
3.1docker
執行關閉容器命令
docker stop 容器id
,此前建立的庫表依然存在 。
執行刪除容器命令
docker rm 容器id
,此前建立的庫表被清空。
3.2docker-compose
(1)執行關閉或關閉並刪除命令
docker-compose stop|down
之後 ,之前建立的庫表依然存在。
(2)執行構建命令
docker-compose build
或 執行構建並啟動命令
docker-compose up --build
,之前建立的庫表被清空。
4.docker-compose啟動支援類似事務回滾的設定嗎?
在執行命令
docker-compose up -d
之後,有的容器啟動失敗雖然會報錯,但是其餘容器照常啟動並執行,不會發生類似事務回滾的機制。
如果可以設定事務回滾的機制是否更加合理?即同一個docker-compose.yml管理的所有容器,只要啟動失敗的容器,那麼其餘所有容器都不應該照常啟動執行。
相關文章
- Docker映象細節Docker
- OpenFeign 使用細節
- [JAVA] Java switch的使用細節Java
- Docker exec 命令的詳細使用Docker
- [20200409]使用ash_wait_chains注意的一個細節.txtAI
- Laravel 的一個命名細節分享Laravel
- 一個小的技術細節
- TCP 中的兩個細節點TCP
- vue元件使用的細節 is 屬性Vue元件
- Termux使用的一些細節UX
- Docker框架的使用系列教程(四)容器的使用Docker框架
- Spring(4)-AOP使用細節Spring
- GO 變數使用細節Go變數
- 第三節 使用Docker映象Docker
- (四)Docker安裝使用容器Docker
- 使用Covermap實現地形細節
- 【譯】Celeste 手感的 10 個設計細節
- 初次學習 Docker Volume 的基本使用 (四)Docker
- Git 的一些使用細枝末節Git
- 再探go modules:使用與細節Go
- 關於使用vector時需要注意的細節
- Docker Swarm 核心概念及詳細使用DockerSwarm
- JVM(四)垃圾回收的實現演算法和執行細節JVM演算法
- 模切企業如何管控生產環節的每個細節
- Docker踩坑四個教訓 - resurfaceDocker
- 5個細節提高網站建設網站
- Java效能優化的50個細節(珍藏版)Java優化
- Java效能優化的45個細節(珍藏版)Java優化
- 電商選品需要注意的8個細節
- Spring Boot 2.0(四):使用 Docker 部署 SprSpring BootDocker
- 使用Docker Context連線遠端節點DockerContext
- 使用嚮導介面 豐富細節的移倉助手
- 慢慢細談Android 面試的細節Android面試
- 配置vsftpd匿名使用服務,個人使用者使用以及虛擬使用者使用配置細節!FTP
- 小細節
- EfficientNet模型的完整細節模型
- 五個你所不知道的Flutter開發細節Flutter
- 幾個你不知道的dubbo註冊中心細節