寫給還用Win伺服器的朋友,該轉型Linux啦

語言: CN / TW / HK

theme: fancy highlight: arduino-light


前言

  • 線上音樂戳我呀!
  • 音樂部落格原始碼上線啦!
  • 前兩個月有一段時間沒有寫文章了,不是我懶,而是最近專案加班太嚴重了,連續加班一個星期,專案經理自己下班早,看不到凌晨三點努力的我們,就說版本不可延期,上線後請一天假休息還撕破嘴皮。
  • 做一件事,最心酸的莫過於你已經很努力幹活了,甚至沒有一點怨言,只想聽到別人對你的讚揚,心裡可能就足矣,最怕人家根本不領情,反倒過來說你這不好,那不好。
  • 當然晚上還是會花點時間學習,畢竟時間就像牛奶一樣,擠一點總會有的。
  • 之前在順德工作伺服器是Win,導致我的伺服器一直都是Win,換工作到廣州,伺服器基本都是Linx,發現Linx各種好,對於我現在,空間是一道硬傷,於是我決定遷移成Linx系統。
  • 下面一步一步帶你走進全過程 | Java篇。

阿玲第一次混搭爆炒,還不是為了把蝦吃掉。

269675952909cc05cb6471f09aebd2b.jpg

需求

目前音樂部落格部署在Win7上,應用主要有: - 後端有 - Java作為第三方應用,需要安裝Java映象(✔️) - Node作為主後臺,需要安裝Node映象 - 資料庫有 * Java連線Oracle,需要安裝Oracle映象 * Node連線Mysql,需要安裝Mysql映象 - 前端專案部署在Nginx,需要安裝Nginx映象 - 歌詞服務也是部署在Node上 - Node連線的是Mysql,需要安裝Mysql映象 - Java連線的是Oracle,需要安裝Oracle映象 - 音樂檔案存放在Minio上

需要將以上應用遷移到Linx上,幹!

很多公司不讓碰伺服器,現在可以看看關注我,記錄從Linux上無到有,全過程。
這一篇是主要還是寫給還在用win伺服器的、準備遷移Linux的朋友,可以練習遷移伺服器到Linux,Linux有很多好處,最可見的就是空間、速度快...
遷移過程中,勢必會有很多坑等著你來解決,上方的需求都會寫上,本篇主要講解Docker部署Java,其他應用後續持續更新,敬請期待!

一、阿里雲換Linux系統

首先是將伺服器換成Linux系統。

如果要使用Linux,我們需要兩個軟體xshell、xfrp來連線伺服器,可以看看使用xshell實現windows和vm虛擬機器上的centos檔案互傳功能(以及安裝xshell)

選擇阿里雲後臺 -- 伺服器運維 -- 重置系統

2.png

系統映象就像官方原版,應用映象就像在官方原版的基礎上,安裝了一些軟體。

1.1 系統映象

Alibaba Cloud Linux:新出的映象,CentOS的分叉(如果不需要安裝什麼應用環境就建議安裝)

1.2 應用映象

Docker

PS:系統映象、應用映象只能二選一。

最終決定:選擇Docker應用映象,因為就算選了阿里的系統映象,也會去安裝docker,程式放在docker,到時候打包搬家也方便,也順便學學docker(是主要😁)。

1.png

✔️伺服器環境已成功將Win7換成linux、Docker。

1.3 系統映象和應用映象是什麼區別

系統映象就像官方原版,應用映象就像在官方原版的基礎上,安裝了一些軟體,省去了自己安裝的煩惱。

二、Docker執行Jar包

上面選擇Docker應用映象後,伺服器上會自動安裝Docker環境。

我將jar包放在 /home/java 目錄下。

2.1 Dockerfile的建立

構建映象需要建立一個Dockerfile檔案,這是一個構建映象用的文字檔案,它沒有後綴格式,就叫Dockerfile。

Dockerfile檔案:

FROM java:8 MAINTAINER zeze COPY eureka-server.jar app.jar CMD java -jar app.jar EXPOSE 7000

引數說明

  • FROM java:8

    • 基礎映象是docker倉庫的java8映象,這樣我們建立的映象就有jdk了,才能執行jar包。
  • MAINTAINER zeze

    • 映象作者是zeze。
  • COPY eureka-server.jar app.jar

    • 簡化jar的名字路徑,因為eureka的jar包在當前資料夾下,所以直接寫檔名字就行。
  • CMD java -jar app.jar

    • 執行cmd命令,會在啟動容器時執行(其實就是寫我們平時執行jar包的命令)。
  • EXPOSE 7000

    • 設定對外埠為7000。

2.2 構建映象

在docker中,使用cd命令切換到jar包資料夾目錄下(我在/home/java目錄),然後執行命令。

java docker build -t eureka .

如此就構建成功了。

注意:
build的時候,映象名字不能是大寫,之前命名叫bokeJava是會報錯的。
當然你寫成boke.java也是可以的。

2.3 檢視docker映象

使用docker images命令可以檢視已有映象

17.png

可以看到我們建立的eureka映象。

2.4 使用映象啟動容器

java docker run -d -p 7000:7000 eureka

引數說明

  • -d

    • 後臺執行,去掉-d的話我們啟動容器後會進入該容器,看到日誌的列印什麼的。
  • -p 7000:7000

    • 埠對映,後一個7000表示映象的埠(這裡我們eureka埠是7000,所以都統一用了7000埠)。
  • eureka

    • 我們的映象名稱,也可以換成映象id。

18.png

如此就啟動成功了。

2.5 檢視容器

docker ps -a

19.png

可以看到我們的eureka容器。

使用docker ps檢視的是成功執行的容器,而docker ps -a檢視的是全部容器,包括執行失敗的容器。

2.6 測試

jar包看日誌是沒有報錯的,外網訪問一下,發現不通。

解決:埠要全部保持一致,springboot裡面的埠、Dockerfile的埠、Linux的埠要對映好,也就是docker run -d -p 7000:7000 eureka要對映對應。阿里雲端口要開放,也懷疑是閘道器沒配,但阿里雲預設幫我們配置了。

檢查一遍,發現springboot專案裡面的埠寫的不是7000,所以改過來就訪問成功了。

26.png

最後

我們完成了需求之一:Java作為第三方應用,已遷移到Linux的Docker中。

我們總是喜歡以專案來驅動學習,不是嗎?

我也是,通過個人專案 - 線上音樂 來驅動我學習Linux系統、Docker、Java、Nginx等等前端可能接觸不到的知識,我想這可能就是管理層的“廣度”。

下篇講解Mysql,回見啦~

相關文獻

系統映象和應用映象是什麼區別

Docker執行jar包

以往推薦

Typora拖拉圖片生成線上圖片 | Gitee圖床

多圖詳解,一次性啃懂原型鏈(上萬字)

Vue-Cli3搭建元件庫

Vue實現動態路由(和麵試官吹專案亮點)

專案中你不知道的Axios騷操作(手寫核心原理、相容性)

VuePress搭建專案元件文件

vue-typescript-admin-template後臺管理系統

原文連結

https://juejin.cn/post/7021284581022105636/