在上一篇中我們寫了如何在windows中使用docker運行.netcore,既然我們了解了windows下的運行發布,我們也可以試試linux下使用docker運行.netcore項目,那么今天我們就一起看看如何在linux下使用docker運行.netcore項目吧
首先在linux環境下安裝docker
1、卸載舊版本
sudo yum remove docker \ docker-client \ docker-client-latest \ docker-common \ docker-latest \ docker-latest-logrotate \ docker-logrotate \ docker-selinux \ docker-engine-selinux \
2、安裝依賴
sudo yum install -y yum-utils device-mapper-persistent-data lvm2
3、添加儲存庫
sudo yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
4、安裝docker-ce
sudo yum -y install docker-ce
5、啟動docker
systemctl start docker
6、查看狀態
systemctl status docker
或者也可以使用
docker info
7、使用docker加速(沒有使用加速的話可能會出現等待超時的錯誤)(linux,windows,mac--https://www.daocloud.io/mirror)
curl -sSL https://get.daocloud.io/daotools/set_mirror.sh | sh -s http://f1361db2.m.daocloud.io
8、重啟docker
systemctl restart docker
使用Visual Studio創建一個.net core應用並且本地運行一下確保沒有問題
然后我們發布到文件夾Linux版本
在這里我們需要修改一下發布文件下的dockerfile文件,這里和windows上運行的文件內容可能會有點點差異,我們並不需要太多的點綴。
在我們發布文件中是沒有.csproj文件的並且發布之后文件路徑也是需要修改的,我這里稍微調整了一下我的dockerfile文件
# 拉取基礎鏡像 FROM microsoft/dotnet:2.2-aspnetcore-runtime #容器中系統的工作空間 WORKDIR /app #拷貝當前文件夾下的文件到容器中系統的工作空間 COPY . /app #設置Docker容器端口 EXPOSE 5002 #使用ENTRYPOINT ["dotnet"," project.dll"] ENTRYPOINT ["dotnet", "DockerTest.dll"]
並且上傳至服務器,然后我們在Linux服務器上進入剛創建的文件夾中
開始構建鏡像
dokcer build -t demo .
查看鏡像
docker images
運行容器
docker run --name=demo -p 5002:5002 -d demo
查看運行的容器
docker ps
如果沒有發現剛運行的容器可以查看運行日志
docker logs demo
解決完問題之后我們就可以在瀏覽器輸入ip+5002來檢查下我們是否運行成功
Dokcerfile文件下的常用指令詳解
FROM 文件中第一條非注釋INSTRUCTION一定是FROM,意思是以某一個鏡像為基礎,首先會檢查本地是否存在此鏡像,如果本地存在就不會從倉庫里面獲取
WORKDIR 指定工作目錄
EXPOSE 為構建的鏡像設置監聽端口
COPY 講源文件復制到目標文件中去
RUN 用於在鏡像容器中執行命令
歡迎大家掃描下方二維碼,和我一起學習更多的知識😊