中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

docker如何部署java服務

發布時間:2023-03-14 16:18:52 來源:億速云 閱讀:114 作者:iii 欄目:開發技術

本篇內容主要講解“docker如何部署java服務”,感興趣的朋友不妨來看看。本文介紹的方法操作簡單快捷,實用性強。下面就讓小編來帶大家學習“docker如何部署java服務”吧!

    目的

    1.在centos上安裝mysql、jdk,之后完成java服務部署

    2.通過docker進行部署,熟悉docker命令

    3.打包發布到docker hub

    系統安裝

    安裝centos7系統,首先拉取鏡像

    docker pull centos:centos7

    查看鏡像是否下載成功

    docker images

    通過images命令可以看到鏡像版本、id、創建時間、鏡像大小等信息。

    docker如何部署java服務

    運行容器

    docker run -itd --name centos-test --privileged centos:centos7 init

    通過run命令啟動成功后,會返回容器id。

    -itd 其實是 -i -t -d 三個參數組合在了一起,因為docker中單參數可以進行組合,所以這樣寫沒有問題。

    –name 是指定啟動后的容器的名稱

    –privileged 這個命令可以讓用戶具有容器的root權限;能看到宿主機的一些設備,并可以執行mount操作;可以在docker容器中在啟動docker
    centos:centos7 則是要啟動的鏡像信息,centos為鏡像名稱,centos7為鏡像版本

    這里給出的部署命令參數較少,其他的參數還有 -p、-P、-r、-s等命令,本文中不做詳細介紹,詳情可參考 docker命令詳解

    查看容器啟動信息

    docker ps

    通過docker ps命令可以看到容器id、名稱、創建時間等信息

    docker如何部署java服務

    通過exec進入容器

    docker exec -it centos-test /bin/bash

    軟件安裝

    安裝服務部署所需的軟件,本次通過docker部署服務,僅用到jdk、mysql。本文僅對這兩個軟件進行安裝和啟動的說明。

    jdk安裝

    查找系統中是否存在jdk

    yum list java-1.8*

    安裝java1.8

    yum install java-1.8.0-openjdk* -y

    驗證是否安裝成功

    java -version

    使用上邊的docker exec命令進入到容器中,只想java -verson查看jdk是否安裝成功,安裝成功顯示如下。

    docker如何部署java服務

    此外通過yum install jdk的方式有一個好處,PATH路徑會自動給配置好。如果沒有配置的話,需要手動將JAVA_HOME、JAR_HOME等信息在profile中配置。配置項如下:

    JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.342.b07-1.el7_9.x86_64
    JRE_HOME=$JAVA_HOME/jre
    CLASS_PATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar:$JRE_HOME/lib
    PATH=$PATH:$JAVA_HOME/bin:$JRE_HOME/bin
    export JAVA_HOME JRE_HOME CLASS_PATH PATH

    啟動JAVA_HOME中jdk的路徑換成自己安裝的路徑即可。

    mysql安裝

    本文中安裝的mysql是 Server version: 5.7.39 MySQL,如果安裝其他版本可能有所不同。

    先查詢mysql的可安裝版本

    yum search mysql

    查到的版本會有很多,mysql-community-server.x86_64 安裝這個版本就可以

    通過yum安裝mysql

    yum install mysql-community-server.x86_64

    mysql安裝的時候遇到一個報錯 Check that the correct key URLs are configured for this repository
    這個是因為contos7中的 GPG repository配置有問題,不想耗費過多時間,使用了 --nogpgcheck 來進行異常忽略

    最終執行成功的mysql安裝命令如下

    yum install mysql-community-server.x86_64 --nogpgcheck

    mysql啟動,先使用了service的方式啟動

    service mysqld start

    啟動中出現異常1:
    service command not found
    service命令沒找到。service的路徑為 /sbin/service,先看 /sbin/service 這個文件有沒有,如果沒有進行安裝
    執行service安裝命令

    yum install initscripts
    安裝之后如果還是報錯,看下環境配置文件有沒有sevice路徑的配置
    centos環境變量配置在以下幾個文件中
    /etc/profile
    ~/.bashrc
    ~/.bash_profile
    在配置文件中看看有沒有 PATH的配置,如果沒有加一下,缺哪個路徑也加一下就可以
    PATH=$PATH:$HOME/bin:/sbin:/usr/bin:/usr/sbin

    再次啟動中出現異常2:
    The service command supports only basic LSB actions (start, stop, restart, try-restart, reload, force-reload, status). For other actions, please try to use systemctl.
    這個原因是centos7之后CentOS開始使用systemd服務來代替daemon,service只保留極少部分命令,其他的由systemctl代替。

    最終執行的mysql啟動命令如下

    systemctl start mysqld

    執行中出現 Failed to get D-Bus connection: Operation not permitted 異常,是因為docker中安裝centos無法使用systemctl命令管理進程,所以啟動docker的時候需要授權。所以在第一步docker啟動的時候需要加 –privileged 參數。

    修改mysql密碼

    查看mysql臨時密碼

    grep ‘temporary password' /var/log/mysqld.log

    通過臨時密碼進行登陸。登陸命令為

    mysql -uroot -p 回車后再輸入臨時密碼

    進入mysql命令行后修改密碼

    ALTER USER ‘userName'@‘localhost' IDENTIFIED BY ‘root123';

    修改的密碼如果太簡單,會出現如下異常
    ERROR 1819 (HY000): Your password does not satisfy the current policy requirements
    出現密碼太簡單的異常時,先后執行下邊的兩步,再次設置密碼就可以了。第一步修改policy參數,第二部修改密碼長度。
    set global validate_password_policy=0;
    set global validate_password_length=1;

    java服務上傳

    通過上邊步驟,已在docker內完成java服務依賴軟件的安裝,這一步只需要在本地ide中打java包,然后將java包上傳到docker服務器

    docker cp test.jar containerId:/path

    docker cp為文件上傳到docker的命令。test.jar為本地jar包,containerId為容器id,/path是文件上傳到docker之后的路徑。
    在執行這個命令是,test.jar可以寫絕對路徑,如果是相對路徑,需要進入到test.jar所在目錄再執行.

    容器打包

    經過上邊的操作后,容器已完成所有配置,這個時候我們可以把容器打包,發布到docker hub上。這樣我們在其他服務器上部署的時候,就可以通過鏡像來部署,會省事很多。鏡像后續要傳到docker hub中,所以打包名稱要把docker hub的用戶名包含進去。

    docker commit -m ‘打包測試' -a ‘sungy' centos-test dockerHubUserName/testCom:v1

    commit 命令就是將容器打包成鏡像。 -m 打包信息 -a 作者信息 fblog-server 要打包的容器名稱 testCom:v1 打包后名稱及版本號。

    打包之后的鏡像可以發布到 https://hub.docker.com/ 中,以后用到,直接docker pull就可以。
    要進行發布,在hub.docker.com注冊好賬號后,命令行中執行

    docker login

    輸入賬號密碼,完成登陸后就可以push鏡像 imageName是鏡像名稱,tag是打包時設置的版本。需要注意鏡像要上傳到自己的dockerhub中,所以打包的鏡像需要包含docker hub的用戶名。

    docker push dockerHubUserName/imageName[:TAG]

    注意

    1.容器中不要存數據!不要存數據!不要存數據!

    因為docker容器是基于鏡像進行啟動,只要鏡像存在,容器可以隨意增刪,如果數據存在容器中,非常容易丟失。

    可以使用 -v、–mount 等命令,把數據存儲到宿主機中。

    2.鏡像在啟動時,有其他的命令需要執行,可以使用docker file等。盡量使容器啟動變簡單。

    3.容器不要太大,太大了,部署、再打包都很慢。這次打包出來的鏡像有1.5G,后邊要想辦法減少一些,500M以內應該是比較合理的。

    到此,相信大家對“docker如何部署java服務”有了更深的了解,不妨來實際操作一番吧!這里是億速云網站,更多相關內容可以進入相關頻道進行查詢,關注我們,繼續學習!

    向AI問一下細節

    免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

    AI

    芦溪县| 商城县| 房山区| 鄂州市| 土默特右旗| 桦甸市| 子洲县| 资源县| 额尔古纳市| 长垣县| 乐至县| 滦平县| 利川市| 嘉黎县| 凤阳县| 全椒县| 舒城县| 金湖县| 新乡市| 新沂市| 铁岭市| 五莲县| 武夷山市| 高安市| 黄石市| 肥东县| 普陀区| 深水埗区| 西昌市| 淄博市| 凤山市| 社旗县| 通海县| 郁南县| 合水县| 政和县| 大关县| 阳城县| 望江县| 聂荣县| 秀山|