激情久久久_欧美视频区_成人av免费_不卡视频一二三区_欧美精品在欧美一区二区少妇_欧美一区二区三区的

服務器之家:專注于服務器技術及軟件下載分享
分類導航

Linux|Centos|Ubuntu|系統進程|Fedora|注冊表|Bios|Solaris|Windows7|Windows10|Windows11|windows server|

服務器之家 - 服務器系統 - Centos - .NETCore項目在Windows下構建Docker鏡像并本地導出分發到CentOS系統下

.NETCore項目在Windows下構建Docker鏡像并本地導出分發到CentOS系統下

2023-12-29 08:00未知服務器之家 Centos

在Windows下使用Docker,我們選擇Docker Desktop這個軟件,非常方便。 Docker Desktop介紹及安裝 Docker Desktop是適用于Mac、Linux或Windows環境的一鍵安裝應用程序,使您能夠構建和共享容器化應用程序和微服務。 它提供了一個簡單的GUI(圖形用

在Windows下使用Docker,我們選擇Docker Desktop這個軟件,非常方便。

Docker Desktop介紹及安裝

Docker Desktop是適用于Mac、Linux或Windows環境的一鍵安裝應用程序,使您能夠構建和共享容器化應用程序和微服務。
它提供了一個簡單的GUI(圖形用戶界面),允許您直接從機器管理容器、應用程序和圖像。Docker Desktop既可以單獨使用,也可以作為CLI的補充工具。
Docker Desktop減少了在復雜設置上花費的時間,因此您可以專注于編寫代碼。它負責端口映射、文件系統問題和其他默認設置,并定期更新錯誤修復和安全更新。
安裝Docker Desktop后,默認安裝了以下組件:

  • Docker Engine
  • Docker CLI client
  • Docker Buildx
  • Extensions
  • Docker Compose
  • Docker Content Trust
  • Kubernetes
  • Credential Helper

Docker Desktop可與您選擇的開發工具和語言配合使用,并使您能夠訪問Docker Hub中的大量認證圖像和模板庫。這使開發團隊能夠擴展他們的環境,以便使用安全的存儲庫快速自動構建、持續集成和協作。
官網地址

項目編譯

發布項目運行框架為.net6.0,運行環境為linux-x64
.NETCore項目在Windows下構建Docker鏡像并本地導出分發到CentOS系統下

Dockerfile內容及國內鏡像源

Dockerfile是用來構建docker鏡像的構建文件,它其實就像一個腳本文件,里面可以執行一些命令,通過它就可以指定或下載構建的鏡像所需要的一些組件,然后打包成鏡像文件。
下面是本教程使用的Dockerfile腳本文件內容,指定了使用asp.net6.0的運行時環境,并且在鏡像系統的5000端口上提供http服務。同時更新sources.list使用國內鏡像源,這里沒有用阿里的鏡像源,因為測試過程中阿里的鏡像源在apt-get install -y libgdiplus的時候會提示找不到這個組件(坑)。因為使用的有基于System.Drawing繪制的驗證碼圖片,所以需要在構建的時候把libgdiplus組件引用到鏡像文件中,最后把鏡像系統中的時區改成亞洲的時區。

FROM mcr.microsoft.com/dotnet/aspnet:6.0 AS base
WORKDIR /WhiteList
EXPOSE 5000
COPY . .

RUN touch /etc/apt/sources.list
RUN echo "" > /etc/apt/sources.list \ 
   && echo "deb http://www.zmynmublwnt.cn/uploads/allimg/uba31humzzm buster main non-free contrib" >> /etc/apt/sources.list \ 
   && echo "deb http://www.zmynmublwnt.cn/uploads/allimg/uba31humzzm buster-updates main non-free contrib" >> /etc/apt/sources.list \ 
   && echo "deb http://www.zmynmublwnt.cn/uploads/allimg/uba31humzzm buster-backports main non-free contrib" >> /etc/apt/sources.list \ 
   && echo "deb-src http://www.zmynmublwnt.cn/uploads/allimg/uba31humzzm buster main non-free contrib" >> /etc/apt/sources.list \ 
   && echo "deb-src http://www.zmynmublwnt.cn/uploads/allimg/uba31humzzm buster-updates main non-free contrib" >> /etc/apt/sources.list \ 
   && echo "deb-src http://www.zmynmublwnt.cn/uploads/allimg/uba31humzzm buster-backports main non-free contrib" >> /etc/apt/sources.list \ 
   && echo "deb http://www.zmynmublwnt.cn/uploads/allimg/wcgslwjoovw buster/updates main non-free contrib" >> /etc/apt/sources.list \ 
   && echo "deb-src http://www.zmynmublwnt.cn/uploads/allimg/wcgslwjoovw buster/updates main non-free contrib" >> /etc/apt/sources.list

ENV TZ=Asia/Shanghai
RUN apt-get update -y 
#RUN apt-get upgrade -y
RUN apt-get install -y libgdiplus
RUN apt-get clean
RUN ln -s /usr/lib/libgdiplus.so /usr/lib/gdiplus.dll
RUN ln -fs /usr/share/zoneinfo/${TZ} /etc/localtime \
    && echo ${TZ} > /etc/timezone

ENV ASPNETCORE_URLS http://+:5000
ENTRYPOINT ["dotnet", "WhiteList.dll"]

同時可以添加.dockerignore文件來排除一些不需要打包到鏡像里的文件,比如忽略到bin或者obj目錄里的文件。
[b|B]in [O|o]bj
最后,千萬不要忘記把wwwroot復制到發布的目錄中,要不然訪問的時候會沒有樣式。以上Dockerfile中的有些腳本命令可合并成一行。

Docker鏡像打包發布

把Dockerfile和.dockerignore文件復制到發布目錄中,然后運行PowShell,cd命令到發布目錄(本文使用目錄為bin\Release\net6.0\linux-x64)。
然后執行打包命令
docker build --tag whitelist:1.0 .

.NETCore項目在Windows下構建Docker鏡像并本地導出分發到CentOS系統下

如一切正常,按上圖的進度執行完成后,就可以在Docker Desktop中看到打包的鏡像文件。
.NETCore項目在Windows下構建Docker鏡像并本地導出分發到CentOS系統下

Docker Desktop中的Linux系統

我們點擊鏡像的運行按鈕,填寫好鏡像名稱,綁定端口(本機通過此端口用瀏覽器可以訪問到容器內的服務),綁定的本地文件夾(可選)和其它參數(可選)后點擊RUN按鈕,如果沒有端口沖突和名稱沖突,就會得到一個運行成功的容器。
.NETCore項目在Windows下構建Docker鏡像并本地導出分發到CentOS系統下
.NETCore項目在Windows下構建Docker鏡像并本地導出分發到CentOS系統下
我們可以進入到容器的操作系統中查看一下系統信息。
.NETCore項目在Windows下構建Docker鏡像并本地導出分發到CentOS系統下

cat /etc/issue
Debian GNU/Linux 10

cat /proc/version
Linux version 5.15.90.1-microsoft-standard-WSL2 (oe-user@oe-host) (x86_64-msft-linux-gcc (GCC) 9.3.0, GNU ld (GNU Binutils) 2.34.0.20200220)

Docker鏡像導出

現在我們已經得到了一個基于Docker Desktop在Windows系統上構建的鏡像文件,在使用中,我們需要把這個鏡像運行在Linux系統中(比如CentOS),所以需要把鏡像導出來進行分發(這里使用的是本地導出,不是導出到云鏡像服務器)。
在Windows系統的PowerShell中執行下面命令,把鏡像(whitelist):Tag名(1.0)導出到本地的d盤,文件名是whitelist.tar,
docker save -o d:\whitelist.tar whitelist:1.0

CentOS安裝Docker

首先安裝一下Docker所依賴的組件
yum install -y yum-untils device-mapper-persistent-data lvm2

然后配置數據源為國內的阿里云數據源
yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo

安裝Docker
yum install docker-ce

啟動Docker
systemctl start docker

設置Docker為開機自啟
systemctl enable docker

查看Docker的版本信息
docker --version
Docker version 24.0.2, build cb74dfc

查看當前Docker中的鏡像
docker images
.NETCore項目在Windows下構建Docker鏡像并本地導出分發到CentOS系統下
這里看到,目前Docker中沒有任何鏡像

CentOS Docker鏡像導入

把鏡像文件上傳到/usr/data目錄下,然后執行導入鏡像的命令
docker load -i /usr/data/whitelist.tar
.NETCore項目在Windows下構建Docker鏡像并本地導出分發到CentOS系統下
導入成功后,再查看Docker中的鏡像,就會看到我們剛導入的鏡像文件了。
.NETCore項目在Windows下構建Docker鏡像并本地導出分發到CentOS系統下

隨后我們執行運行鏡像的命令,把CentOS系統的8080端口和容器的5000端口做映射。
docker run -d -p 8080:5000 --name whitelist whitelist:1.0
運行成功后會返回一個類似GUID的容器編號,然后我們可以查看一下當前運行的容器。
docker ps
.NETCore項目在Windows下構建Docker鏡像并本地導出分發到CentOS系統下
如果防火墻沒有放行8080端口,可用以下命令放開8080端口。
firewall-cmd --zone=public --add-port=8080/tcp --permanent
firewall-cmd --reload

最后我們本機打開瀏覽器訪問CentOS系統的IP并帶上8080端口,就可看到我們從Windows上打包的Docker鏡像已經成功運行在了CentOS系統的Docker環境下了。
.NETCore項目在Windows下構建Docker鏡像并本地導出分發到CentOS系統下

延伸 · 閱讀

精彩推薦
  • CentosCentos7運用/dev/shm進行網站優化

    Centos7運用/dev/shm進行網站優化

    這篇文章主要介紹了LINUX中Centos7運用/dev/shm進行網站優化相關知識點,對此有興趣的朋友參考學習下。...

    彬菌9912022-03-02
  • Centoscentos 安裝與操作方法

    centos 安裝與操作方法

    這篇文章主要介紹了centos 安裝與操作方法,需要的朋友可以參考下...

    centos之家5272019-07-11
  • CentosCentOS7設置日期和時間方法以及基本概念介紹

    CentOS7設置日期和時間方法以及基本概念介紹

    這篇文章主要介紹了CentOS7設置日期和時間方法以及基本概念介紹,本文講解使用CentOS7中的新命令timedatectl設置日期時間方法,需要的朋友可以參考下 ...

    CentOS之家6522019-09-19
  • CentosCentOS6.5下Redis安裝與配置詳細步驟

    CentOS6.5下Redis安裝與配置詳細步驟

    本篇文章主要介紹了CentOS6.5下Redis安裝與配置詳細步驟,詳細介紹redis單機單實例安裝與配置,服務及開機自啟動。有興趣的可以了解一下。...

    飛流11452021-12-24
  • CentosCentOS下Uptime命令詳解

    CentOS下Uptime命令詳解

    在Linux下,我們可以使用uptime命令,而且此命令不必使用root權限。uptime命令在系統中已經默認安裝了。今天小編為大家帶來的是CentOS下Uptime命令詳解;希望...

    CentOS之家11482019-06-19
  • CentosCentos 7開啟網卡自動獲取IP的詳細方法

    Centos 7開啟網卡自動獲取IP的詳細方法

    本篇文章主要介紹了Centos 7開啟網卡自動獲取IP的詳細方法,小編覺得挺不錯的,現在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧...

    凌鋒8972021-12-29
  • Centoscentos不小心刪除/root目錄該如何解決?

    centos不小心刪除/root目錄該如何解決?

    一些朋友最近在問小編centos不小心刪除/root目錄該如何解決?今天小編就為大家分享centos不小心刪除/root目錄解決辦法;希望對大家會有幫助,有需要的朋友...

    腳本之家8022019-05-29
  • CentosCentOS 6.6實現永久修改DNS地址的方法

    CentOS 6.6實現永久修改DNS地址的方法

    這篇文章主要介紹了CentOS 6.6實現永久修改DNS地址的方法,涉及針對CentOS配置文件的相關設置技巧,具有一定參考借鑒價值,需要的朋友可以參考下 ...

    Linux社區4472020-08-21
主站蜘蛛池模板: 成人不卡在线观看 | 午夜视频观看 | 欧美aaa | 久久国产精品影视 | 国产电影精品久久 | 久久久久久艹 | 在线中文字幕观看 | 2019天天干夜夜操 | 一级做a爱片久久毛片a高清 | 国产精品久久久久久久成人午夜 | 中文字幕网站在线 | 国产免费一级淫片 | 毛片在线视频观看 | 免费观看一区 | 免费黄色在线观看网站 | 久久久久久久亚洲精品 | 2级毛片| 欧美乱码精品一区 | 久久福利小视频 | 日本中文不卡视频 | 欧洲亚洲激情 | 成人在线观看免费观看 | 亚洲人成网站在e线播放 | 精品国产一区二区在线观看 | 日本黄色一级视频 | 成人精品一区二区三区中文字幕 | 国产精品成人久久久久a级 av电影在线免费 | 免费久久精品 | 中文字幕免费在线看 | 九一免费版在线观看 | 国产一区二区亚洲 | 精品久久久久久久久中文字幕 | 3xxx| 欧美精品18 | 九一免费在线观看 | 欧美日韩在线播放 | 亚洲午夜久久久精品一区二区三区 | 久久综合网址 | 91在线视频播放 | 免费黄色入口 | 欧美精品一区二区中文字幕 |