使用項目 https://gitee.com/weim/spring-boot-redis 中的first項目進行修改java
完成後的項目鏈接 https://gitee.com/weim/docker-firstmysql
*****************************************************************************************************git
有問題能夠參考如下內容github
你也能夠參考spring boot 官方文檔 https://spring.io/guides/gs/spring-boot-docker/redis
也能夠參考該博客http://www.spring4all.com/article/557spring
*****************************************************************************************************sql
一 添加插件依賴docker
在pom.xml中添加 dockerfile-maven-plugin 插件。 數據庫
<plugin> <groupId>com.spotify</groupId> <artifactId>dockerfile-maven-plugin</artifactId> <version>1.3.7</version> <configuration> <repository>my/one</repository> <buildArgs> <JAR_FILE>target/${project.build.finalName}.jar</JAR_FILE> </buildArgs> </configuration> </plugin>
該插件信息https://github.com/spotify/dockerfile-mavenapp
下載不下來的話,請修改maven的settings.xml文件,添加如下內容
<pluginGroups> <pluginGroup>com.spotify</pluginGroup> </pluginGroups>
二 編寫Dockerfile文件
FROM java:8 VOLUME /tmp ADD target/first-0.0.1-SNAPSHOT.jar app.jar #ENV JAVA_OPTS="" #ENTRYPOINT exec java $JAVA_OPTS -Djava.security.egd=file:/dev/./urandom -jar /app.jar ENTRYPOINT ["java","-Djava.security.egd=file:/dev/./urandom","-jar","/app.jar"]
Dockerfile文件和pom.xml文件同級別
三 修改application.properties
首先在本地查看ip地址,找到一下信息
docker0 Link encap:Ethernet ××××××××××××××××××××××××××× inet addr:172.17.0.1 ××××××××× Mask:255.255.0.0
將數據庫中的localhost修改成上面的172.17.0.1
spring.datasource.url=jdbc:mysql://172.17.0.1:3306/test
將redis修改成172.17.0.1
spring.redis.host=172.17.0.1
** 必定要確保你的mysql和redis能夠遠程鏈接
四 啓動
a. 使用命令mvn clean package dockerfile:build
進行編譯執行,成功以後
b. 使用命令docker image ls
能夠看到生成的鏡像
$ docker image ls REPOSITORY TAG IMAGE ID CREATED SIZE my/one latest a9d0b04d7dc8 25 minutes ago 683MB
c. 使用命令
nohup docker run -p 8085:8088 -v /etc/localtime:/etc/localtime:ro --rm --name mine2 my/one &
能夠啓動該鏡像。使用nohup是想把日誌打印到本地。
-p 映射端口 -v 掛載 該部分是掛載本地時間到容器時間,保持時間一致 --rm 容器中止時刪除該容器 --name 容器重命名
d. 訪問http://localhost:8085 能夠看到頁面打印出hello user