環境說明
linux系統版本:lsb_release -a
docker 版本: docker -v
不同的作業系統以及軟體版本,可能會遇到不一樣的問題,一定要注意版本問題。
檢視docker中 mysql的版本,可以去官網,需要kx上網才能開啟。
https://hub.docker.com/
最好是確認自己的伺服器已經設定阿里雲的映象加速,或者使用騰訊的,網易的都是可以的。
自己選,設定之後下載映象的速度回快很多。
sudo mkdir -p /etc/docker
sudo tee /etc/docker/daemon.json <<-'EOF'
{
"registry-mirrors": ["https://registry-vpc.cn-hangzhou.aliyuncs.com"]
}
EOF
檢視自己的windows電腦上面安裝的jdk版本,為JDK1.8,因此拉取的Java映象服務也最好是JDK1.8的版本。
然後去官網查詢對應的映象資源。
建議最好選擇官方的映象,避免出現一些奇奇怪怪的問題。
由於JDK8現在開始收費,因此只能使用OpenJDK的映象。
.1.拉取Java映象.
docker pull java:openjdk-8
執行時報錯
接著把名字更換為openjdk:8 ,映象下載成功。
.2.執行java容器。
.a.先建立一個Java目錄.
.b.在本地準備一個可執行的jar包,並且在本地可以正確訪問。
.c.將jar包上傳到伺服器上,使用Java映象啟動服務。
啟動服務,命令如下
docker run -d -p 8081:8081 -v /opt/u01/exam/java/WebBackend.jar:/project/WebBackend.jar \
--name exam openjdk:8 \
java -jar /project/WebBackend.jar
或者下面的命令
docker run -d -p 8081:8081 -v /opt/u01/exam/java:/project \
--name exam openjdk:8 \
java -jar /project/WebBackend.jar
引數說明:
docker run 表示執行docker 容器
-d 表示以後臺模式執行
-p 8081:8081 表示將宿主機上的8081埠對映到java容器中的8081埠
-v /opt/u01/exam/java/WebBackend.jar:/project/WebBackend.jar 表示將宿主機上的jar包檔案掛載到Java容器中
-v /opt/u01/exam/java:/project 表示將宿主機上的路徑掛載到Java容器中
--name exam 表示給容器服務取一個名稱
openjdk:8 表示映象名,使用映象ID同樣可以
java -jar /project/WebBackend.jar 表示jar包的啟動命令,注意路徑是java容器中的路徑。
建議:直接掛載路徑比較好,因為執行JavaWeb服務時,還需要列印日誌。
檢視JDK版本
docker exec -it 容器名或者ID /bin/bash
.d.登入阿里雲伺服器開啟8081埠。
控制檯-->我的資源-->點選(例項)進入-->安全組-->安全組詳情-->手動新增(入站規則) ,如下圖所示
.3.訪問測試。
訪問成功。
補充:關於日誌路徑的配置。
自己使用的是logback列印日誌,簡單配置示例如下。
執行服務後,就會自動生成日誌目錄和日誌,並且同樣可以使用 taif -f 日誌檔名 動態地檢視日誌
到此,使用docker 部署jar包並檢視日誌全部完成。
遇到的問題:docker 貌似不能單獨部署一個java容器,需要執行具體的服務,比如執行一個Java檔案,
啟動一個JavaWeb服務等等。有知道的技術大佬歡迎指教!
參考博文
https://juejin.cn/post/7249647793898586172
https://blog.csdn.net/weixin_43471518/article/details/126541339
https://juejin.cn/post/6844904167920975886
https://hub.docker.com/_/java/tags?page=1&ordering=last_updated&name=openjdk-8