欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

docker+Nginx部署前端項目的詳細過程記錄

 更新時間:2022年10月10日 11:39:21   作者:程序媛小y  
docker的出現(xiàn)解決了我們很多問題,讓我們避免陷入各種依賴安裝的痛苦中,下面這篇文章主要給大家介紹了關于docker+Nginx部署前端項目的相關資料,文中通過實例代碼介紹的非常詳細,需要的朋友可以參考下

相關配置安裝

安裝Docker

yum install docker

啟動服務 start docker

systemctl start docker

Docker中拉取nginx鏡像

docker pull nginx

創(chuàng)建配置文件

我們需要在根目錄下創(chuàng)建Dockerfile文件和default.conf文件。

其中default.conf文件的名稱是什么無所謂,只要在配置文件中注意使用相同名稱即可。

Dokcerfile文件具體內容如下:

FROM nginx:latest

# 將項目根目錄下dist文件夾下的所有文件復制到鏡像中 /usr/share/nginx/html/ 目錄下
COPY dist/ /usr/share/nginx/html/
COPY default.conf /etc/nginx/conf.d/default.conf
  • FROM nginx:latest: 命令的意思該鏡像是基于 nginx:latest 鏡像而構建的。
  • COPY dist/ /usr/share/nginx/html/ :命令的意思是將項目根目錄下 dist 文件夾下的所有文件復制到鏡像中 /usr/share/nginx/html/ 目錄下。

這里鏡像中的目錄我們不要動,但需要保證我們項目的打包目錄是dist/,或者自定義到你打包的目錄下。

  • COPY default.conf /etc/nginx/conf.d/default.conf 命令的意思是將 Nginx 目錄下的 default.conf 復制到 etc/nginx/conf.d/default.conf,用本地的 default.conf 配置來替換 Nginx 鏡像里的默認配置。

這里鏡像中的目錄我們不要動,但需要保證我們編寫的文件名也為default.conf,或者與你自己寫的文件名對應

default.conf

下面的配置直接照抄就好,特別注意,監(jiān)聽的端口號并不需要動,這里的80端口指的是容器的端口,最后我們會將容器的端口映射到我們宿主服務器的端口,比如映射到8888端口。

8888:80

然后 注意修改為自己的服務器IP地址

完整配置:

upstream my_server{
  server 121.41.4.33:3000; # 后端server 地址
  keepalive 2000;
}

server {
    listen       80; #這里的端口號不要動,80端口指的是容器的端口,最后我們會將容器的端口映射到我們宿主服務器的端口,比如映射到8888端口
    server_name  111.20.xxx.xxx; # 修改為docker服務宿主機的ip/域名
    
    #charset koi8-r;
    access_log  /var/log/nginx/host.access.log  main;
    error_log  /var/log/nginx/error.log  error;

    location / {
        root   /usr/share/nginx/html;
        index  index.html index.htm;
        try_files $uri $uri/ /index.html =404;
    }
     #  這里就是和vue本地代理的意思一樣,已api開頭的路徑都代理到本機的3000端口
    location /api/ {
        proxy_pass http://my_server/api;
        proxy_set_header Host $host:$server_port;
        rewrite ^/api/(.*) /$1 break;
    }

    error_page   500 502 503 504  /50x.html;
    location = /50x.html {
        root   html;
    }
}

項目打包與部署

將打包項目,把dist文件夾和剛剛創(chuàng)建的Dockerfile,default.conf放到同一目錄,并上傳到服務器。

比如,我的代碼存放位置是/home/test目錄。

然后需要構建鏡像

docker build -t test .

docker build -t我們并不需要動,

后面的test是我們構建的鏡像的名稱,.代表需要進行構建的代碼的存放位置,這里是.是因為我當期所在目錄就是/home/test,并且我的項目的三個文件就位于/home/test目錄下。

如果我們此時位于其他目錄,當前目錄下沒有要進行鏡像打包的文件,那就需要更改路徑。

比如:

dokcer build -t test /home/test

然后使用dokcer images可以查看我們已經(jīng)存在的鏡像

鏡像構建好后,我們就可以拿這個鏡像啟動一個容器

docker run -d -p 8888:80 --name test-image test
  • -d 后臺方式運行
  • -p 8888:80 端口映射,將宿主的8888端口映射到容器的80端口
  • –name 容器名 鏡像名

然后我們可以使用docker ps查看當前正在運行的容器

并且使用IP地址和端口號訪問當前的項目

注意

上面我們進行了端口映射,那就需要在服務器中開啟要使用的端口,

我們可以在云服務器中的安全組進行設置。

或者使用命令設置

查看已開放端口命令:firewall-cmd --list-all

  • 查看防火墻狀態(tài):active (running) 即是開啟狀態(tài)

