Docker項目部署之從后端到前端部署詳細流程
準備
安裝docker
自行下載虛擬機,安裝Centos7系統(tǒng),并能夠在虛擬機中啟動成功
下載Xshell,Xftxp
安裝過程
在Linux中下載yum-utils工具,
然后指定下載源,讓yum去這個位置下載docker sudo yum-config-manager \ --add-repo \ https://download.docker.com/linux/centos/docker-ce.repo,下載docker設置docker的插件: sudo yum install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
驗證: docker -v, docker images,查看自己的docker是否安裝成功
配置鏡像加速: 到阿里云,鏡像中設置自己的加速配置 命令在阿里云->容器->容器鏡像->管理控制臺
啟動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:表示容器后臺運行
- -p:指明了容器的端口和寄存器的端口相映射
- -e:指明了該容器的環(huán)境配置
- --name:為該容器命名
- docker run :固定語法,指在創(chuàng)建一個容器
最后的mysql指的是拉取的鏡像文件的名字,如有需要,在后面寫上該鏡像文件的版本,name:targ
docker的常見命令:
- docker start 容器名,啟動該容器
- docker stop 容器名,關閉該容器
- docker status 容器名,查看容器狀態(tài)
- docker ps 查看所有容器的信息
- docker ps -a查看所有的容器
- docker logs 容器名,查看該容器的日志
項目部署
后端部署
根據(jù)項目情況安裝對應的容器,就那我的比較簡單的項目來說,只需要一個Linux操作系統(tǒng),java運行環(huá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ù)庫的密碼是自己設置的
然后將windows上的數(shù)據(jù)庫導出,通過Xftp傳到自己的虛擬機上
打開mysql容器,docker exec -it mysql bash,然后進入mysql,mysql -u root -p,創(chuàng)建自己項目的數(shù)據(jù)庫,然后通過source /導出的數(shù)據(jù)庫所在的目錄,導入數(shù)據(jù)
打包Spring項目,打包之前記得把配置文件的ip地址和數(shù)據(jù)庫密碼換成docker中mysql的配置,然后把得到的jar包使用Xftp傳輸?shù)阶约旱奶摂M機中,放到一個文件夾下,使用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)絡名 land
這樣testnet就創(chuàng)建好了
創(chuàng)建自己的docker容器,后端項目也成功部署到了docker中,
前端項目部署
首先將項目打包一下
打包成功以后會生成一個dist文件
然后將dist文件拷貝到Linux系統(tǒng)中,和之前拷貝Java項目的jar包放到一個位置
我這里把前端單獨放到一個位置了
然后創(chuàng)建Dockerfile文件和一個default.conf文件,前端和后端的Dockerfile文件我都放到最后了
然后構建自己的鏡像,sudo docker build . -t land-vue,
創(chuàng)建自己的容器,docker run -d --name land-vue -p 8082:8082 --network zhang land-vue
項目測試
啟動前端容器和后端容器,最后訪問192.168.101.131:8082出現(xiàn)界面,說明配置成功,
后端接口成功拿到數(shù)據(jù),這樣一個簡單的java小項目通過docker部署就完成了。
docker-compose.yml 文件自動部署項目
在之前存放文件的文件夾下創(chuàng)建一個文件docker-compose.yml模板去網(wǎng)上找,然后按照模板部署,最后執(zhí)行docker compose up -d 就能實現(xiàn)自動部署
這里有個小提示,如果nginx.conf不能直接和etc/nginx/nginx.conf掛載的話,直接和整個nginx掛載也能成功
問題說明:
數(shù)據(jù)卷掛載:當我們創(chuàng)建了容器之后,我們是可以通過docker exec -it 容器名 bash進入咱們一個虛擬的容器終端操作界面,但是里面的內容只有查看功能并不能之際修改所以這時候我們就需要在本地虛擬機中創(chuàng)建一個目錄或者文件與容器中指定的目錄或文件進行掛載,進行掛載以后當我們對本地虛擬機中被掛載的文件或者目錄進行操作的時候就能夠把這個修改的內容實時同步到容器中的對應的文件之中,這樣就解決了容器內文件不能被修改的問題。
后端項目的Dockerfile:
前端項目的Dockerfile
前端的default.conf
總結
到此這篇關于Docker項目部署之從后端到前端部署的文章就介紹到這了,更多相關Docker后端到前端部署內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!
相關文章
解決運行Docker鏡像報錯:version `GLIBC_2.32‘ not found
文章介紹了解決Docker鏡像運行時因GLIBC版本不匹配導致的錯誤,建議使用AlpineLinux作為基礎鏡像,并在其中安裝所需的運行時庫,作者還分享了個人經(jīng)驗,提醒讀者嘗試其他方法無效后可以尋求幫助2024-12-12Docker 部署單機版 Pulsar 和集群架構 Redis(開發(fā)神器)的方法
這篇文章主要介紹了Docker 部署單機版 Pulsar 和集群架構 Redis(開發(fā)神器)的相關知識,本文給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下2020-10-10