最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

docker部署java服務(wù)的超完整步驟

 更新時(shí)間:2023年03月14日 10:36:45   作者:花無名v5  
本人在做實(shí)驗(yàn)過程中,需要通過Java程序部署docker容器,故嘗試搜集資料,下面這篇文章主要給大家介紹了關(guān)于docker部署java服務(wù)的超完整步驟,需要的朋友可以參考下

目的

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

2.通過docker進(jìn)行部署,熟悉docker命令

3.打包發(fā)布到docker hub

系統(tǒng)安裝

安裝centos7系統(tǒng),首先拉取鏡像

docker pull centos:centos7

查看鏡像是否下載成功

docker images

通過images命令可以看到鏡像版本、id、創(chuàng)建時(shí)間、鏡像大小等信息。

運(yùn)行容器

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

通過run命令啟動(dòng)成功后,會(huì)返回容器id。

-itd 其實(shí)是 -i -t -d 三個(gè)參數(shù)組合在了一起,因?yàn)閐ocker中單參數(shù)可以進(jìn)行組合,所以這樣寫沒有問題。

–name 是指定啟動(dòng)后的容器的名稱

–privileged 這個(gè)命令可以讓用戶具有容器的root權(quán)限;能看到宿主機(jī)的一些設(shè)備,并可以執(zhí)行mount操作;可以在docker容器中在啟動(dòng)docker
centos:centos7 則是要啟動(dòng)的鏡像信息,centos為鏡像名稱,centos7為鏡像版本

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

查看容器啟動(dòng)信息

docker ps

通過docker ps命令可以看到容器id、名稱、創(chuàng)建時(shí)間等信息

docker-ps

通過exec進(jìn)入容器

docker exec -it centos-test /bin/bash

軟件安裝

安裝服務(wù)部署所需的軟件,本次通過docker部署服務(wù),僅用到j(luò)dk、mysql。本文僅對(duì)這兩個(gè)軟件進(jìn)行安裝和啟動(dòng)的說明。

jdk安裝

查找系統(tǒng)中是否存在jdk

yum list java-1.8*

安裝java1.8

yum install java-1.8.0-openjdk* -y

驗(yàn)證是否安裝成功

java -version

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

java-version

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

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

啟動(dòng)JAVA_HOME中jdk的路徑換成自己安裝的路徑即可。

mysql安裝

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

先查詢mysql的可安裝版本

yum search mysql

查到的版本會(huì)有很多,mysql-community-server.x86_64 安裝這個(gè)版本就可以

通過yum安裝mysql

yum install mysql-community-server.x86_64

mysql安裝的時(shí)候遇到一個(gè)報(bào)錯(cuò) Check that the correct key URLs are configured for this repository
這個(gè)是因?yàn)閏ontos7中的 GPG repository配置有問題,不想耗費(fèi)過多時(shí)間,使用了 --nogpgcheck 來進(jìn)行異常忽略

最終執(zhí)行成功的mysql安裝命令如下

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

mysql啟動(dòng),先使用了service的方式啟動(dòng)

service mysqld start

啟動(dòng)中出現(xiàn)異常1:
service command not found
service命令沒找到。service的路徑為 /sbin/service,先看 /sbin/service 這個(gè)文件有沒有,如果沒有進(jìn)行安裝
執(zhí)行service安裝命令

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

再次啟動(dòng)中出現(xiàn)異常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.
這個(gè)原因是centos7之后CentOS開始使用systemd服務(wù)來代替daemon,service只保留極少部分命令,其他的由systemctl代替。

最終執(zhí)行的mysql啟動(dòng)命令如下

systemctl start mysqld

執(zhí)行中出現(xiàn) Failed to get D-Bus connection: Operation not permitted 異常,是因?yàn)閐ocker中安裝centos無法使用systemctl命令管理進(jìn)程,所以啟動(dòng)docker的時(shí)候需要授權(quán)。所以在第一步docker啟動(dòng)的時(shí)候需要加 –privileged 參數(shù)。

修改mysql密碼

查看mysql臨時(shí)密碼

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

通過臨時(shí)密碼進(jìn)行登陸。登陸命令為

mysql -uroot -p 回車后再輸入臨時(shí)密碼

進(jìn)入mysql命令行后修改密碼

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

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

java服務(wù)上傳

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

docker cp test.jar containerId:/path

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

容器打包

經(jīng)過上邊的操作后,容器已完成所有配置,這個(gè)時(shí)候我們可以把容器打包,發(fā)布到docker hub上。這樣我們?cè)谄渌?wù)器上部署的時(shí)候,就可以通過鏡像來部署,會(huì)省事很多。鏡像后續(xù)要傳到docker hub中,所以打包名稱要把docker hub的用戶名包含進(jìn)去。

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

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

打包之后的鏡像可以發(fā)布到 https://hub.docker.com/ 中,以后用到,直接docker pull就可以。
要進(jìn)行發(fā)布,在hub.docker.com注冊(cè)好賬號(hào)后,命令行中執(zhí)行

docker login

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

docker push dockerHubUserName/imageName[:TAG]

注意

1.容器中不要存數(shù)據(jù)!不要存數(shù)據(jù)!不要存數(shù)據(jù)!

