<menu id="guoca"></menu>
<nav id="guoca"></nav><xmp id="guoca">
  • <xmp id="guoca">
  • <nav id="guoca"><code id="guoca"></code></nav>
  • <nav id="guoca"><code id="guoca"></code></nav>

    手把手教你通過 Docker 部署前后端分離項目

    VSole2022-12-05 10:31:31

    一、安裝Docker

    1、安裝:

    yum install docker 
    

    2、啟動/停止/重啟docker服務

    service docker start 
    service docker stop 
    service docker restart 
    

    3、查看docker版本信息

    docker version
    

    4、運行helloword,因為不存在此鏡像,docker會自動下載運行本鏡像

    docker run hello-world
    

    5、查看所有docker鏡像

    docker images
    

    二、安裝Nginx

    1、拉取Nginx鏡像文件

    docker pull nginx
    

    2、查看下載好的鏡像文件

    docker images
    

    3、創建并運行Nginx容器

    docker run -d --name nginx01 -p 3344:80 nginx
    命令詳解:
    # docker run 啟動一個鏡像
    # -d 表示后臺允許
    # --name nginx01  表示為當前容器起一個別名
    # -p 3344:80 表示將本機的3344端口映射到nginx鏡像的80端口
    

    4、查看正在運行的容器

    docker ps
    

    5、查看Nginx是否部署成功

    curl localhost:3344
    

    拓展

    1、進入Nginx容器當中

    docker exec -it nginx01 /bin/bash
    命令詳解:
    # docker exec 在運行的容器中執行命令
    # -i 以交互模式運行容器,通常與 -t 同時使用;例如-it
    # -t 為容器重新分配一個偽輸入終端,通常與 -i 同時使用;例如-it
    # nginx01 容器名
    # /bin/bash 其實就是表示載入容器后運行bash(命令語言解釋程序), 因為docker中必須要保持一個進程(運行的程序)的運行,要不然整個容器就會退出,所以說,bash就擔任起了docker中運行的那個進程的角色!
    #而/bin/bash則是bash在linux下的位置
    

    2、在容器中查詢出nginx的相關配置文件存放位置

    whereis nginx
    

    3、退出容器,回到本地linux系統

    exit
    

    4、停止并移除Nginx容器

    docker stop bedfd2a72585 #停止容器
    docker rm bedfd2a72585 #移除容器
    # bedfd2a72585表示容器的ID,即:CONTAINER ID
    

    5、本地創建管理目錄

    mkdir -p /data/nginx
    mkdir -p /data/nginx/www 
    mkdir -p /data/nginx/conf
    mkdir -p /data/nginx/logs
    

    6、將容器中的相應文件copy到剛創建的管理目錄中

    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、再次啟動容器并作目錄掛載

    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 端口進行映射,將本地 80端口映射到容器內部的 80 端口。

    三、安裝Mysql

    1、下拉mysql鏡像文件

    docker pull mysql  #默認最新版本
     
    docker pull mysql:xxx  #指定版本號
    

    2、查看當前鏡像

    docker images
    

    3、啟動mysql容器

    第一種:

    docker run --name mysql01 -d -p 3310:3306 -e MYSQL_ROOT_PASSWORD=root mysql
    

    命令詳解:

    # --name 自定義容器名稱
    # -d 后臺運行
    # -p 指定映射的端口號
    # -e MYSQL_ROOT_PASSWORD=root 數據庫密鑰
    

    第二種:

    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 代表開啟啟動
    • --privileged=true 代表進入容器內部為管理員身份
    • -d 表示后臺運行容器 并返回容器Id
    • -v 把mysql產生的數據同步到本地 防止數據丟失
    • -e 容器傳參 設置mysql的初始密碼

    4、查看正在運行的容器

    docker ps
    

    5、測試數據庫連接

    四、部署SpringBoot項目

    1、整合后端成Jar包并編寫Dockerfile文件

    2、Dockerfile內容詳解

    FROM java:8  #工程java版本
     
    COPY *.jar /app.jar  #將所有的jar包整合為app.jar
     
    EXPOSE 9099  #暴露后端端口號
     
    ENTRYPOINT ["java","-jar","app.jar"]  #執行jar包
    

    3、將文件上傳到Linux服務器上面,必須放在同級目錄一起!

    4、構建鏡像

    docker build -t api .  #點千萬別漏了,這里取名鏡像為api,可以隨便取名!
    

    5、查看當前鏡像

    docker images
    

    6、創建一個新的容器并運行

    docker run -d -p 9099:9099 --name httapi api 
    #將9099端口映射到9099端口,端口記得放開
    #httapi為自定義容器名字
    #api是鏡像名字
    

    7、查看正在運行的容器

    docker ps
    

    8、使用postman測試接口

    五、部署Vue項目

    1、打包Vue工程并同時編寫default.conf文件和Dockerfile文件

    2、default.conf文件和Dockerfile文件詳細

    • default.conf配置
    server {
        listen       80;
        server_name  ip地址; # 修改為docker服務宿主機的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地址:端口號/;
        }
     
        error_page   500 502 503 504  /50x.html;
        location = /50x.html {
            root   html;
        }
    }
    
    • Dockerfile配置
    # 基礎鏡像使用Nginx
    FROM nginx
    # 作者
    MAINTAINER htt
    # 添加時區環境變量,亞洲,上海
    ENV TimeZone=Asia/Shanghai
    # 將前端dist文件中的內容復制到nginx目錄
    COPY dist  /usr/share/nginx/html/
    # 用本地的nginx配置文件覆蓋鏡像的Nginx配置
    COPY default.conf /etc/nginx/conf.d
    # 暴露端口
    EXPOSE 80
    

    3、上傳這三個文件到Linux服務器的同一個文件夾當中,務必放在一起!

    4、構建鏡像

    docker build -t vue . #點千萬別漏了,這里取名鏡像為vue,可以隨便取名!
    

    5、查看當前鏡像

    docker images
    

    6、創建一個新的容器并運行

    docker run -d -p 8088:80 --name httvue vue 
    #將8088端口映射到80端口,端口記得放開
    #httvue為自定義容器名字
    #vue是鏡像名字
    

    7、查看正在運行的容器

    docker ps
    

    8、訪問前端頁面并測試接口

    dockermysql
    本作品采用《CC 協議》,轉載必須注明作者和本文鏈接
    Solitude是一款功能強大的隱私安全分析工具,可以幫助廣大研究人員根據自己的需要來進行隱私問題調查。無論是好奇的新手還是更高級的研究人員,Solitude可以幫助每一名用戶分析和研究應用程序中的用戶隱私安全問題。
    在完成了這項針對 Linux 中多個受控制用戶空間的基礎性工作后,Linux 容器開始逐漸成形并最終發展成了現在的模樣。開源 Docker 社區致力于改進這類技術,并免費提供給所有用戶,使之獲益。除了運行容器之外,Docker 技術還具備其他多項功能,包括簡化用于構建容器、傳輸鏡像以及控制鏡像版本的流程。與此相反,Docker 技術鼓勵應用程序各自獨立運行其進程,并提供相應工具以實現這一功能。
    表示為當前容器起一個別名。表示將本機的3344端口映射到nginx鏡像的80端口
    QingScan一個批量漏洞挖掘工具,黏合各種好用的掃描器。介紹QingScan 是一款聚合掃描器,本身不生
    一個批量漏洞挖掘工具,黏合各種好用的掃描器。
    QingScan 是一款聚合掃描器,本身不生產安全掃描功能,但會作為一個安全掃描工具的搬運工;當添加一個目標后,QingScan會自動調用各種掃描器對目標進行掃描,并將掃描結果錄入到QingScan平臺中進行聚合展示 · GitHub:https://github.com/78778443/QingScan · 碼云地址:https://gitee.com/songboy/QingScan
    想學K8s,必須得先學會 Docker 嗎?K8s 和 Docker 的關系Docker 和 K8s 這兩個經常一起出現,兩者的Logo 看著也有一定聯系一個是背上馱著集裝箱的鯨魚一個是船的舵輪。紅框里的容器運行時負責對接具體的容器實現Docker 公司也推出過自己的容器集群管理方案 Docker Swarm ,跟 K8s 算是競品,但是在生產上幾乎沒人使用。
    事先準備一臺linux主機,并且已安裝好docker環境。centos安裝docker環境如下:查詢可安裝版本:
    事先準備一臺linux主機,并且已安裝好docker環境。centos安裝docker環境如下:查詢可安裝版本:
    VSole
    網絡安全專家
      亚洲 欧美 自拍 唯美 另类