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

Docker部署單頁應(yīng)用的詳細(xì)操作

 更新時間:2022年08月06日 15:55:18   作者:MiyueFE  
Docker現(xiàn)在越來越流行,但是真正在生產(chǎn)環(huán)境部署Docker還是個比較新的概念,還沒有一個標(biāo)準(zhǔn)的流程,下面這篇文章主要給大家介紹了關(guān)于Docker部署單頁應(yīng)用的相關(guān)資料,需要的朋友可以參考下

1. Docker 介紹

Docker 是一個基于 GO 語言和 Linux 內(nèi)核的虛擬化容器技術(shù),遵從 Apache2.0 協(xié)議開源。

Docker 與虛擬機(jī)給人的感覺比較相似,但是兩者的實(shí)現(xiàn)原理不同:Docker 是虛擬化操作系統(tǒng),而虛擬機(jī)則是虛擬化硬件設(shè)備。Docker 可利用 Linux 內(nèi)核來創(chuàng)建獨(dú)立的 Linux 容器,只占用一組與操作系統(tǒng)隔離的進(jìn)程,就可以創(chuàng)建一個內(nèi)部環(huán)境保持不變的容器。這種方式也更加利于項(xiàng)目遷移和運(yùn)行,并且相比虛擬機(jī),也省去了大量的系統(tǒng)配置和資源占用。

2. Docker 安裝

windows 環(huán)境下安裝 Docker 需要安裝桌面端,直接在 Docker - Get Started 頁面下載對應(yīng)的 Docker Desktop 安裝包安裝即可。

3. Docker 基本操作

因?yàn)?Docker 是一種虛擬化容器技術(shù),所以最常用的操作就是“容器”「Container」的操作;另外容器的創(chuàng)建也需要一個基礎(chǔ)的創(chuàng)建模板,這個模板就是“鏡像”「Image」。

這里簡單介紹一下與鏡像和容器相關(guān)的幾個基本操作:

# docker拉取鏡像,例如 docker pull nginx:1.21.6
docker pull 鏡像別名:版本號
# 刪除鏡像,例如 docker rmi nginx:1.21.6
docker rmi 鏡像id/鏡像name
# 查看鏡像列表
docker images

# 查看容器列表, 不加-a查看正在運(yùn)行的,加上-a查看所有容器
docker ps -a
# 啟動容器
#(-d 后臺運(yùn)行, --name 容器別名, -p 宿主機(jī)端口:容器端口, --network 橋接網(wǎng)絡(luò)別名, 最后是鏡像名稱:鏡像版本)
docker run -d  --restart always --name vue-app-container -p 3006:3006 vue-app:1.0.0
# 關(guān)閉一個已啟動容器,例如 docker stop vue-app-container
docker stop 容器ID/容器別名
# 啟動一個關(guān)閉的容器 ,例如 docker start vue-app-container
docker start 容器ID/容器別名
# 刪除容器,例如 docker rm vue-app-container
docker rm 容器ID/容器名
# 查看一個容器的詳情 ,例如 docker inspect vue-app-container
docker inspect 容器ID/容器別名
# 進(jìn)入容器內(nèi)部,例如 docker exec -it vue-app-container /bin/bash
docker exec -it 容器ID/容器別名 /bin/bash

4. Vue 應(yīng)用鏡像

這里不論是 Vue 應(yīng)用還是 React 之類的應(yīng)用,都可以用這樣的方式發(fā)布;Vite 和 Webpack 也可以不做區(qū)分

首先,Vue 之類的單頁應(yīng)用,不論是用 Vite 還是 Webpack,都需要將對應(yīng)的項(xiàng)目代碼打包成普通的 js、css 等文件,最后通過 Nginx 等進(jìn)行發(fā)布。

所以,創(chuàng)建單頁應(yīng)用鏡像的第一步就是打包。