因?yàn)閐ocker容器是基于鏡像進(jìn)行啟動(dòng),只要鏡像存在,容器可以隨意增刪,如果數(shù)據(jù)存在容器中,非常容易丟失。

可以使用 -v、–mount 等命令,把數(shù)據(jù)存儲(chǔ)到宿主機(jī)中。

2.鏡像在啟動(dòng)時(shí),有其他的命令需要執(zhí)行,可以使用docker file等。盡量使容器啟動(dòng)變簡(jiǎn)單。

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

總結(jié)

到此這篇關(guān)于docker部署java服務(wù)的超完整步驟的文章就介紹到這了,更多相關(guān)docker部署java服務(wù)內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • ubuntu如何完全干凈的卸載docker

    ubuntu如何完全干凈的卸載docker

    這篇文章主要介紹了ubuntu如何完全干凈的卸載docker問題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-05-05
  • Windows下Docker安裝各種軟件的詳細(xì)過程

    Windows下Docker安裝各種軟件的詳細(xì)過程

    這篇文章主要介紹了Windows下Docker安裝各種軟件的詳細(xì)過程,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2021-07-07
  • Docker報(bào)錯(cuò):OCI?runtime?exec?failed:?exec?failed:?container_linux.go:380:?starting?container?process的解決方法

    Docker報(bào)錯(cuò):OCI?runtime?exec?failed:?exec?failed:?contain

    這篇文章主要給大家介紹了關(guān)于Docker報(bào)錯(cuò):OCI?runtime?exec?failed:?exec?failed:?container_linux.go:380:?starting?container?process的解決方法,文中通過圖文介紹的非常詳細(xì),需要的朋友可以參考下
    2022-07-07
  • docker?scan掃描查看鏡像內(nèi)目錄方式

    docker?scan掃描查看鏡像內(nèi)目錄方式

    非官方dockerscan與dockerdiff工具用于容器調(diào)試,需解壓鏡像文件,遇到GBK編碼錯(cuò)誤及NameError,需修改源碼編碼為utf-8并正確安裝依賴
    2025-09-09
  • Linux上使用docker啟動(dòng)redis并遠(yuǎn)程訪問的實(shí)現(xiàn)

    Linux上使用docker啟動(dòng)redis并遠(yuǎn)程訪問的實(shí)現(xiàn)

    這篇文章主要介紹了Linux上使用docker啟動(dòng)redis并遠(yuǎn)程訪問的實(shí)現(xiàn)方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-04-04
  • 如何使用Docker部署FTP和Nginx并通過HTTP訪問FTP里的文件

    如何使用Docker部署FTP和Nginx并通過HTTP訪問FTP里的文件

    本文介紹了如何使用Docker部署FTP服務(wù)器和Nginx,并通過HTTP訪問FTP中的文件,通過將FTP數(shù)據(jù)目錄掛載到Nginx容器內(nèi),Nginx可以提供文件列表和下載功能,推薦使用Docker Compose來管理容器
    2025-03-03
  • Docker鏡像管理常用操作代碼示例

    Docker鏡像管理常用操作代碼示例

    這篇文章主要介紹了Docker鏡像管理常用操作代碼示例,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-10-10
  • docker容器在uos-12038.101上啟動(dòng)報(bào)錯(cuò)的解決辦法

    docker容器在uos-12038.101上啟動(dòng)報(bào)錯(cuò)的解決辦法

    這篇文章主要介紹了docker容器在uos-12038.101上啟動(dòng)報(bào)錯(cuò)的問題,解決方案是需要在/etc/systemd/system/或者 /usr/lib/systemd/system/
    找到docker.service文件,在ExecStart=/usr/bin/dockerd后面添加 --default-ulimit nofile=65536:65536參數(shù),需要的朋友可以參考下
    2024-03-03
  • 關(guān)于Docker容器Dead狀態(tài)的分析

    關(guān)于Docker容器Dead狀態(tài)的分析

    這篇文章主要介紹了關(guān)于Docker容器Dead狀態(tài)的分析,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-07-07
  • Docker從零開始搭建、配置與深度理解?Nginx?服務(wù)(探索Nginx的旅程)

    Docker從零開始搭建、配置與深度理解?Nginx?服務(wù)(探索Nginx的旅程)

    文章介紹了Nginx的基本概念、安裝配置、以及在CentOS和Ubuntu上的實(shí)戰(zhàn)操作,通過本文的學(xué)習(xí),讀者可以掌握Nginx作為Web服務(wù)器和反向代理的使用,并能夠解決常見問題,感興趣的朋友跟隨小編一起看看吧
    2025-11-11

最新評(píng)論

敦化市| 隆化县| 那坡县| 秭归县| 涡阳县| 陆川县| 上饶县| 察哈| 濉溪县| 射阳县| 苏尼特左旗| 丹东市| 虹口区| 柯坪县| 邵东县| 东光县| 黄梅县| 抚宁县| 贡嘎县| 北海市| 定州市| 东宁县| 安平县| 邢台县| 佛学| 朝阳市| 兰考县| 南丹县| 宿州市| 紫阳县| 本溪市| 吴桥县| 台中市| 易门县| 嘉祥县| 安阳县| 定结县| 沽源县| 武邑县| 旬阳县| 南澳县|