淺析docker-compose部署mysql無(wú)法訪問(wèn)的問(wèn)題
什么是Docker-Compose
Compose項(xiàng)目來(lái)源于之前的fig項(xiàng)目,使用python語(yǔ)言編寫,與docker/swarm配合度很高。Compose 是 Docker 容器進(jìn)行編排的工具,定義和運(yùn)行多容器的應(yīng)用,可以一條命令啟動(dòng)多個(gè)容器,使用Docker Compose不再需要使用shell腳本來(lái)啟動(dòng)容器。 Compose 通過(guò)一個(gè)配置文件來(lái)管理多個(gè)Docker容器,在配置文件中,所有的容器通過(guò)services來(lái)定義,然后使用docker-compose腳本來(lái)啟動(dòng),停止和重啟應(yīng)用,和應(yīng)用中的服務(wù)以及所有依賴服務(wù)的容器,非常適合組合使用多個(gè)容器進(jìn)行開(kāi)發(fā)的場(chǎng)景。docker-compose默認(rèn)的模板文件是 docker-compose.yml,其中定義的每個(gè)服務(wù)都必須通過(guò) image 指令指定鏡像或 build 指令(需要 Dockerfile)來(lái)自動(dòng)構(gòu)建。
使用 Compose 基本會(huì)有如下三步流程:
1.在 Dockfile 中定義你的應(yīng)用環(huán)境,使其可以在任何地方復(fù)制。
2.在 docker-compose.yml 中定義組成應(yīng)用程序的服務(wù),以便它們可以在隔離的環(huán)境中一起運(yùn)行。
3.最后,運(yùn)行dcoker-compose up,Compose 將啟動(dòng)并運(yùn)行整個(gè)應(yīng)用程序。
下面看下docker-compose部署mysql無(wú)法訪問(wèn)的問(wèn)題。
這個(gè)問(wèn)題困擾了我很久,當(dāng)使用docker-compose
部署mysql之后,進(jìn)行容器后,使用mysql -u root -p
是可以訪問(wèn)的,而使用sql客戶端卻是無(wú)法連接的,于是在google上找了很多資料,終于被我發(fā)現(xiàn),添加 command: --default-authentication-plugin=mysql_native_password
即可解決這個(gè)問(wèn)題,它還是和密碼加密方式有關(guān)。
version: "3.3" services: Redis: image: sameersbn/redis:latest ports: - "6379:6379" volumes: - redis_data:/var/lib/redis restart: always mysql: image: mysql:latest restart: always command: --default-authentication-plugin=mysql_native_password #這行代碼解決無(wú)法訪問(wèn)的問(wèn)題 networks: - dev ports: - "3306:3306" environment: MYSQL_ROOT_PASSWORD: abc123 MYSQL_USER: 'test' MYSQL_PASS: 'test' volumes: - mysql_data:/var/lib/mysql networks: dev: driver: bridge volumes: redis_data: mysql_data:
總結(jié)
以上所述是小編給大家介紹的docker-compose部署mysql無(wú)法訪問(wèn)的問(wèn)題,希望對(duì)大家有所幫助,如果大家有任何疑問(wèn)請(qǐng)給我留言,小編會(huì)及時(shí)回復(fù)大家的。在此也非常感謝大家對(duì)腳本之家網(wǎng)站的支持!
相關(guān)文章
Docker?Compose與Docker鏡像倉(cāng)庫(kù)詳解
Docker?Compose可以基于Compose文件幫我們快速的部署分布式應(yīng)用,而無(wú)需手動(dòng)一個(gè)個(gè)創(chuàng)建和運(yùn)行容器,這篇文章主要介紹了Docker?Compose與Docker鏡像倉(cāng)庫(kù),需要的朋友可以參考下2023-03-03一文教你如何通過(guò) Docker 快速搭建各種測(cè)試環(huán)境
這篇文章主要介紹了一文教你如何通過(guò) Docker 快速搭建各種測(cè)試環(huán)境,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2019-07-07docker容器狀態(tài)的轉(zhuǎn)換實(shí)現(xiàn)
這篇文章主要介紹了docker容器狀態(tài)的轉(zhuǎn)換實(shí)現(xiàn),具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2020-11-11打包docker鏡像推送到遠(yuǎn)程服務(wù)器并部署到k8s的方法步驟
本文主要介紹了打包docker鏡像推送到遠(yuǎn)程服務(wù)器并部署到k8s的方法步驟,文中通過(guò)示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2021-11-11Docker安裝MySQL及授權(quán)遠(yuǎn)程訪問(wèn)的詳細(xì)教程
Docker是一種流行的容器化平臺(tái),可以簡(jiǎn)化應(yīng)用程序的部署和管理,下面這篇文章主要給大家介紹了關(guān)于Docker安裝MySQL及授權(quán)遠(yuǎn)程訪問(wèn)的相關(guān)資料,文中通過(guò)代碼介紹的非常詳細(xì),需要的朋友可以參考下2024-05-05docker部署vue項(xiàng)目的實(shí)現(xiàn)步驟
當(dāng)我們?cè)诒镜亻_(kāi)發(fā)了一個(gè)vue項(xiàng)目之后,肯定是想部署到服務(wù)器上供其他人訪問(wèn),本文主要介紹了docker部署vue項(xiàng)目的實(shí)現(xiàn)步驟,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2022-07-07