Docker 初探(二) spring boot + docker

使用項目 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

相關文章
相關標籤/搜索