1. 程式人生 > >記一次docker部署springboot專案,mysql以及redis一樣是docker中安裝

記一次docker部署springboot專案,mysql以及redis一樣是docker中安裝

一:首先 在idea中的springboot專案打成jar包,具體是方式是如下
這裡寫圖片描述
這裡寫圖片描述
這裡寫圖片描述這裡的資料庫密碼和賬戶必須是真確的,資料庫和redis也是在docker中安裝的

二:在docker中安裝mysql的服務
這裡的linux的版本是centos,具體安裝docker就不介紹了
執行docker search mysql 這裡的最新版本是8.0版本了 如果採用的話 專案中使用這個的話就會導致一般的5.X的jar不合適,這樣的話本地和線上的資料庫本本不一致,上線時需要更話jar包 所以採用docker pull mysql:5.6

下載下來之後就會有一個mysql5.6的映象
同理安裝redis的映象

這裡寫圖片描述

mysql:執行
docker run -p 3306:3306 –name mymysql -v /root/data/conf:/etc/mysql/conf.d -v /root/data/logs:/logs -v /root/data/data:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=zhs -d mysql:5.6

redis執行
docker run –name redis -p 6379:6379 -v $PWD/data:/data -d redis redis-server –appendonly yes

具體含義可以自行百度,反正我是知道了

docker ps 可以看見2個服務正在啟動
這裡寫圖片描述

三:構建springboot映象
建立一個資料夾 用來存放自己的jar包 以及dockerfile檔案
進入建立的資料夾中,touch Dockerfile

基礎映象,採用的時jdk8

FROM java:8

作者的資訊

MAINTAINER 70kg [email protected]

建立一個數據卷

VOLUME /tmp
//將專案新增到映象中 並重命名為app.jar
ADD telnet-0.0.1-SNAPSHOT.jar app.jar
RUN bash -c ‘touch /app.jar’

啟動時執行命令

ENTRYPOINT [“java”,”-Djava.security.egd=file:/dev/./urandom”,”-jar”,”/app.jar”]

在該目錄中執行docker build -t –name telnet .
構建映象 這裡的.是必須的 表示當前目錄中的dockerfile

在使用dokcer images 可以檢視到已經存在的映象 telnet

4:啟動專案
現在已經知道了 mysql 和redis服務都已經啟動了
所有直接執行docker run -d –name telnet -p 8888:8888 telnet就行了 嗎?一開始我也是這麼做的,後來發現啟動的時候是沒有問題,但是總是訪問不到,後開docker logs -f -t(時間) –tail 10 (實時的列印日誌)發現mysql總是連線不上去,然後修改了mysql的配置檔案 增加wait_time,發現還是不行,後來想到了 是不是mysql在另一臺容器的原因 所以在啟動容器的時候執行 docker run -d –name telnet -p 8888:8888 –link=mysql(容器名):my(別名) –link=redis:re telnet
這是後啟動的日誌沒有問題
這裡寫圖片描述
再次訪問就沒有問題了