systemctl status firewalld

  • 查看已開發(fā)端口命令:firewall-cmd --list-all
  • 新增防火墻開放端口:

firewall-cmd --zone=public --add-port=3306/tcp --permanent

  • 開放端口后需要重新加載防火墻:

firewall-cmd --reload

一些相關指令

如果我們不再需要這個容器和鏡像,

首先需要先停止這個容器,然后在移出容器和鏡像。

首先拿docker ps找到指定容器的ID,

使用docker stop [ID] 停止容器

docker rm [ID] 移除容器

然后拿docker images查看已存在的鏡像ID,

使用docker rmi [ID] 移除鏡像

可能我們的docker沒有設置開機啟動:

systemctl start docker # 啟動docker
systemctl status docker # 查看docker的運行狀態(tài)

一個相關報錯:

關于:Cannot connect to the Docker daemon at unix:///var/run/docker.sock. Is the docker daemon running?

關于今天使用Docker時報了以下錯誤:

[centos@localhost ~]$ docker ps
Cannot connect to the Docker daemon at unix:///var/run/docker.sock. Is the docker daemon running?

分析報錯的原因:

報錯的翻譯:無法連接到 unix:///var/run/docker.sock 上的 Docker 守護程序。 docker 守護進程是否正在運行?

通過翻譯完報錯,可以看出報錯的原因是因為docker的服務沒啟動

解決方法:

1、首先啟動docker服務

[root@localhost /]# systemctl start docker 

2、查看docker服務當前狀態(tài)

[root@localhost /]# systemctl status docker

就此,以上的報錯就成功解決!

開機自啟動Docker

為了避免以上的問題重復出現(xiàn),可以設置docker開啟自啟動!

[root@localhost /]# systemctl enable docker

后續(xù),我們將使用docker和github actions實現(xiàn)自動化部署。

總結

到此這篇關于docker+Nginx部署前端項目的文章就介紹到這了,更多相關docker+Nginx部署前端項目內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!

相關文章

  • 如何修改docker容器中MySQL的用戶密碼

    如何修改docker容器中MySQL的用戶密碼

    本文主要介紹了如何修改docker容器中MySQL的用戶密碼,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2023-04-04
  • 云原生教程之使用Docker部署webssh工具sshwifty

    云原生教程之使用Docker部署webssh工具sshwifty

    Sshwifty是一個開源的WebSSH?&?WebTelnet客戶端,下面這篇文章主要給大家介紹了關于云原生教程之使用Docker部署webssh工具sshwifty的相關資料,文中通過實例代碼介紹的非常詳細,需要的朋友可以參考下
    2023-03-03
  • Docker上部署FastApi的示例代碼

    Docker上部署FastApi的示例代碼

    本文主要介紹了Docker上部署FastApi的示例代碼,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2023-03-03
  • 教你如何從正在運行的容器創(chuàng)建?Docker?映像

    教你如何從正在運行的容器創(chuàng)建?Docker?映像

    這篇文章主要介紹了如何從正在運行的容器創(chuàng)建?Docker?映像,本文給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2022-02-02
  • docker?images的常用方式

    docker?images的常用方式

    這篇文章主要介紹了docker?images的常用方式,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2023-11-11
  • Docker中部署flink集群的兩種方式

    Docker中部署flink集群的兩種方式

    這篇文章主要介紹了Docker中部署flink集群的兩種方式,本文將通過 2 種方式在 docker 中部署 flink standalone 集群,集群中共有 4 個節(jié)點,分別是 1 個 jobManager 節(jié)點和 3 個 taskManager 節(jié)點,需要的朋友可以參考下
    2024-02-02
  • docker安裝redis設置密碼并連接的操作

    docker安裝redis設置密碼并連接的操作

    這篇文章主要介紹了docker安裝redis設置密碼并連接的操作,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-12-12
  • Docker?search命令的使用方法

    Docker?search命令的使用方法

    本文主要介紹了Docker?search命令的使用方法,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2023-07-07
  • Docker?容器健康檢查的指令方式詳解

    Docker?容器健康檢查的指令方式詳解

    這篇文章主要介紹了Docker?容器健康檢查的指令方式詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2023-11-11
  • 關于Docker網(wǎng)絡配置及部署SpringCloud項目詳解

    關于Docker網(wǎng)絡配置及部署SpringCloud項目詳解

    這篇文章主要介紹了關于Docker網(wǎng)絡配置及部署SpringCloud項目詳解,Docker在創(chuàng)建容器時有四種網(wǎng)絡模式,bridge為默認不需要去指定,其他三種模式需要在創(chuàng)建容器時使用–net去指定,需要的朋友可以參考下
    2023-07-07

最新評論