1. 程式人生 > >Docker容器入門之一:部署SpringBoot專案

Docker容器入門之一:部署SpringBoot專案

一、環境準備:

    1、vm虛擬機器: Workstation 12 Pro 12.5.7 build-5813279

    2、Centos 7

在虛擬機器上安裝好Centos7系統後,就可以開始準備安裝Docker了。由於不想每次都敲sudo去獲取許可權什麼的,本人直接是使用root賬號登入的。下面開始正文。

二、Docker安裝和配置

    1、安裝方式一: 
[[email protected] ~]# yum install docker
     2、安裝方式二:
[[email protected] ~]# curl -fsSL https://get.docker.com/|sh

上面兩種方法都可以進行安裝,只不過方式二的版本會更加新。接下來等待安裝完成。

    3、檢查是否安裝成功:
[[email protected] ~]# docker version
  成功後會輸出以下資訊(Client有資訊即可):


   4、啟動Docker服務並設定開機啟動:
[[email protected] ~]# systemctl start docker
[[email protected] ~]# systemctl enable docker
  5、配置下國內映象服務(不是必須):
vim /etc/docker/daemon.json

{
  "registry-mirrors": ["https://aj2rgad5.mirror.aliyuncs.com"]
}

Ps: 這裡格式一定要正確,標準的json格式,不然服務不能啟動!!!

 6、配置遠端連線(後續要用):
vim /usr/lib/systemd/system/docker.service 

找到文中如下行:

ExecStart=/usr/bin/dockerd 
將其修改為:
ExecStart=/usr/bin/dockerd -H tcp://127.0.0.1:2375 -H unix:///var/run/docker.sock
127.0.0.1修改為當前虛擬機器內的Ip既可。

注:配置生效後可用:curl 127.0.0.1:2375測試是否成功。

成功會顯示:

7、重啟服務使配置生效:
[[email protected] ~]# systemctl deamon-reload

[
[email protected]
~]# systemctl restart docker.service

到此為止Docker的部分基本已經完成!恭喜!恭喜!(Ps:我剛開始的時候怎麼就這麼不順利呢orz!)

三、SpringBoot專案的容器化

    1、通過Spring Initializr快速建立一個SpringBoot專案,然後簡單寫一個控制器:


然後在POM里加入Docker的外掛:

<plugin>
				<groupId>com.spotify</groupId>
				<artifactId>docker-maven-plugin</artifactId>
				<version>0.4.13</version>
				<configuration>
					<imageName>spring/${project.artifactId}</imageName>
					<dockerDirectory>src/main/docker</dockerDirectory>
					<dockerHost>http://127.0.0.1:2375</dockerHost>
					<resources>
						<resource>
							<targetPath>/</targetPath>
							<directory>${project.build.directory}</directory>
							<include>${project.build.finalName}.jar</include>
						</resource>
					</resources>
				</configuration>
			</plugin>

這裡注意兩個標籤:

<imageName>:這個是映象的名稱,上述的映象名稱就是: spring/docekertest

<docherHost>:這個是容器服務的IP地址,就是虛擬機器上的IP,請務必替換掉!

二:編寫Dockerfile:

      建立檔案,結構如下:


    內容如下:

FROM java
VOLUME /tmp
ADD dockertest-0.0.1-SNAPSHOT.jar app.jar
RUN bash -c 'touch /app.jar'
ENV JAVA_OPTS=""
ENTRYPOINT [ "sh", "-c", "java $JAVA_OPTS -Djava.security.egd=file:/dev/./urandom -jar /app.jar" ]

先啟動專案測試下: OK!

然後就是打包了:  先package 生成jar包 再 docker:build 等待完成。

成功資訊:


到此這個專案已經變成映象了,可以使用容器去啟動了。

四、啟動容器

    讓我們切回虛擬機器,開啟終端,輸入如下命令:
[[email protected] ~]# docker run -p 8080:8080 -t spring/dockertest

出現熟悉的Springboot啟動Banner 成功!

 .   ____          _            __ _ _
 /\\ / ___'_ __ _ _(_)_ __  __ _ \ \ \ \
( ( )\___ | '_ | '_| | '_ \/ _` | \ \ \ \
 \\/  ___)| |_)| | | | | || (_| |  ) ) ) )
  '  |____| .__|_| |_|_| |_\__, | / / / /
 =========|_|==============|___/=/_/_/_/
 :: Spring Boot ::       (v1.5.13.RELEASE)

這時候切回Windows開啟瀏覽器輸入 Docker的服務IP:8080就可以訪問專案了!

大功告成!

ps:也是經過一天的時間不斷實踐網上各位大神們的經驗,再結合自己的實際體驗,整理出來的一篇文章。希望能幫到其他人吧