通過(guò)idea打包項(xiàng)目到docker的操作方法
很多小伙伴一直想知道如何把項(xiàng)目放到docker中運(yùn)行,今天就為大家?guī)?lái)如何將自己的項(xiàng)目發(fā)布到docker中(Centos)
安裝虛擬機(jī)下載docker
直接訪問(wèn)官網(wǎng) 鏈接: docker官方文檔.
1、打開(kāi)官方首頁(yè),選擇download and install
2、選擇docker for linux
3、選擇centos版本(這里要根據(jù)自己的系統(tǒng)選擇合適的版本)
4、直接按照官網(wǎng)的操作來(lái)(選擇自己必要的步驟)
1)刪除之前已經(jīng)安裝的docker(必選)
sudo yum remove docker \ docker-client \ docker-client-latest \ docker-common \ docker-latest \ docker-latest-logrotate \ docker-logrotate \ docker-engine
2)安裝yum工具包(必選)
sudo yum install -y yum-utils
3)添加docker 倉(cāng)庫(kù)(必選)
sudo yum-config-manager \ --add-repo \ https://download.docker.com/linux/centos/docker-ce.repo
4) 可選參數(shù),根據(jù)自己的選擇添加(可選)
5)安裝docker 引擎(必選 若安裝其他版本 可以跳過(guò)此步)
sudo yum install docker-ce docker-ce-cli containerd.io
6)查看可選版本的docker(若已完成第五步可跳過(guò)此步)
yum list docker-ce --showduplicates | sort -r
7) 根據(jù)需要安裝特定版本的docker(若已完成第五步可跳過(guò)此步)
sudo yum install docker-ce-<VERSION_STRING> docker-ce-cli-<VERSION_STRING> containerd.io
8)啟動(dòng)docker(必選)
sudo systemctl start docker
9)設(shè)置docker 開(kāi)機(jī)自啟動(dòng)(可選)
systemctl enable docker
10)設(shè)置docker鏡像加速(可選,可以提高鏡像的下載速度)
sudo mkdir -p /etc/docker sudo tee /etc/docker/daemon.json <<-'EOF' { "registry-mirrors": ["https://sfgi0c9b.mirror.aliyuncs.com"] } EOF sudo systemctl daemon-reload sudo systemctl restart docker
5、自此docker 已經(jīng)安裝完畢,這里通過(guò)一個(gè)手動(dòng)將一個(gè)web項(xiàng)目部署到鏡像中的方法來(lái)測(cè)試docker 的狀態(tài),若想了解idea如何發(fā)布項(xiàng)目到docker 可以跳過(guò)這一步
手動(dòng)部署web項(xiàng)目到docker
1、創(chuàng)建一個(gè)web項(xiàng)目并打包(war)
鏈接: 下載項(xiàng)目.
2、下載tomcat鏡像
所有的鏡像都可以去docker hub上搜索
鏈接: docker hub.
安裝tomcat8 選擇tags標(biāo)簽頁(yè) 選擇版本
docker pull tomcat:8.5-jdk8-corretto
下載鏡像
3、查看下載好的鏡像
docker images
4、運(yùn)行該鏡像的一個(gè)實(shí)例
創(chuàng)建文件夾
mkdir -p /mydata/tomcat/webapps
將我們的web項(xiàng)目上傳到/mydata/tomcat/webapps目錄下
安裝rz命令(如果有文件傳輸工具可以用自己的)
yum install lrzsz
cd /mydata/tomcat/webapps
執(zhí)行rz命令上傳文件
rz
查看文件是否存在
ls
啟動(dòng)tomcat實(shí)例
docker run --name tomcat -itd -v /mydata/tomcat/webapps:/usr/local/tomcat/webapps -p 8080:8080 d2b
d2b 為鏡像id的前三個(gè)字母 可以全寫(xiě) 也可以寫(xiě)鏡像名加tag的形式
–name 為實(shí)例起一個(gè)名字
-v 掛載目錄 將容器外的mydata/tomcat/webapps與容器內(nèi)的/usr/local/tomcat/webapps目錄掛載一起 方便我們上傳項(xiàng)目可以直接在外部上傳,而不用進(jìn)入到容器內(nèi)部
-p 將內(nèi)部的8080端口與外部的8080端口綁定起來(lái) 我們可以通過(guò)外部的8080端口訪問(wèn)到容器內(nèi)部的8080端口
這三個(gè)參數(shù)最重要的參數(shù) 其他參數(shù)可自行參照docker run 參數(shù)表自行查看學(xué)習(xí)
鏈接: docker run 參數(shù).
我們看到當(dāng)前的項(xiàng)目包已經(jīng)解壓
查看實(shí)例運(yùn)行
docker ps (查看運(yùn)行中的實(shí)例) docker ps -a (查看所有的實(shí)例,包括啟動(dòng)跟為啟動(dòng)的)
我們可以看到 實(shí)例已經(jīng)啟動(dòng)
訪問(wèn)試一下效果
5、如何修改成80端口號(hào)?
1)停止并刪除原有的實(shí)例
docker stop tomcat docker rm <實(shí)例id>
2)重新運(yùn)行一個(gè)實(shí)例 映射80端口
docker run --name tomcat -itd -v /mydata/tomcat/webapps:/usr/local/tomcat/webapps -p 80:80 d2b
3)進(jìn)入容器內(nèi)部
docker exec -it tomcat /bin/bash tomcat為剛才起的實(shí)例名
4)找到/usr/local/tomcat/conf/server.xml 進(jìn)行更改 進(jìn)入到容器內(nèi)部 就和外部操作一樣了
vi /usr/local/tomcat/conf/server.xml
5)退出容器
exit
6)重啟容器
docker restart tomcat //設(shè)置容器開(kāi)機(jī)自啟動(dòng) docker update --restart=always <容器名字>
6、如何把容器打包在其他地方部署?
我們可以把制作后好的容器進(jìn)行打包成鏡像
1)容器打包成鏡像
docker commit -a -m <容器id> <自己起的容器的名字>
docker commit -a "zhnagdong" -m "測(cè)試" d98 tomcattest
2)查看打包完成的鏡像
docker images
然后導(dǎo)出鏡像 兩種方法 第一種直接導(dǎo)出文件的形式 進(jìn)行移動(dòng) 第二種通過(guò)上傳到docker hub然后通過(guò)遠(yuǎn)程拉取的方式
3)通過(guò)導(dǎo)出文件的方式
直接運(yùn)行命令
docker save -o tomcat.tar 814 //-o 代表保存成文件 814鏡像的id
在合適的地方 導(dǎo)入容器
docker load --input tomcat.tar 或 docker load < tomcat.tar
4)通過(guò)上傳到docker 倉(cāng)庫(kù)的形式 (要有docker hub 的賬號(hào) 需要先注冊(cè))
首先需要打個(gè)tag
docker tag tomcattest:latest dwyerdocker/tomcattest:v1
//tomcattest:latest 格式為REPOSITORY:TAG
// dwyerdocker/tomcattest:v1 格式為 username/name:tag name與tag自己起 username必須是docker hub上的用戶名 不然無(wú)法推上去倉(cāng)庫(kù)
登陸docker hub 賬號(hào)
docker login
推送鏡像到遠(yuǎn)程倉(cāng)庫(kù)
docker push dwyerdocker/tomcattest:v1
來(lái)到我們的倉(cāng)庫(kù) 再合適的地方拉取我們的鏡像就可以了
以上就是我們docker的基本使用,下面將為大家講解如何用idea構(gòu)建docker鏡像并部署項(xiàng)目
通過(guò)idea部署項(xiàng)目到docker
1、首先我們小修改docker配置文件 讓遠(yuǎn)程可以訪問(wèn)
由于我們的docker 默認(rèn)不支持我們的tcp協(xié)議 我們要在讓tcp協(xié)議生效
打開(kāi)docker 的配置文件
vi /lib/systemd/system/docker.service
在 Execstart最后配置tcp協(xié)議 -H tcp://0.0.0.0:2375
重啟docker
systemctl daemon-reload systemctl restart docker
查看進(jìn)程信息 我們發(fā)現(xiàn)此時(shí)docker 已經(jīng)支持tcp協(xié)議
ps -ef | grep docker
2、確保idea安裝了docker 插件
3、在根路徑下創(chuàng)建DockerFile文件
FROM java:8 VOLUME /tmp ADD /target/spring-demo-0.0.1-SNAPSHOT.jar app.jar EXPOSE 8080 ENTRYPOINT ["java","-Djava.security.egd=file:/dev/./urandom","-jar","/app.jar"]
4、測(cè)試docker 是否連通
若訪問(wèn)超時(shí) 查看防火墻是否未關(guān)閉
systemctl stop firewalld
5、添加配置
配置暴露的端口號(hào)
6、打包項(xiàng)目
7、右鍵點(diǎn)擊部署
部署前最好重啟一下docker 注意端口號(hào)沖突
8、查看效果
到此這篇關(guān)于通過(guò)idea打包項(xiàng)目到docker的操作方法的文章就介紹到這了,更多相關(guān)idea打包到docker內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
云原生使用Docker部署mysql數(shù)據(jù)庫(kù)的詳細(xì)過(guò)程
使用docker部署mysql,可以省去mysql的安裝配置過(guò)程,而且不限制數(shù)量,即起即用,下面這篇文章主要給大家介紹了關(guān)于云原生使用Docker部署mysql數(shù)據(jù)庫(kù)的詳細(xì)過(guò)程,需要的朋友可以參考下2023-03-03Docker容器化應(yīng)用與結(jié)構(gòu)
本文詳細(xì)講解了Docker的容器化應(yīng)用與結(jié)構(gòu),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2022-04-04docker部署管理工具portainer-ce的實(shí)現(xiàn)
Portainer是一個(gè)可視化的容器鏡像的圖形管理工具,利用Portainer可以輕松構(gòu)建,管理和維護(hù)Docker環(huán)境,本文主要介紹了docker部署管理工具portainer-ce的實(shí)現(xiàn),感興趣的可以了解一下2023-08-08Docker部署springboot項(xiàng)目到騰訊云的實(shí)現(xiàn)步驟
本文主要介紹了Docker部署springboot項(xiàng)目到騰訊云的實(shí)現(xiàn)步驟,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2022-04-04docker?pull?mysql報(bào)missing?signature?key錯(cuò)誤解決辦法
這篇文章主要給大家介紹了關(guān)于docker?pull?mysql報(bào)missing?signature?key錯(cuò)誤的解決辦法,docker pull mysql命令用于從Docker Hub下載MySQL鏡像,需要的朋友可以參考下2023-11-11一文帶大家了解和使用Docker鏡像倉(cāng)庫(kù)
本文主要介紹一下容器鏡像倉(cāng)庫(kù)的使用,包括公有倉(cāng)庫(kù)和自己搭建的私有倉(cāng)庫(kù),文中有詳細(xì)的代碼示例,以及圖解,對(duì)我們了解和使用 Docker 鏡像倉(cāng)庫(kù)有一定的幫助,需要的朋友可以參考下2023-06-06