雲伺服器:如何在docker容器中部署應用

宵雲科技發表於2019-11-22

雲伺服器:如何在 docker容器中部署應用? docker是開發者的開放平臺,容器是可擴充套件的,可更安全的使用和部署。Docker容器能夠共享一個核心並共享應用程式庫,這裡介紹在Docker容器中部署簡單的Spring Boot應用。

一個簡單的Hello World應用。

1.1 Maven依賴

<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>1.5.4.RELEASE</version>
<relativePath/> <!-- lookup parent from repository -->
</parent>

引入spring-boot-starter-web來建立一個Web應用。

<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>

1.2 主應用程式

@SpringBootApplicationpublic class FirtSpringBootApplication {
public static void main(String[] args) {
SpringApplication.run(FirtSpringBootApplication.class, args);
}
}

1.3 服務介面

RESTful服務介面:

@RestControllerpublic class HelloController {
@RequestMapping("/hello")
public String hello() {
return "Hello World";
}
}

2 安裝Docker,安裝完畢後,Docker環境的虛擬IP是192.168.99.100。

3 部署應用

3.1 Spring Boot應用打包

在Spring Boot應用工程目錄下執行mvn 打包命令:

mvn package spring-boot:repackage

工程的target目錄裡生成了一個jar包 firtSpringBoot-0.0.1-SNAPSHOT.jar。將jar包更名為firtSpringBoot-1.0.jar上傳到Docker環境裡。

3.2 Dockerfile檔案

Dockfile原則上是一個批處理檔案,包含了構建映象的命令。將這些命令放入檔案中並不是絕對必要的,因為我們可以將它們傳遞到命令列,只是使用檔案更簡單一些。

現在建立一個Dockerfile:

FROM alpine:edge
MAINTAINER peterwanghao.com
RUN apk add --no-cache openjdk8
VOLUME /tmp
ADD firtSpringBoot-1.0.jar firtSpringBoot.jar
EXPOSE 8080ENTRYPOINT ["java","-jar","/firtSpringBoot.jar"]

3.3建立映象

在Dockerfile檔案目錄下執行docker build命令,這將下載基映象並一條接一條地執行Dockerfile檔案中的條目。建立的映象的名字是first,標籤1.0。–rm=true,在整個構建過程成功後刪除中間環節的容器。

$docker build -t first:1.0 --rm=true .

使用docker images命令列出所有的映象和它們的詳細資訊。

docker@default:~/first-spring-boot$ docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
first 1.0 02f67d8c308d 17 hours ago 119MB
hello-world latest e38bc07ac18e 6 weeks ago 1.85kB
alpine edge 5c4fa780951b 4 months ago 4.15MB

3.4 執行容器

接下來,我們將執行容器。使用下面的命令載入並執行容器。

docker run --name=first -p 8080:8080 -t first:1.0

使用docker ps命令列出正在執行的容器

docker@default:~/first-spring-boot$ docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
9fc3aef6e852 first:1.0 "java -jar /firtSpri 5 hours ago Up 5 hours 0.0.0.0:8080->8080/tcp first


來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/69948194/viewspace-2665323/,如需轉載,請註明出處,否則將追究法律責任。

相關文章