ASP.NET Core Docker部署
前言
在前面文章中,介紹了 ASP.NET Core在 macOS,Linux 上基于Nginx和Jexus的發(fā)布和部署,本篇文章主要是如何在Docker容器中運行ASP.NET Core應(yīng)用程序。
Asp.Net Core 發(fā)布和部署( MacOS + Linux + Nginx )
Asp.Net Core 發(fā)布和部署(Linux + Jexus )
目錄
Docker 常用命令
Docker 安裝Asp.Net Core鏡像
使用Dockerfile部署
Docker 常用命令
docker info
檢查Docker的安裝是否正確,如果沒有找到此命令,則表示Docker沒有正確安裝
docker pull busybox
拉取一個預(yù)建的鏡像
sample_job=$(docker run -d busybox /bin/sh -c "while true; do echo Docker; sleep 1; done")
以后臺進程的方式運行hello docker
sample_job命令會隔一秒打印一次Docker,使用Docker logs可以查看輸出。如果沒有起名字,那這個job會被分配一個id,以后使用命令例如Docker logs查看日志會變得比較麻煩。
docker logs $sample_job
運行Docker logs命令來查看job的當前狀態(tài):
docker help
所有Docker命令
docker stop $sample_job
停止名為sample_job的容器
docker restart $sample_job
重新啟動該容器
docker stop $sample_job docker rm $sample_job
如果要完全移除容器,需要將該容器停止,然后才能移除
docker commit $sample_job job1
將容器的狀態(tài)保存為鏡像
docker images
令查看所有鏡像的列表
下面分享一些我經(jīng)常使用的一些命令:
移除所有的容器和鏡像,用一行命令大掃除:
docker kill $(docker ps -q) ; docker rm $(docker ps -a -q) ; docker rmi $(docker images -q -a)
僅僅想刪除所有的容器,你可以運行如下命令:
docker kill $(docker ps -q) ; docker rm $(docker ps -a -q)
清除名稱為none的鏡像,一般都是下載一般失敗的殘留:
docker ps -a | grep "Exited" | awk '{print $1 }'|xargs docker stop docker ps -a | grep "Exited" | awk '{print $1 }'|xargs docker rm docker images|grep none|awk '{print $3 }'|xargs docker rmi清除單個鏡像:
docker rmi -f <image id>
Docker 安裝Asp.Net Core鏡像
有關(guān)Docker的安裝請參考官網(wǎng):
https://www.docker.com/products/docker
到這里,假設(shè)你的Docker已經(jīng)安裝完成,以下環(huán)境為 Liunx(Ubuntu 15.02)。
打開?https://hub.docker.com?右上角搜索dotnet,選擇第一個搜索結(jié)果microsoft/dotnet,點進去如下圖:
得到命令了吧,切換到命令行窗口運行以下命令來安裝asp.net core 鏡像。
sudo docker pull microsoft/dotnet什么? 沒響應(yīng),速度慢? 你不會買個高速VPN啊~
什么? 沒錢? 你不會找一個國內(nèi)的Docker鏡像站啊~ DaoCloud鏡像啊,阿里云Docker鏡像啊。。自己動手找啊。。
鏡像下載完成之后,輸入sudo docker iamges我們檢查一下:
至此,準備工作已經(jīng)全部完成了
使用 Dockerfile 部署
Dockerfile 是什么東西,Dockerfile有什么用,自行百度。
博主直接教你怎么寫吧:
總不能一直用5000端口吧,這次我們使用60000端口
1、程序命令行切換到publish文件目錄中。
2、sudo touch Dockerfile?名稱不要寫錯了,沒有任何后綴名,來新建一個Dockerfile文件。
3、sudo vim Dockerfile?使用Vim來編輯Dockerfile。如果Vim不會用就用gedit吧。
4、輸入以下內(nèi)容:
Dockerfile
#基于 `microsoft/dotnet:1.0.0-core` 來構(gòu)建我們的鏡像FROM microsoft/dotnet:1.0.0-core#拷貝項目publish文件夾中的所有文件到 docker容器中的publish文件夾中 ?COPY . /publish#設(shè)置工作目錄為 `/publish` 文件夾,即容器啟動默認的文件夾WORKDIR /publish#設(shè)置Docker容器對外暴露60000端口EXPOSE 60000#使用`dotnet HelloWebApp.dll`來運行應(yīng)用程序CMD ["dotnet", "HelloWebApp.dll", "--server.urls", "http://*:60000"]使用:wq來保存并退出 (gedit無視掉 )。
構(gòu)建鏡像
運行?docker build -t hellowebapp:1.0 .?來構(gòu)建一個鏡像
運行構(gòu)建的鏡像
使用docker run --name hellowebapp -d -p 60000:60000 hellowebapp:1.0
打開瀏覽器測試一下:
下一篇怎么在 Linux 為 dotnet 創(chuàng)建守護進程(Linux 部署必備知識),已經(jīng)寫好了,明天發(fā)。
相關(guān)文章:
ASP.NET Core 1.0 入門——了解一個空項目
ASP.NET Core 1.0 部署 HTTPS (.NET Framework 4.5.1)
.NET Core 1.0、ASP.NET Core 1.0和EF Core 1.0簡介
云服務(wù)器下ASP.NET Core 1.0環(huán)境搭建(包含mono與coreclr)
使用VS Code開發(fā)ASP.NET Core 應(yīng)用程序
dotnet run是如何啟動asp.net core站點的
ASP.NET Core提供模塊化Middleware組件
“dotnet restore"和"dotnet run"都做了些什么?
探秘 dotnet run 如何運行 .NET Core 應(yīng)用程序
.NET Portability Analyzer 已開源
ASP.NET Core的配置(1):讀取配置信息
ASP.NET Core的配置(2):配置模型詳解
.NET Core 1.0 RC2 歷險之旅
使用VS Code開發(fā) 調(diào)試.NET Core 應(yīng)用程序
讓我們Core在一起:ASP.NET Core & .NET Core
.NET Core VS Code 環(huán)境配置
官方博客明確了 .NET Core RC2/RTM 時間表
.NET Core全新的配置管理[共9篇]
利用記事本創(chuàng)建一個ASP.NET Core RC2 MVC應(yīng)用
微軟.NET 正式劈腿成功,橫跨所有平臺
.NET Core 1.0 CentOS7 嘗試
解讀發(fā)布:.NET Core RC2 and .NET Core SDK Preview 1
[.NET Core].NET Core R2安裝及示例教程
ASP.NET Core 開發(fā)-中間件(Middleware)
結(jié)合Jexus + Kestrel 部署 asp.net core 生產(chǎn)環(huán)境
通過Jexus 部署 dotnetcore版本MusicStore 示例程序
ASP.NET Core 中文文檔 第一章 入門
用 Visual Studio Code 在 macOS 上創(chuàng)建首個 ASP.NET Core 應(yīng)用程序
用 Visual Studio 和 ASP.NET Core MVC 創(chuàng)建首個 Web API
用 Visual Studio 發(fā)布一個 Azure 云 Web 應(yīng)用程序
ASP.NET Core MVC 與 Visual Studio 入門
第二章指南(4.2)添加 Controller
DotNet Core 介紹
asp.net core 中間件詳解及項目實戰(zhàn)
教你實踐ASP.NET Core Authorization(免看文檔教程)
asp.net core 使用 Redis 和 Protobuf 進行 Session 緩存
asp.net core 中間件詳解及項目實戰(zhàn)
第二章 指南(4.3)添加 View
dotnet core開發(fā)體驗之開始MVC
dotnet core 開發(fā)體驗之Routing
聊聊ASP.NET Core默認提供的這個跨平臺的服務(wù)器——KestrelServer
簡析.NET Core 以及與 .NET Framework的關(guān)系
.NET Core 使用Dapper 操作MySQL
使用 CommandLineApplication 類創(chuàng)建專業(yè)的控制臺程序
簡析 .NET Core 構(gòu)成體系
.NET Core也可以使用MongoDB了
.NET Core & ASP.NET Core 1.0在Redhat峰會上正式發(fā)布
.NET Core:面向未來的開源跨平臺開發(fā)技術(shù)
微軟說它深愛著Linux,現(xiàn)在它用行動證明了
移植.NET Core計劃,整合各平臺變得更簡單了!
ASP.NET Core 介紹
通過幾個Hello World感受.NET Core全新的開發(fā)體驗
ASP.NET Core 運行原理剖析1:初始化WebApp模版并運行
.NET Core系列 : 1、.NET Core 環(huán)境搭建和命令行CLI入門
Asp.Net Core 發(fā)布和部署( MacOS + Linux + Nginx )
Asp.Net Core 發(fā)布和部署(Linux + Jexus )
學習ASP.NET Core,你必須了解無處不在的“依賴注入”
.NET Core應(yīng)用類型(Portable apps & Self-contained apps)
.NET Core 1.0發(fā)布:微軟開源跨平臺大布局序幕
ASP.NET Core 運行原理剖析2:Startup 和 Middleware(中間件)
在Windows Server 2012 R2 Standard 部署 ASP.NET Core程序
ASP.NET Core 開發(fā)-Entity Framework (EF) Core 1.0 Database First
擁抱.NET Core,跨平臺的輕量級RPC:Rabbit.Rpc
使用 dotnet watch 開發(fā) ASP.NET Core 應(yīng)用程序
ASP.NET Core 發(fā)布至Linux生產(chǎn)環(huán)境 Ubuntu 系統(tǒng)
原文地址:http://www.cnblogs.com/savorboard/p/dotnetcore-docker.html
.NET社區(qū)新聞,深度好文,微信中搜索dotNET跨平臺或掃描二維碼關(guān)注
總結(jié)
以上是生活随笔為你收集整理的ASP.NET Core Docker部署的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 跨站请求伪造(CSRF/XSRF)
- 下一篇: ASP.NET Core quot;完整