Docker 創(chuàng)建鏡像的方式有:

  • 基于遠(yuǎn)程 pull 的鏡像創(chuàng)建
  • 本地導(dǎo)入鏡像(也可以看做是直接使用)
  • 基于 Dockerfile 創(chuàng)建(最常用的創(chuàng)建方式)

4.1 Dockerfile 配置文件

什么是 Dockerfile?

Dockerfile 是一個用來構(gòu)建鏡像的文本文件,文本內(nèi)容包含了一條條構(gòu)建鏡像所需的指令和說明。

---摘自“菜鳥教程”

Dockerfile 文件的第一行命令,都是 FROM 命令,表示依賴的鏡像。因?yàn)槲覀儎?chuàng)建的鏡像基本上都不會從0開始,最低都會依賴一個系統(tǒng)鏡像。

文件內(nèi)每條執(zhí)行命令都以一個關(guān)鍵詞作為開始,常用命令有:

  • FROM: 依賴鏡像
  • RUN:需要執(zhí)行的 shell 命令
  • COPY:文件復(fù)制命令
  • CMD:鏡像容器運(yùn)行時執(zhí)行的命令
  • ENV:環(huán)境變量,一般會在 Dockerfile 文件內(nèi)部預(yù)先定義
  • ARG:構(gòu)建參數(shù),類似環(huán)境變量,僅在 build 鏡像時定義
  • VOLUME:需要掛載的數(shù)據(jù)卷,將容器內(nèi)的某個數(shù)據(jù)卷映射為宿主機(jī)的磁盤位置,可以避免容易過大或者數(shù)據(jù)丟失
  • EXPOSE:僅聲明使用端口,只有在運(yùn)行容器時沒有指定端口的時候自動映射到這里指定的端口

4.2 編寫 Nginx 配置文件

在構(gòu)建 Docker 鏡像時,雖然可以執(zhí)行一些命令,但是基本上不會通過命令來創(chuàng)建一個 nginx 配置文件。所以,我們需要在項(xiàng)目目錄中創(chuàng)建一個 nginx.conf 文件。

### :::
### 服務(wù)器 nginx 配置,請勿改變 listen 端口
### :::
server {
    listen       80;
    server_name  localhost;

    root   /usr/share/nginx/vue-app;

    location / {
        try_files $uri $uri/ /index.html;
        index  index.html index.htm;
    }

    # 接口轉(zhuǎn)發(fā)
    location ~* ^\/(sys|app)\/ {
       proxy_pass                 http://app-server:8080;
       proxy_redirect             off;
       proxy_set_header           Host $host;
       proxy_set_header           X-Real-IP $remote_addr;
       proxy_set_header           X-Forwarded-For $proxy_add_x_forwarded_for;
    }
}

這個 nginx.conf 文件僅作為示例,需要根據(jù)實(shí)際情況修改。

4.3 構(gòu)建鏡像

在執(zhí)行鏡像構(gòu)建命令之前,我們需要在根目錄下創(chuàng)建一個 Docker 配置文件 Dockerfile

# 配置 nginx 資源轉(zhuǎn)發(fā), alpine 為純凈版本
FROM nginx:1.21.6

# 服務(wù)器環(huán)境
COPY dist/ /usr/share/nginx/hwiot-web/

COPY nginx.conf /etc/nginx/conf.d/default.conf

這個文件僅僅是將外部打包后的 dist 文件夾里面的內(nèi)容,復(fù)制到容器內(nèi)的 /usr/share/nginx/vue-app/ 內(nèi),在復(fù)制 nginc.conf 文件到 /etc/nginx/conf.d/default.conf 作為默認(rèn) Nginx 配置。

之后執(zhí)行構(gòu)建命令:

docker build -t vue-app:1.0.0 .

注意后面的 .

這一步會默認(rèn)在當(dāng)前目錄查找 Dockerfile 文件并進(jìn)行鏡像構(gòu)建,并且用 -t 指定鏡像名和鏡像版本號。

5. 創(chuàng)建容器與啟動

