手把手帶大家通過(guò)Docker部署前后端分離項(xiàng)目(親測(cè)可用)
前言:
這里我用的是阿里云的服務(wù)器,環(huán)境是CentOS7!
分享一些自己在學(xué)習(xí)路上的一些筆記,歡迎大家共同交流與探討!
自己搭建了一個(gè)Java開(kāi)發(fā)的免費(fèi)資源的共享網(wǎng)站,僅用于交流與學(xué)習(xí)!
地址如下:免費(fèi)資源共享網(wǎng)站
一、安裝Docker
1、安裝:
yum install docker
2、啟動(dòng)/停止/重啟docker服務(wù)
service docker start service docker stop service docker restart
3、查看docker版本信息
docker version
4、運(yùn)行helloword,因?yàn)椴淮嬖诖绥R像,docker會(huì)自動(dòng)下載運(yùn)行本鏡像
docker run hello-world
5、查看所有docker鏡像
docker images
二、安裝Nginx
1、拉取Nginx鏡像文件
docker pull nginx
2、查看下載好的鏡像文件
docker images
3、創(chuàng)建并運(yùn)行Nginx容器
docker run -d --name nginx01 -p 3344:80 nginx 命令詳解: # docker run 啟動(dòng)一個(gè)鏡像 # -d 表示后臺(tái)允許 # --name nginx01 表示為當(dāng)前容器起一個(gè)別名 # -p 3344:80 表示將本機(jī)的3344端口映射到nginx鏡像的80端口
4、查看正在運(yùn)行的容器
docker ps
5、查看Nginx是否部署成功
curl localhost:3344
拓展
1、進(jìn)入Nginx容器當(dāng)中
docker exec -it nginx01 /bin/bash 命令詳解: # docker exec 在運(yùn)行的容器中執(zhí)行命令 # -i 以交互模式運(yùn)行容器,通常與 -t 同時(shí)使用;例如-it # -t 為容器重新分配一個(gè)偽輸入終端,通常與 -i 同時(shí)使用;例如-it # nginx01 容器名 # /bin/bash 其實(shí)就是表示載入容器后運(yùn)行bash(命令語(yǔ)言解釋程序), 因?yàn)閐ocker中必須要保持一個(gè)進(jìn)程(運(yùn)行的程序)的運(yùn)行,要不然整個(gè)容器就會(huì)退出,所以說(shuō),bash就擔(dān)任起了docker中運(yùn)行的那個(gè)進(jìn)程的角色! #而/bin/bash則是bash在linux下的位置
2、在容器中查詢出nginx的相關(guān)配置文件存放位置
whereis nginx
3、退出容器,回到本地linux系統(tǒng)
exit
4、停止并移除Nginx容器
docker stop bedfd2a72585 #停止容器 docker rm bedfd2a72585 #移除容器 # bedfd2a72585表示容器的ID,即:CONTAINER ID
5、本地創(chuàng)建管理目錄
mkdir -p /data/nginx mkdir -p /data/nginx/www mkdir -p /data/nginx/conf mkdir -p /data/nginx/logs
6、將容器中的相應(yīng)文件copy到剛創(chuàng)建的管理目錄中
docker cp bedfd2a72585:/etc/nginx/nginx.conf /data/nginx/ docker cp bedfd2a72585:/etc/nginx/conf.d /data/nginx/conf/ docker cp bedfd2a72585:/usr/share/nginx/html/ /data/nginx/www/ docker cp bedfd2a72585:/var/log/nginx/ /data/nginx/logs/ 注:docker cp bedfd2a72585中的 "bedfd2a72585" 為容器ID(docker ps可查看)
7、再次啟動(dòng)容器并作目錄掛載
docker run --name nginx -p 80:80 -v /data/nginx/nginx.conf:/etc/nginx/nginx.conf -v /data/nginx/www/:/usr/share/nginx/html/ -v /data/nginx/logs/:/var/log/nginx/ -v /data/nginx/conf/:/etc/nginx/conf.d --privileged=true -d nginx ps:-p 80:80 端口進(jìn)行映射,將本地 80端口映射到容器內(nèi)部的 80 端口。
三、安裝Mysql
1、下拉mysql鏡像文件
docker pull mysql #默認(rèn)最新版本 docker pull mysql:xxx #指定版本號(hào)
2、查看當(dāng)前鏡像
docker images
3、啟動(dòng)mysql容器
第一種: docker run --name mysql01 -d -p 3310:3306 -e MYSQL_ROOT_PASSWORD=root mysql 命令詳解: # --name 自定義容器名稱 # -d 后臺(tái)運(yùn)行 # -p 指定映射的端口號(hào) # -e MYSQL_ROOT_PASSWORD=root 數(shù)據(jù)庫(kù)密鑰 第二種: docker run --restart=always --privileged=true -d -v /home/mysql/data:/var/lib/mysql -v /home/mysql/conf:/etc/mysql/conf.d -v /home/mysql/my.cnf:/etc/mysql/my.cnf -p 3311:3306 --name mysql02 -e MYSQL_ROOT_PASSWORD=root mysql --restart=always 代表開(kāi)啟啟動(dòng) --privileged=true 代表進(jìn)入容器內(nèi)部為管理員身份 -d 表示后臺(tái)運(yùn)行容器 并返回容器Id -v 把mysql產(chǎn)生的數(shù)據(jù)同步到本地 防止數(shù)據(jù)丟失 -e 容器傳參 設(shè)置mysql的初始密碼
4、查看正在運(yùn)行的容器
docker ps
5、測(cè)試數(shù)據(jù)庫(kù)連接
四、部署SpringBoot項(xiàng)目
1、整合后端成Jar包并編寫(xiě)Dockerfile文件
2、Dockerfile內(nèi)容詳解
FROM java:8 #工程java版本 COPY *.jar /app.jar #將所有的jar包整合為app.jar EXPOSE 9099 #暴露后端端口號(hào) ENTRYPOINT ["java","-jar","app.jar"] #執(zhí)行jar包
3、將文件上傳到Linux服務(wù)器上面,必須放在同級(jí)目錄一起!
4、構(gòu)建鏡像
docker build -t api . #點(diǎn)千萬(wàn)別漏了,這里取名鏡像為api,可以隨便取名!
5、查看當(dāng)前鏡像
docker images
6、創(chuàng)建一個(gè)新的容器并運(yùn)行
docker run -d -p 9099:9099 --name httapi api #將9099端口映射到9099端口,端口記得放開(kāi) #httapi為自定義容器名字 #api是鏡像名字
7、查看正在運(yùn)行的容器
docker ps
8、使用postman測(cè)試接口
五、部署Vue項(xiàng)目
1、打包Vue工程并同時(shí)編寫(xiě)default.conf文件和Dockerfile文件
2、default.conf文件和Dockerfile文件詳細(xì)
default.conf配置
server { listen 80; server_name ip地址; # 修改為docker服務(wù)宿主機(jī)的ip location / { root /usr/share/nginx/html; index index.html index.htm; try_files $uri $uri/ /index.html =404; } location /api { proxy_pass http://ip地址:端口號(hào)/; } error_page 500 502 503 504 /50x.html; location = /50x.html { root html; } }
Dockerfile配置
# 基礎(chǔ)鏡像使用Nginx FROM nginx # 作者 MAINTAINER htt # 添加時(shí)區(qū)環(huán)境變量,亞洲,上海 ENV TimeZone=Asia/Shanghai # 將前端dist文件中的內(nèi)容復(fù)制到nginx目錄 COPY dist /usr/share/nginx/html/ # 用本地的nginx配置文件覆蓋鏡像的Nginx配置 COPY default.conf /etc/nginx/conf.d # 暴露端口 EXPOSE 80
3、上傳這三個(gè)文件到Linux服務(wù)器的同一個(gè)文件夾當(dāng)中,務(wù)必放在一起!
4、構(gòu)建鏡像
docker build -t vue . #點(diǎn)千萬(wàn)別漏了,這里取名鏡像為vue,可以隨便取名!
5、查看當(dāng)前鏡像
docker images
??????6、創(chuàng)建一個(gè)新的容器并運(yùn)行
docker run -d -p 8088:80 --name httvue vue #將8088端口映射到80端口,端口記得放開(kāi) #httvue為自定義容器名字 #vue是鏡像名字
7、查看正在運(yùn)行的容器
docker ps
8、訪問(wèn)前端頁(yè)面并測(cè)試接口
總結(jié)
到此這篇關(guān)于通過(guò)Docker部署前后端分離項(xiàng)目的文章就介紹到這了,更多相關(guān)Docker部署前后端分離項(xiàng)目?jī)?nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
- 利用docker-compsoe部署前后端分離的項(xiàng)目方法
- Docker部署前后端分離項(xiàng)目的實(shí)現(xiàn)示例
- docker-compose+nginx部署前后端分離的項(xiàng)目實(shí)踐
- 使用Jenkins+docker打包部署后端服務(wù)的實(shí)現(xiàn)
- Docker+Nginx打包部署前后端分離步驟實(shí)現(xiàn)
- 教你使用Docker?Compose一鍵部署前后端分離項(xiàng)目
- 使用Docker部署前后端分離項(xiàng)目的完整步驟
- Docker部署前后端分離項(xiàng)目的三種方式小結(jié)
- 用docker一鍵部署前后端分離項(xiàng)目的詳細(xì)流程
- Docker部署后端項(xiàng)目的實(shí)現(xiàn)步驟
相關(guān)文章
淺談關(guān)于Docker容器互聯(lián)的初步實(shí)踐
這篇文章主要介紹了淺談關(guān)于Docker容器互聯(lián)的初步實(shí)踐,本文介紹了使用網(wǎng)橋(bridge)來(lái)對(duì)容器進(jìn)行互聯(lián),非常具有實(shí)用價(jià)值,需要的朋友可以參考下2018-10-10在Docker Compose中獲取最新鏡像的多種方法總結(jié)
Docker 鏡像是 Docker 容器的基礎(chǔ),鏡像包含了應(yīng)用程序所需的所有文件和依賴,Docker-Compose 默認(rèn)不會(huì)自動(dòng)拉取最新的鏡像版本,這可能會(huì)導(dǎo)致使用過(guò)時(shí)的鏡像,從而錯(cuò)過(guò)重要的更新,為了確保 Docker-Compose 始終使用最新的鏡像,我們可以采用多種方法,以下將詳細(xì)介紹這些方法2024-08-08centos7搭建docker私人倉(cāng)庫(kù)的方法(kubernetes)
這篇文章主要介紹了centos7搭建docker私人倉(cāng)庫(kù)的方法(kubernetes),小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2018-03-03Docker+nacos+seata1.3.0安裝與使用配置教程
這篇文章主要介紹了Docker+nacos+seata1.3.0安裝與使用配置教程,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2021-07-07