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
- Oracle兩個使用細節知識點Oracle
- [JAVA] Java switch的使用細節Java
- iOS中使用UICollectionView的細節iOSUIView
- Docker exec 命令的詳細使用Docker
- OpenFeign 使用細節
- Laravel 的一個命名細節分享Laravel
- TCP 中的兩個細節點TCP
- 一個小的技術細節
- vue元件使用的細節 is 屬性Vue元件
- UITextField使用的一些細節UI
- Termux使用的一些細節UX
- 細節決定成敗!APP設計不容忽視的20個細節APP
- 第三節 使用Docker映象Docker
- Docker框架的使用系列教程(四)容器的使用Docker框架
- GO 變數使用細節Go變數
- 10個細節提升後臺系統的使用者體驗
- Java之String類的使用細節Java
- (四)Docker安裝使用容器Docker
- 使用Covermap實現地形細節
- Spring(4)-AOP使用細節Spring
- 【譯】Celeste 手感的 10 個設計細節
- JavaScript初學者應注意的七個細節JavaScript
- 每個前端應該知道的jquery 細節前端jQuery
- Git 的一些使用細枝末節Git
- 再探go modules:使用與細節Go
- JVM(四)垃圾回收的實現演算法和執行細節JVM演算法
- 初次學習 Docker Volume 的基本使用 (四)Docker
- APP分析:使用者至上的設計細節APP
- 函式索引的使用細節——常數表示式函式索引
- Docker踩坑四個教訓 - resurfaceDocker
- 5個細節提高網站建設網站
- Java效能優化的45個細節(珍藏版)Java優化
- Java效能優化的50個細節(珍藏版)Java優化
- 邦芒面試:12個能為面試加分的細節面試
- 關於 Word Splitting 和 IFS 的三個細節
- 遊戲出海只是速記(四):市場偏好與文化細節遊戲
- 慢慢細談Android 面試的細節Android面試