<em>Mac</em>Book项目 2009年学校开始实施<em>Mac</em>Book项目,所有师生配备一本<em>Mac</em>Book,并同步更新了校园无线网络。学校每周进行电脑技术更新,每月发送技术支持资料,极大改变了教学及学习方式。因此2011
2021-06-01 09:32:01
Docker 是一個基於 GO 語言和 Linux 核心的虛擬化容器技術,遵從 Apache2.0 協定開源。
Docker 與虛擬機器器給人的感覺比較相似,但是兩者的實現原理不同:Docker 是虛擬化作業系統,而虛擬機器器則是虛擬化硬體裝置。Docker 可利用 Linux 核心來建立獨立的 Linux 容器,只佔用一組與作業系統隔離的程序,就可以建立一個內部環境保持不變的容器。這種方式也更加利於專案遷移和執行,並且相比虛擬機器器,也省去了大量的系統設定和資源佔用。
windows 環境下安裝 Docker 需要安裝桌面端,直接在 Docker - Get Started 頁面下載對應的 Docker Desktop 安裝包安裝即可。
因為 Docker 是一種虛擬化容器技術,所以最常用的操作就是“容器”「Container」的操作;另外容器的建立也需要一個基礎的建立模板,這個模板就是“映象”「Image」。
這裡簡單介紹一下與映象和容器相關的幾個基本操作:
# docker拉取映象,例如 docker pull nginx:1.21.6 docker pull 映象別名:版本號 # 刪除映象,例如 docker rmi nginx:1.21.6 docker rmi 映象id/映象name # 檢視映象列表 docker images # 檢視容器列表, 不加-a檢視正在執行的,加上-a檢視所有容器 docker ps -a # 啟動容器 #(-d 後臺執行, --name 容器別名, -p 宿主機埠:容器埠, --network 橋接網路別名, 最後是映象名稱:映象版本) docker run -d --restart always --name vue-app-container -p 3006:3006 vue-app:1.0.0 # 關閉一個已啟動容器,例如 docker stop vue-app-container docker stop 容器ID/容器別名 # 啟動一個關閉的容器 ,例如 docker start vue-app-container docker start 容器ID/容器別名 # 刪除容器,例如 docker rm vue-app-container docker rm 容器ID/容器名 # 檢視一個容器的詳情 ,例如 docker inspect vue-app-container docker inspect 容器ID/容器別名 # 進入容器內部,例如 docker exec -it vue-app-container /bin/bash docker exec -it 容器ID/容器別名 /bin/bash
這裡不論是 Vue 應用還是 React 之類的應用,都可以用這樣的方式釋出;Vite 和 Webpack 也可以不做區分
首先,Vue 之類的單頁應用,不論是用 Vite 還是 Webpack,都需要將對應的專案程式碼打包成普通的 js、css 等檔案,最後通過 Nginx 等進行釋出。
所以,建立單頁應用映象的第一步就是打包。
Docker 建立映象的方式有:
什麼是 Dockerfile?
Dockerfile 是一個用來構建映象的文字檔案,文字內容包含了一條條構建映象所需的指令和說明。
---摘自“菜鳥教學”
Dockerfile 檔案的第一行命令,都是 FROM 命令,表示依賴的映象。因為我們建立的映象基本上都不會從0開始,最低都會依賴一個系統映象。
檔案內每條執行命令都以一個關鍵詞作為開始,常用命令有:
在構建 Docker 映象時,雖然可以執行一些命令,但是基本上不會通過命令來建立一個 nginx 組態檔。所以,我們需要在專案目錄中建立一個 nginx.conf 檔案。
### ::: ### 伺服器 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; } # 介面轉發 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 檔案僅作為範例,需要根據實際情況修改。
在執行映象構建命令之前,我們需要在根目錄下建立一個 Docker 組態檔 Dockerfile
# 設定 nginx 資源轉發, alpine 為純淨版本 FROM nginx:1.21.6 # 伺服器環境 COPY dist/ /usr/share/nginx/hwiot-web/ COPY nginx.conf /etc/nginx/conf.d/default.conf
這個檔案僅僅是將外部打包後的 dist 資料夾裡面的內容,複製到容器內的 /usr/share/nginx/vue-app/ 內,在複製 nginc.conf 檔案到 /etc/nginx/conf.d/default.conf 作為預設 Nginx 設定。
之後執行構建命令:
docker build -t vue-app:1.0.0 .
注意後面的 .
這一步會預設在當前目錄查詢 Dockerfile 檔案並進行映象構建,並且用 -t 指定映象名和映象版本號。
在上一步映象建立完成之後,就可以根據該映象建立容器了。
docker run -p 80:80 -d -name vue-app-container vue-app
這裡指定了將容器的 80 埠對映到宿主機的80,埠,這樣我們直接在本地開啟瀏覽器存取 http://localhost 即可。
到此這篇關於Docker部署單頁應用的文章就介紹到這了,更多相關Docker部署單頁應用內容請搜尋it145.com以前的文章或繼續瀏覽下面的相關文章希望大家以後多多支援it145.com!
相關文章
<em>Mac</em>Book项目 2009年学校开始实施<em>Mac</em>Book项目,所有师生配备一本<em>Mac</em>Book,并同步更新了校园无线网络。学校每周进行电脑技术更新,每月发送技术支持资料,极大改变了教学及学习方式。因此2011
2021-06-01 09:32:01
综合看Anker超能充系列的性价比很高,并且与不仅和iPhone12/苹果<em>Mac</em>Book很配,而且适合多设备充电需求的日常使用或差旅场景,不管是安卓还是Switch同样也能用得上它,希望这次分享能给准备购入充电器的小伙伴们有所
2021-06-01 09:31:42
除了L4WUDU与吴亦凡已经多次共事,成为了明面上的厂牌成员,吴亦凡还曾带领20XXCLUB全队参加2020年的一场音乐节,这也是20XXCLUB首次全员合照,王嗣尧Turbo、陈彦希Regi、<em>Mac</em> Ova Seas、林渝植等人全部出场。然而让
2021-06-01 09:31:34
目前应用IPFS的机构:1 谷歌<em>浏览器</em>支持IPFS分布式协议 2 万维网 (历史档案博物馆)数据库 3 火狐<em>浏览器</em>支持 IPFS分布式协议 4 EOS 等数字货币数据存储 5 美国国会图书馆,历史资料永久保存在 IPFS 6 加
2021-06-01 09:31:24
开拓者的车机是兼容苹果和<em>安卓</em>,虽然我不怎么用,但确实兼顾了我家人的很多需求:副驾的门板还配有解锁开关,有的时候老婆开车,下车的时候偶尔会忘记解锁,我在副驾驶可以自己开门:第二排设计很好,不仅配置了一个很大的
2021-06-01 09:30:48
不仅是<em>安卓</em>手机,苹果手机的降价力度也是前所未有了,iPhone12也“跳水价”了,发布价是6799元,如今已经跌至5308元,降价幅度超过1400元,最新定价确认了。iPhone12是苹果首款5G手机,同时也是全球首款5nm芯片的智能机,它
2021-06-01 09:30:45