Docker項(xiàng)目部署之從后端到前端部署詳細(xì)流程
準(zhǔn)備
安裝docker
自行下載虛擬機(jī),安裝Centos7系統(tǒng),并能夠在虛擬機(jī)中啟動成功
下載Xshell,Xftxp
安裝過程
在Linux中下載yum-utils工具,
然后指定下載源,讓yum去這個位置下載docker sudo yum-config-manager \ --add-repo \ https://download.docker.com/linux/centos/docker-ce.repo,下載docker設(shè)置docker的插件: sudo yum install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
驗(yàn)證: docker -v, docker images,查看自己的docker是否安裝成功
配置鏡像加速: 到阿里云,鏡像中設(shè)置自己的加速配置 命令在阿里云->容器->容器鏡像->管理控制臺
啟動docker: systemctl start docker
安裝容器
拉取鏡像文件 docker pull+鏡像文件名字,鏡像可以去docker-hub官網(wǎng)找
創(chuàng)建容器 docker run -d --name mysql -p 3306:3306 -e TZ=Asia/Shanghai -e MYSQL_ROOT_PASSWORD = 123 mysql
- -d:表示容器后臺運(yùn)行
- -p:指明了容器的端口和寄存器的端口相映射
- -e:指明了該容器的環(huán)境配置
- --name:為該容器命名
- docker run :固定語法,指在創(chuàng)建一個容器
最后的mysql指的是拉取的鏡像文件的名字,如有需要,在后面寫上該鏡像文件的版本,name:targ
docker的常見命令:
- docker start 容器名,啟動該容器
- docker stop 容器名,關(guān)閉該容器
- docker status 容器名,查看容器狀態(tài)
- docker ps 查看所有容器的信息
- docker ps -a查看所有的容器
- docker logs 容器名,查看該容器的日志
項(xiàng)目部署
后端部署
根據(jù)項(xiàng)目情況安裝對應(yīng)的容器,就那我的比較簡單的項(xiàng)目來說,只需要一個Linux操作系統(tǒng),java運(yùn)行環(huán)境,項(xiàng)目本身,和項(xiàng)目相關(guān)的其他的容器,前端代碼包
安裝mysql容器,docker run -d -p 3306:3306 --name mysql -e MYSQL_ROOT_PASSWORD=123 -e TZ=Asia/Shanghai -v /root/mysql/data:/var/lib/myql -v /root/mysql/init:/docker-entrypoint-initdb.d -v /root/mysql/conf:/etc/mysql/conf.d mysql,這其中涉及到一個數(shù)據(jù)掛載的問題,在問題說明中有解釋,先這么做,數(shù)據(jù)庫的密碼是自己設(shè)置的
然后將windows上的數(shù)據(jù)庫導(dǎo)出,通過Xftp傳到自己的虛擬機(jī)上
打開mysql容器,docker exec -it mysql bash,然后進(jìn)入mysql,mysql -u root -p,創(chuàng)建自己項(xiàng)目的數(shù)據(jù)庫,然后通過source /導(dǎo)出的數(shù)據(jù)庫所在的目錄,導(dǎo)入數(shù)據(jù)
打包Spring項(xiàng)目,打包之前記得把配置文件的ip地址和數(shù)據(jù)庫密碼換成docker中mysql的配置,然后把得到的jar包使用Xftp傳輸?shù)阶约旱奶摂M機(jī)中,放到一個文件夾下,使用Dockerfile創(chuàng)建自己的鏡像文件
然后sudo docker build . -t land:1.0 ,這樣就創(chuàng)建了自己的docker鏡像
然后 sudo docker run -d -p 8081:8081 --name land --network 網(wǎng)絡(luò)名 land


這樣testnet就創(chuàng)建好了
創(chuàng)建自己的docker容器,后端項(xiàng)目也成功部署到了docker中,

前端項(xiàng)目部署
首先將項(xiàng)目打包一下

打包成功以后會生成一個dist文件

然后將dist文件拷貝到Linux系統(tǒng)中,和之前拷貝Java項(xiàng)目的jar包放到一個位置

我這里把前端單獨(dú)放到一個位置了
然后創(chuàng)建Dockerfile文件和一個default.conf文件,前端和后端的Dockerfile文件我都放到最后了
然后構(gòu)建自己的鏡像,sudo docker build . -t land-vue,
創(chuàng)建自己的容器,docker run -d --name land-vue -p 8082:8082 --network zhang land-vue
項(xiàng)目測試
啟動前端容器和后端容器,最后訪問192.168.101.131:8082出現(xiàn)界面,說明配置成功,


后端接口成功拿到數(shù)據(jù),這樣一個簡單的java小項(xiàng)目通過docker部署就完成了。
docker-compose.yml 文件自動部署項(xiàng)目
在之前存放文件的文件夾下創(chuàng)建一個文件docker-compose.yml模板去網(wǎng)上找,然后按照模板部署,最后執(zhí)行docker compose up -d 就能實(shí)現(xiàn)自動部署



這里有個小提示,如果nginx.conf不能直接和etc/nginx/nginx.conf掛載的話,直接和整個nginx掛載也能成功
問題說明:
數(shù)據(jù)卷掛載:當(dāng)我們創(chuàng)建了容器之后,我們是可以通過docker exec -it 容器名 bash進(jìn)入咱們一個虛擬的容器終端操作界面,但是里面的內(nèi)容只有查看功能并不能之際修改所以這時候我們就需要在本地虛擬機(jī)中創(chuàng)建一個目錄或者文件與容器中指定的目錄或文件進(jìn)行掛載,進(jìn)行掛載以后當(dāng)我們對本地虛擬機(jī)中被掛載的文件或者目錄進(jìn)行操作的時候就能夠把這個修改的內(nèi)容實(shí)時同步到容器中的對應(yīng)的文件之中,這樣就解決了容器內(nèi)文件不能被修改的問題。
后端項(xiàng)目的Dockerfile:

前端項(xiàng)目的Dockerfile

前端的default.conf

總結(jié)
到此這篇關(guān)于Docker項(xiàng)目部署之從后端到前端部署的文章就介紹到這了,更多相關(guān)Docker后端到前端部署內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
解決運(yùn)行Docker鏡像報錯:version `GLIBC_2.32‘ not found
文章介紹了解決Docker鏡像運(yùn)行時因GLIBC版本不匹配導(dǎo)致的錯誤,建議使用AlpineLinux作為基礎(chǔ)鏡像,并在其中安裝所需的運(yùn)行時庫,作者還分享了個人經(jīng)驗(yàn),提醒讀者嘗試其他方法無效后可以尋求幫助2024-12-12
Docker 部署單機(jī)版 Pulsar 和集群架構(gòu) Redis(開發(fā)神器)的方法
這篇文章主要介紹了Docker 部署單機(jī)版 Pulsar 和集群架構(gòu) Redis(開發(fā)神器)的相關(guān)知識,本文給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下2020-10-10