在上一步鏡像創(chuàng)建完成之后,就可以根據(jù)該鏡像創(chuàng)建容器了。

docker run -p 80:80 -d -name vue-app-container vue-app

這里指定了將容器的 80 端口映射到宿主機(jī)的80,端口,這樣我們直接在本地打開瀏覽器訪問 http://localhost 即可。

總結(jié)

到此這篇關(guān)于Docker部署單頁應(yīng)用的文章就介紹到這了,更多相關(guān)Docker部署單頁應(yīng)用內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • docker 中的–mount 和-v 參數(shù)區(qū)別解析

    docker 中的–mount 和-v 參數(shù)區(qū)別解析

    這篇文章主要介紹了docker 中的–mount 和-v 參數(shù)區(qū)別解析,--mount 更為靈活,適用于更復(fù)雜的掛載需求,使用哪種方式主要取決于個人或團(tuán)隊(duì)的偏好和具體的使用場景,需要的朋友可以參考下
    2023-12-12
  • Docker安裝redis并且設(shè)置密碼,以及進(jìn)入容器修改密碼方式

    Docker安裝redis并且設(shè)置密碼,以及進(jìn)入容器修改密碼方式

    這篇文章主要介紹了Docker安裝redis并且設(shè)置密碼,以及進(jìn)入容器修改密碼方式,
    2024-01-01
  • 創(chuàng)建支持SSH服務(wù)的Docker鏡像的方法

    創(chuàng)建支持SSH服務(wù)的Docker鏡像的方法

    這篇文章主要介紹了創(chuàng)建支持SSH服務(wù)的Docker鏡像的方法,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2018-08-08
  • docker registry 鏡像同步的實(shí)現(xiàn)思路

    docker registry 鏡像同步的實(shí)現(xiàn)思路

    這篇文章主要介紹了docker registry 鏡像同步的相關(guān)知識,本文給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2020-06-06
  • Docker load之后鏡像名字為none問題解決方法

    Docker load之后鏡像名字為none問題解決方法

    這篇文章主要介紹了Docker load之后鏡像名字為none問題解決方法,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-12-12
  • docker容器里安裝ssh的具體步驟

    docker容器里安裝ssh的具體步驟

    本篇文章主要介紹了docker容器里安裝ssh的具體步驟,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-05-05
  • 在Ubuntu15.04上安裝Docker的步驟以及基本用法

    在Ubuntu15.04上安裝Docker的步驟以及基本用法

    Docker是一種輕量型的的類虛擬機(jī)的平臺,在開發(fā)項(xiàng)目上還是很有優(yōu)勢的,這僅是我的一種直觀理解。所以這篇文章主要給大家介紹了在Ubuntu15.04上安裝Docker的步驟以及基本用法,有需要的朋友們可以參考借鑒。
    2016-10-10
  • docker run -v 掛載數(shù)據(jù)卷異常,容器狀態(tài)一直是restarting的解決

    docker run -v 掛載數(shù)據(jù)卷異常,容器狀態(tài)一直是restarting的解決

    這篇文章主要介紹了docker run -v 掛載數(shù)據(jù)卷異常,容器狀態(tài)一直是restarting的解決方案,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2021-03-03
  • Docker容器內(nèi)部無法訪問外網(wǎng)原因以及解決辦法

    Docker容器內(nèi)部無法訪問外網(wǎng)原因以及解決辦法

    最近在工作時遇到一個問題,這里給大家總結(jié)下,這篇文章主要給大家介紹了關(guān)于Docker容器內(nèi)部無法訪問外網(wǎng)原因以及解決辦法,文中給大家介紹的非常詳細(xì),需要的朋友可以參考下
    2023-06-06
  • Docker部署Laravel應(yīng)用的實(shí)現(xiàn)示例

    Docker部署Laravel應(yīng)用的實(shí)現(xiàn)示例

    這篇文章主要介紹了Docker部署Laravel應(yīng)用的實(shí)現(xiàn)示例,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-09-09

最新評論