前端專案部署 docker

2021-08-30 13:52:11 字數 2736 閱讀 6843

docker的概念在這裡就不在累述,大家google一下都能得到很詳細的描述。

藉著這次專案需要自己利用docker部署各環境,記錄一下docker學習和部署的相關過程。

linux容器與虛擬機器的對比

方案資源占用

冗餘步驟

啟動體積

虛擬機器多(獨佔一部分記憶體和硬碟空間)

多(完整作業系統,系統級別操作無法跳過)

慢(mins)

-linux容器

少(只占用少量資源,多個容器可共享資源)

-快(容器中的應用=程序)

小docker屬於linux容器的一種封裝(雖然我並沒有深入了解linux容器)。

docker的主要用途有(源阮一峰大大部落格)

雖然我在用到的過程中並沒有體會到上述好處,但不得不說docker真的是個很方便,也很值得學習的東西

docker有幾個非常重要的概念imagescontainerdockerfile

docker version    // 驗證docker安裝成功並檢視docker版本
在專案的根目錄新建文字檔案dockerfile

# 本次專案基本dockerfile配置項

# 基礎映象

from nginx

# 將打包好的專案檔案拷貝到容器對應位置

copy build /usr/share/nginx/html

# 將本地的nginx配置檔案拷貝到容器對應位置,使其生效

copy ./nginx.conf /etc/nginx/conf.d/default.conf

# 用來啟動容器的命令

copy ./docker-compose.yml /home/hope/docker-compose.yml

生成專案的映象檔案

# 生成映象檔案,並打上tag為feedback-sys

docker build -t feedback-sys

將映象檔案上傳至dockerhub

docker push $/歸屬/倉庫名稱:tag名
伺服器端拉取映象檔案

docker pull 位址
啟動容器

# 執行乙個映象並  啟動 bash 互動

docker run -it mydocker /bin/bash

# 也可以寫docker-compose.yml檔案,通過`docker-compose up -d`命令來啟動

# docker-compose.yml檔案配置參見官網

docker-compose 起映象時,可以指定docker-compose檔案,指令如下:

docker-compose -f docker-compose-feedback.yml up -d使用指定的docker-compose檔案啟動映象。

----
tips: 進入乙個執行中的映象容器,並以bash進行互動,可以使用docker exec -it $ /bin/bash命令

在使用docker時,經常會產生乙個問題,docker占用太多磁碟空間,當磁碟被docker佔滿,服務也就掛了,所以我們要對此保持警惕,定時檢視docker的磁碟占用情況。

檢視docker占用的磁碟情況

docker system df        // 檢視磁碟占用情況

看,可怕吧, docker 映象占用了7.7gb的磁碟,而容器則占用了40mb的磁碟,如果我繼續不管它,不清理,這個資料會依次疊加,一直到撐爆磁碟。

清理docker 占用的磁碟

docker system prune -a  // 清理刪除關閉的容器,無容器使用的映象,無引用的資料卷等,以及dangling映象(無tag的映象)

執行清理命令後的效果,docker占用的磁碟瞬間清空了(因本地沒有起docker容器,所以會將所有的docker映象和容器都清除)

檢視正在執行的docker容器,以及docker映象

對於舊版本的docker,如果沒有docker system命令,則需手動清理

docker ps -a | grep exit | cut -d '' -f 1 | xargs docker rm        // 刪除所有關閉的容器
docker rmi $(docker images | grep "^" | awk "")    // 刪除所有dangling映象(無tag的映象)
docker volume rm $(docker volume ls -qf dangling=true)  // 刪除所有dangling資料卷(無用volume)

前端專案部署

之前很少接觸前端專案的部署,這次為了更全面的學習就在本機上裝了乙個虛擬機器上,在虛擬機器上練習了如何把乙個react寫的spa專案部署到這個虛擬機器的伺服器上。由於linux也是剛接觸不久,所以整個過程還是遇到了很多坑,這裡記錄下。我有乙個用react寫的單頁面應用,然後希望部署到伺服器上,通過ip...

docker部署前端專案

1.安裝docker nginx 檢視docker是否安裝 docker info docker 安裝nginx docker pull nginx 2.新建docker niginx配置檔案 新建docker web資料夾,新建dockerfile檔案,新建nginx資料夾,新建default.c...

vue專案部署到docker中

通過nginx映象部署 vue專案npm run build打包成dist目錄,有的打包會加上版本號 啟動 docker 將dist目錄通過xftp拷貝到linux伺服器上,同目錄下新建dockerfile from nginx copy dist usr share nginx html copy...