docker安裝tomcat和mysql
docker安裝tomcat
- 下載tomcat
docker pull tomcat
2. 運行容器
docker run -p 8080:8080 -d --name tomcat tomcat
- 訪問tomcat
此時查看容器是已經成功啓動,但是卻訪問不了。
進入容器內部進一步查找原因
看到tomcat默認部署應用的目錄 webapps 裏面爲空,難怪訪問不了,但是有個類似的目錄webapps.dist,
我們看到原本在webapps目錄下面的文件現在都在webapps.dist目錄下面
ps:爲了tomcat能正常訪問,可以選擇在容器裏面將webapps.dist目錄下的內容複製到webapps裏面或掛載本地數據卷的方式到weapps目錄下還可以根據官方tomcat鏡像製作一個能直接訪問的tomcat鏡像。
這裏採用掛載宿主機目錄的方式。
方式一 直接修改容器內tomcat文件
進入容器 -- docker exec -it tomcat bash
複製webapps.dist裏面文件到webapps目錄下 -- cp -r webapps.dist/* webapps/
重啓tomcat容器 -- docker restart tomcat
方式二 將宿主機文件掛載到容器相應目錄
// 我們先在本地創建一個 tomcat 目錄
mkdir /usr/local/tomcat
// 將容器內 webapps.dist的內容複製到宿主機
// 我們先在本地創建一個 tomcat 目錄
mkdir /usr/local/tomcat
// 將容器內 webapps.dist的內容(只複製ROOT目錄就行了,僅僅測試而已)複製到宿主機指定目錄
docker cp tomcat:/usr/local/tomcat/webapps.dist/ROOT .
// 以掛載的形式啓動tomcat
docker run -p 8080:8080 -d --name tomcat -v /usr/local/tomcat:/usr/local/tomcat/webapps tomcat
docker安裝mysql
- 由於mysql數據庫作爲數據存儲媒介,勢必會產生數據寫入,所以一般來講是需要將mysql容器內部的動態數據通過掛載的方式映射到宿主機指定的目錄,實現持久化
1.下載mysql鏡像
docker pull mysql
2.啓動mysql容器
docker run -p 3306:3306 -d --name mysql -e MYSQL_ROOT_PASSWORD=root -v 宿主機數據目錄:/var/lib/mysql mysql
注意:mysql8修改了加密規則,如果客戶端使用Navicat連接,會出現加密算法報錯的問題,啓動mysql容器後進入容器使用mysql命令行執行以下命令即可。
alter user 'root'@'%' identified with mysql_native_password by '密碼';
flush privileges;