約 1 分鐘閱讀

Read in English →

使用Docker容器部署Java Spring伺服器

在這份指南中,我將展示如何使用Docker部署Java Spring伺服器。請按照以下步驟操作:

在這份指南中,我將展示如何使用Docker部署Java Spring伺服器。請按照以下步驟操作:

1.啟動一個Ubuntu Server

對於這份演示,我們假設你已經啟動了一個運行Ubuntu 14.04的伺服器。使用APT資源庫安裝Docker:

sudo apt-get update
sudo apt-get install apt-transport-https ca-certificates
sudo apt-key adv --keyserver hkp://p80.pool.sks-keyservers.net:80 --recv-keys 58118E89F3A912897C070ADBF76221572C52609D

使用你最喜歡的文字編輯器打開/etc/apt/sources.list.d/docker.list,並添加以下行:

deb [https://apt.dockerproject.org/repo](https://apt.dockerproject.org/repo) ubuntu-trusty main

繼續在伺服器上安裝Docker:

sudo apt-get update
sudo apt-get install docker-engine
sudo service docker start

2.構建Docker映像

登入Docker Hub (https://hub.docker.com/),並創建新的儲存庫。然後,在你的終端機運行:

docker login

被提示時輸入您的用戶名和密碼。

在你的本地開發Java Spring資料夾,創建一個Dockerfile,內容如下:

FROM frolvlad/alpine-oraclejdk8:slim
VOLUME /tmp
ADD target/fleet-beacon*.jar app.jar
EXPOSE 8080
RUN sh -c 'touch /app.jar'
ENTRYPOINT ["java", "-jar", "/app.jar"]

要構建映像,執行:

docker build -t username/repo-name .

這裡,-t代表”tag”。將username和repo-name替換成你的Docker Hub用戶名和儲存庫名稱。也不要忘記最後的句點。

將構建的映像推送到您的遠程儲存庫:

docker push username/repo-name

3.拉取Docker映像

在您的遠程Ubuntu伺服器上,登入Docker並拉取映像:

docker pull username/repo-name

在後臺運行容器:

docker run -d -p 8080:8080 username/repo-name

這裡,-d表示”detached”, -p指定所有暴露的端口(例如,8080)都應該發布到主機接口。

4.設置Nginx

使用Vim編輯器,打開/etc/nginx/sites-available/default並將其修改如下:

server {
  listen 80 default_server;
  listen [::]:80 default_server ipv6only=on;

  root /usr/share/nginx/html;
  index index.html index.htm;
  server_name localhost;

  location / {
    proxy_set_header X-Forwarded-Host $host;
    proxy_set_header X-Forwarded-Server $host;
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    proxy_pass [http://localhost:8080/](http://localhost:8080/);
  }
}

退出並使用:wq!保存。

就這樣!打開瀏覽器,導航到你的遠程伺服器的IP地址;你應該能看到Java Spring頁面運行正常。

5.問題排查

如果你遇到Docker守護進程連接的問題,出現:

Cannot connect to the Docker daemon. Is the Docker daemon running on this host?

運行以下命令:

eval $(docker-machine env default)

如果你正在本地測試且找不到你的IP地址,用這個命令找到它:

docker-machine ls

如果你遇到任何其他問題,請隨時在下方留言。

繼續探索這個主題

  • 為Python Flask Server建立Docker映像檔 - 一步一步指導

    為Python Flask應用程序創建Docker映像可以簡化部署,並確保在各種環境中保持一致性。 Docker將應用程序及其依賴關系封裝到一個可以移動的容器中。在這篇博客文章中,我們將逐步介紹如何為一個簡單的Python Flask服務器建立Docker映像。

  • 超越「買」與「建」你的AI採購策略需要第三個選項

    「應該自建還是外購?」這個問題困擾了技術領導者數十年。但在AI時代,這種非此即彼的思維方式已經顯得危險且不合時宜。如今,企業平均同時推進十個AI計劃,其中43%的企業同時運行五到十個——在這樣的規模下,採購策略一旦失誤,代價前所未有地高昂。

  • 企業架構師的AI採購價值指南

    我接觸到的大多數企業,在AI上的投入比以往任何時候都多,但換來的清晰度卻越來越少。預算已經批了,供應商在四處遊說,高管的簡報裡滿是「轉型」二字。然而表象之下,同一個令人不安的現實不斷浮現:數據沒有準備好、平台沒有準備好、用例也不夠成熟到可以規模化。

返回文章列表