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