通過idea打包項目到docker的操作方法

很多小夥伴一直想知道如何把項目放到docker中運行,今天就為大傢帶來如何將自己的項目發佈到docker中(Centos)

安裝虛擬機下載docker

直接訪問官網 鏈接: docker官方文檔.

1、打開官方首頁,選擇download and install

首頁

2、選擇docker for linux

選擇docker for linux

3、選擇centos版本(這裡要根據自己的系統選擇合適的版本)

選擇centos

4、直接按照官網的操作來(選擇自己必要的步驟)

直接照著步驟來

1)刪除之前已經安裝的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) 可選參數,根據自己的選擇添加(可選)

可選參數

5)安裝docker 引擎(必選 若安裝其他版本 可以跳過此步)

sudo yum install docker-ce docker-ce-cli containerd.io

6)查看可選版本的docker(若已完成第五步可跳過此步)

yum list docker-ce --showduplicates | sort -r

7) 根據需要安裝特定版本的docker(若已完成第五步可跳過此步)

 sudo yum install docker-ce-<VERSION_STRING> docker-ce-cli-<VERSION_STRING> containerd.io

8)啟動docker(必選)

sudo systemctl start docker

9)設置docker 開機自啟動(可選)

systemctl enable 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 已經安裝完畢,這裡通過一個手動將一個web項目部署到鏡像中的方法來測試docker 的狀態,若想瞭解idea如何發佈項目到docker 可以跳過這一步

手動部署web項目到docker

1、創建一個web項目並打包(war)
鏈接: 下載項目.
2、下載tomcat鏡像
所有的鏡像都可以去docker hub上搜索

鏈接: docker hub.

docker hub首頁搜錯tomcat
選擇合適的鏡像版本

安裝tomcat8 選擇tags標簽頁 選擇版本

選擇合適的版本進行下載

docker pull tomcat:8.5-jdk8-corretto

下載鏡像

下載鏡像

3、查看下載好的鏡像

docker images	

查看鏡像

4、運行該鏡像的一個實例
創建文件夾

mkdir -p /mydata/tomcat/webapps

將我們的web項目上傳到/mydata/tomcat/webapps目錄下

安裝rz命令(如果有文件傳輸工具可以用自己的)

yum install lrzsz
cd /mydata/tomcat/webapps

執行rz命令上傳文件

rz

傳輸文件

查看文件是否存在

ls

查看文件

啟動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端口
這三個參數最重要的參數 其他參數可自行參照docker run 參數表自行查看學習
鏈接: docker run 參數.

查看文件

我們看到當前的項目包已經解壓
查看實例運行

docker ps (查看運行中的實例) 

docker ps -a (查看所有的實例,包括啟動跟為啟動的)

查看實例啟動

我們可以看到 實例已經啟動
訪問試一下效果

http://192.168.240.3:8080/hello/

5、如何修改成80端口號?

1)停止並刪除原有的實例

docker stop tomcat
docker rm <實例id>

實例id

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

修改成80端口

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)查看打包完成的鏡像

docker images

查看打包完成的鏡像

然後導出鏡像 兩種方法 第一種直接導出文件的形式 進行移動 第二種通過上傳到docker hub然後通過遠程拉取的方式
3)通過導出文件的方式
直接運行命令

docker save -o tomcat.tar 814
//-o 代表保存成文件 814鏡像的id

查看導出的鏡像

在合適的地方 導入容器

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上的用戶名 不然無法推上去倉庫

註冊dockerhub賬號

登陸docker hub 賬號

docker login

推送鏡像到遠程倉庫

docker push dwyerdocker/tomcattest:v1

來到我們的倉庫 再合適的地方拉取我們的鏡像就可以瞭

在這裡插入圖片描述

以上就是我們docker的基本使用,下面將為大傢講解如何用idea構建docker鏡像並部署項目

通過idea部署項目到docker

1、首先我們小修改docker配置文件 讓遠程可以訪問
由於我們的docker 默認不支持我們的tcp協議 我們要在讓tcp協議生效
打開docker 的配置文件

vi /lib/systemd/system/docker.service

docker配置文件

在 Execstart最後配置tcp協議 -H tcp://0.0.0.0:2375

配置tcp協議

重啟docker

systemctl daemon-reload
systemctl restart docker

查看進程信息 我們發現此時docker 已經支持tcp協議

ps -ef | grep docker

產看進行信息

2、確保idea安裝瞭docker 插件

docker 插件

3、在根路徑下創建DockerFile文件

創建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、測試docker 是否連通

在這裡插入圖片描述

若訪問超時 查看防火墻是否未關閉

systemctl stop firewalld

5、添加配置

添加配置

配置暴露的端口號

在這裡插入圖片描述
在這裡插入圖片描述

6、打包項目

打包項目

7、右鍵點擊部署

部署前最好重啟一下docker 註意端口號沖突

在這裡插入圖片描述

8、查看效果

最終效果

到此這篇關於通過idea打包項目到docker的操作方法的文章就介紹到這瞭,更多相關idea打包到docker內容請搜索WalkonNet以前的文章或繼續瀏覽下面的相關文章希望大傢以後多多支持WalkonNet!

推薦閱讀: