很多小伙伴一直想知道如何把項目放到docker中運行,今天就為大家?guī)砣绾螌⒆约旱捻椖堪l(fā)布到docker中(Centos)
安裝虛擬機下載docker
直接訪問官網(wǎng) 鏈接: docker官方文檔.
1、打開官方首頁,選擇download and install
![](/d/20211016/1c8930ba370edd774dc89e410a57638e.gif)
2、選擇docker for linux
![](/d/20211016/6daf5bf4cac66b2c5108a1f26a4cf13a.gif)
3、選擇centos版本(這里要根據(jù)自己的系統(tǒng)選擇合適的版本)
![](/d/20211016/6d1a1df5b57fc28039f313f0b86130db.gif)
4、直接按照官網(wǎng)的操作來(選擇自己必要的步驟)
![](/d/20211016/2f8492994884384cf7cada93cfb5646e.gif)
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 倉庫(必選)
sudo yum-config-manager \
--add-repo \
https://download.docker.com/linux/centos/docker-ce.repo
4) 可選參數(shù),根據(jù)自己的選擇添加(可選)
![](/d/20211016/11238d675a64eb417ccba44ace7f9210.gif)
5)安裝docker 引擎(必選 若安裝其他版本 可以跳過此步)
sudo yum install docker-ce docker-ce-cli containerd.io
6)查看可選版本的docker(若已完成第五步可跳過此步)
yum list docker-ce --showduplicates | sort -r
7) 根據(jù)需要安裝特定版本的docker(若已完成第五步可跳過此步)
sudo yum install docker-ce-<VERSION_STRING> docker-ce-cli-<VERSION_STRING> containerd.io
8)啟動docker(必選)
sudo systemctl start docker
9)設置docker 開機自啟動(可選)
10)設置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)安裝完畢,這里通過一個手動將一個web項目部署到鏡像中的方法來測試docker 的狀態(tài),若想了解idea如何發(fā)布項目到docker 可以跳過這一步
手動部署web項目到docker
1、創(chuàng)建一個web項目并打包(war)
鏈接: 下載項目.
2、下載tomcat鏡像
所有的鏡像都可以去docker hub上搜索
鏈接: docker hub.
![](/d/20211016/cd3c7dd02ccfe549b898053b4a88d399.gif)
![](/d/20211016/229a319269b9177033ddc28601cd1907.gif)
安裝tomcat8 選擇tags標簽頁 選擇版本
![](/d/20211016/8182c3dff02b6ed9f9b9ba7003d565ae.gif)
docker pull tomcat:8.5-jdk8-corretto
下載鏡像
![](/d/20211016/cd141956f5dedc1916c94c6d76cbe080.gif)
3、查看下載好的鏡像
![](/d/20211016/4b027d9cba9f17b779388ccf8f497b36.gif)
4、運行該鏡像的一個實例
創(chuàng)建文件夾
mkdir -p /mydata/tomcat/webapps
將我們的web項目上傳到/mydata/tomcat/webapps目錄下
安裝rz命令(如果有文件傳輸工具可以用自己的)
cd /mydata/tomcat/webapps
執(zhí)行rz命令上傳文件
rz
![](/d/20211016/c31d83ce9225899970962eba62c2a4e2.gif)
查看文件是否存在
ls
![](/d/20211016/ee65285ac89da08bf14273b6e6b345e5.gif)
啟動tomcat實例
docker run --name tomcat -itd -v /mydata/tomcat/webapps:/usr/local/tomcat/webapps -p 8080:8080 d2b
d2b 為鏡像id的前三個字母 可以全寫 也可以寫鏡像名加tag的形式
–name 為實例起一個名字
-v 掛載目錄 將容器外的mydata/tomcat/webapps與容器內的/usr/local/tomcat/webapps目錄掛載一起 方便我們上傳項目可以直接在外部上傳,而不用進入到容器內部
-p 將內部的8080端口與外部的8080端口綁定起來 我們可以通過外部的8080端口訪問到容器內部的8080端口
這三個參數(shù)最重要的參數(shù) 其他參數(shù)可自行參照docker run 參數(shù)表自行查看學習
鏈接: docker run 參數(shù).
![](/d/20211016/bb2002568792ea8f77d6ab9957196769.gif)
我們看到當前的項目包已經(jīng)解壓
查看實例運行
docker ps (查看運行中的實例)
docker ps -a (查看所有的實例,包括啟動跟為啟動的)
![](/d/20211016/1e0911d8ed664eba2b0f2dd3946cdb3a.gif)
我們可以看到 實例已經(jīng)啟動
訪問試一下效果
http://192.168.240.3:8080/hello/
5、如何修改成80端口號?
1)停止并刪除原有的實例
docker stop tomcat
docker rm <實例id>
![](/d/20211016/9b118aab6a1f04dd4d2d8854e950e886.gif)
2)重新運行一個實例 映射80端口
docker run --name tomcat -itd -v /mydata/tomcat/webapps:/usr/local/tomcat/webapps -p 80:80 d2b
3)進入容器內部
docker exec -it tomcat /bin/bash
tomcat為剛才起的實例名
4)找到/usr/local/tomcat/conf/server.xml 進行更改 進入到容器內部 就和外部操作一樣了
vi /usr/local/tomcat/conf/server.xml
![](/d/20211016/af6cc6ee1750aa77abecf393efe0e00c.gif)
5)退出容器
exit
6)重啟容器
docker restart tomcat
//設置容器開機自啟動
docker update --restart=always <容器名字>
6、如何把容器打包在其他地方部署?
我們可以把制作后好的容器進行打包成鏡像
1)容器打包成鏡像
docker commit -a -m <容器id> <自己起的容器的名字>
docker commit -a "zhnagdong" -m "測試" d98 tomcattest
2)查看打包完成的鏡像
![](/d/20211016/33d0d4ac73fc252ef9c08212c4af63c2.gif)
然后導出鏡像 兩種方法 第一種直接導出文件的形式 進行移動 第二種通過上傳到docker hub然后通過遠程拉取的方式
3)通過導出文件的方式
直接運行命令
docker save -o tomcat.tar 814
//-o 代表保存成文件 814鏡像的id
![](/d/20211016/88cc15bbce1dc1a1969aaea167d4c854.gif)
在合適的地方 導入容器
docker load --input tomcat.tar 或 docker load < tomcat.tar
4)通過上傳到docker 倉庫的形式 (要有docker hub 的賬號 需要先注冊)
首先需要打個tag
docker tag tomcattest:latest dwyerdocker/tomcattest:v1
//tomcattest:latest 格式為REPOSITORY:TAG
// dwyerdocker/tomcattest:v1 格式為 username/name:tag name與tag自己起 username必須是docker hub上的用戶名 不然無法推上去倉庫
![](/d/20211016/e27f300da2fb499b278b8192355866b8.gif)
登陸docker hub 賬號
推送鏡像到遠程倉庫
docker push dwyerdocker/tomcattest:v1
來到我們的倉庫 再合適的地方拉取我們的鏡像就可以了
![](/d/20211016/aedbf1d179442fc12b52ecaf61dbe2b1.gif)
以上就是我們docker的基本使用,下面將為大家講解如何用idea構建docker鏡像并部署項目
通過idea部署項目到docker
1、首先我們小修改docker配置文件 讓遠程可以訪問
由于我們的docker 默認不支持我們的tcp協(xié)議 我們要在讓tcp協(xié)議生效
打開docker 的配置文件
vi /lib/systemd/system/docker.service
![](/d/20211016/74bffdddd663fb903cb4dc339831fb29.gif)
在 Execstart最后配置tcp協(xié)議 -H tcp://0.0.0.0:2375
![](/d/20211016/46f7ec012acf5cfe98dc222e00e06ff9.gif)
重啟docker
systemctl daemon-reload
systemctl restart docker
查看進程信息 我們發(fā)現(xiàn)此時docker 已經(jīng)支持tcp協(xié)議
![](/d/20211016/a8af9d0138df480f5b3af8a2d9c97714.gif)
2、確保idea安裝了docker 插件
![](/d/20211016/41bd17b288e45a5ec32ad875042e38f5.gif)
3、在根路徑下創(chuàng)建DockerFile文件
![](/d/20211016/d1f664a4579c25db7ec7b2509662e548.gif)
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、測試docker 是否連通
![](/d/20211016/317f8f9dcb47c4bd261617660732732f.gif)
若訪問超時 查看防火墻是否未關閉
5、添加配置
![](/d/20211016/86a56fc3e23d2e32e6815473abd39227.gif)
配置暴露的端口號
![](/d/20211016/c8ea6a8464e6b7b907638342786a309e.gif)
![](/d/20211016/722bdcafecab1a598d4a311dca1195cf.gif)
6、打包項目
![](/d/20211016/89683de54844cd37a9b509811bc1b0b8.gif)
7、右鍵點擊部署
部署前最好重啟一下docker 注意端口號沖突
![](/d/20211016/e236c0c553c8089adba3cdbc9768dbf9.gif)
8、查看效果
![](/d/20211016/d738e5d700885d36d059609c79a32674.gif)
到此這篇關于通過idea打包項目到docker的操作方法的文章就介紹到這了,更多相關idea打包到docker內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!