1. 程式人生 > >ASP.NET Core Docker部署

ASP.NET Core Docker部署

前言

在前面文章中,介紹了 ASP.NET Core在 macOS,Linux 上基於Nginx和Jexus的釋出和部署,本篇文章主要是如何在Docker容器中執行ASP.NET Core應用程式。

目錄

  • Docker 常用命令
  • Docker 安裝Asp.Net Core映象
  • 使用Dockerfile部署

Docker 常用命令

docker info
檢查Docker的安裝是否正確,如果沒有找到此命令,則表示Docker沒有正確安裝

docker pull busybox
拉取一個預建的映象

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的當前狀態:

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
將容器的狀態儲存為映象

docker images
令檢視所有映象的列表

下面分享一些我經常使用的一些命令:

移除所有的容器和映象,用一行命令大掃除:
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映象

到這裡,假設你的Docker已經安裝完成,以下環境為 Liunx(Ubuntu 15.02)。
image

開啟 https://hub.docker.com 右上角搜尋dotnet,選擇第一個搜尋結果microsoft/dotnet,點進去如下圖:
image

得到命令了吧,切換到命令列視窗執行以下命令來安裝asp.net core 映象。

sudo docker pull microsoft/dotnet

什麼? 沒響應,速度慢? 你不會買個高速VPN啊~
什麼? 沒錢? 你不會找一個國內的Docker映象站啊~ DaoCloud映象啊,阿里雲Docker映象啊。。自己動手找啊。。

映象下載完成之後,輸入sudo docker images我們檢查一下:
iamge

至此,準備工作已經全部完成了

使用 Dockerfile 部署

Dockerfile 是什麼東西,Dockerfile有什麼用,自行百度。

博主直接教你怎麼寫吧:

總不能一直用5000埠吧,這次我們使用60000埠

1、程式命令列切換到publish檔案目錄中。
2、sudo touch Dockerfile 名稱不要寫錯了,沒有任何字尾名,來新建一個Dockerfile檔案。
3、sudo vim Dockerfile 使用Vim來編輯Dockerfile。如果Vim不會用就用gedit吧。
4、輸入以下內容:

Dockerfile

#基於 `microsoft/dotnet:1.0.0-core` 來構建我們的映象
FROM microsoft/dotnet:1.0.0-core

#拷貝專案publish資料夾中的所有檔案到 docker容器中的publish資料夾中  
COPY . /publish

#設定工作目錄為 `/publish` 資料夾,即容器啟動預設的資料夾
WORKDIR /publish

#設定Docker容器對外暴露60000埠
EXPOSE 60000

#使用`dotnet HelloWebApp.dll`來執行應用程式

CMD ["dotnet", "HelloWebApp.dll", "--server.urls", "http://*:60000"]

使用:wq來儲存並退出 (gedit無視掉 )。

構建映象

執行 docker build -t hellowebapp:1.0 . 來構建一個映象
image

執行構建的映象

使用docker run --name hellowebapp -d -p 60000:60000 hellowebapp:1.0
image

開啟瀏覽器測試一下:
image

PS: 終於通了,踩了好多坑。你不點個贊麼?

下一篇怎麼在 Linux 為 dotnet 建立守護程序(Linux 部署必備知識),已經寫好了,明天發。

相關推薦

ASP.NET Core Docker部署

前言 在前面文章中,介紹了 ASP.NET Core在 macOS,Linux 上基於Nginx和Jexus的釋出和部署,本篇文章主要是如何在Docker容器中執行ASP.NET Core應用程式。 目錄 Docker 常用命令 Docker 安裝Asp.Net Core映象 使用Dockerfile部

Windows下docker的安裝,將ASP.NET Core程序部署docker

很好 etc all 虛擬 mark work 記得 配置 netcore 參考文章: https://www.cnblogs.com/jRoger/p/aspnet-core-deploy-to-docker.html https://www.cnblogs.com/jR

Asp.Net Core 程式部署到Linux(centos)生產環境(二):docker部署

執行環境 照例,先亮環境;軟體的話我這裡假設你已經批准好了.net core 執行環境,未配置可以看我的這篇[linux(centos)搭建.net core 執行環境] 騰訊雲 centos:7.2 cpu:1核 2G記憶體 1M頻寬 docker:18.06.1-ce 安裝dock

Asp.Net Core 程序部署到Linux(centos)生產環境(二):docker部署

大神 生產環境 blog for 服務器 路徑 結構 dot images 運行環境 照例,先亮環境;軟件的話我這裏假設你已經批準好了.net core 運行環境,未配置可以看我的這篇[linux(centos)搭建.net core 運行環境] 騰訊雲 centos

使用ML.NET + ASP.NET Core + Docker + Azure Container Instances部署.NET機器學習模型

cat ports sed tar enc convert esp asp truct 本文將使用ML.NET創建機器學習分類模型,通過ASP.NET Core Web API公開它,將其打包到Docker容器中,並通過Azure Container Instances將其

Windows下docker的安裝,將ASP.NET Core程序部署在Linux和Docker

第一次 p地址 web程序 基礎 執行文件 docker安裝 ima rfi 如果 原文:Windows下docker的安裝,將ASP.NET Core程序部署在Linux和Docker中參考文章: https://www.cnblogs.com/jRoger/p/asp

Asp.Net Core App 部署故障示例

str .com href init 日誌 with pro 新的 listen 相關閱讀:Windows + IIS 環境部署Asp.Net Core App 1. HTTP Error 502.5 – Process Failure 環境 Window

ASP.NET Core + Docker +Jenkins 實現持續集成

before hash net stuck 超時時間 ref shell 腳本 conf cut 1.新建一個ASP.NET Core MVC應用程序: 2.將其上傳到git: 3.建立Jenkins任務 (1)選擇“新建任務”,輸入任務名稱,選擇“自由風格項目”,然後

Asp.net Core Windows部署

安裝 應用 load core build 應用程序 post hosting .net 一、 IIS 部署模式 1. 安裝IIS服務 2. 下載安裝Core SDK https://www.microsoft.com/net/download/Wind

vscode建立的asp.net core專案部署到IIS

一、釋出專案 在visual studio code中通過命令“dotnet publish”,如下圖:  這裡我把釋出位置設定到了D:\WebSite\netcoredemo下。   二、設定IIS 0、安裝AspNetCoreModule託管模組,安裝後在iis的“模組”

.net core+Docker部署

圖片 ejs 目錄 runt png run 分享 mvc sta 1.安裝Docker CE 服務器Ubuntu 16 http://docs.docker-cn.com/engine/installation/linux/docker-ce/ubuntu/#%E5%AE

Getting Started With ASP.NET Core & Docker

Containers — Docker: IntroductionNow, let’s move on to a brief explanation on what are the main purposes of using containers in software development.What i

ASP.NET Core & Docker & Jenkins 零基礎持續整合

一.本系列教程說明 gitserver採用的:Gogs 持續整合工具採用:Jenkins 容器:Docker 二.為什麼不用gitlab? 沒有采用gitlab,因為gitlab比較吃配置,至少得2核4G的配置。採用go語言開發的gogs來代替,搭建方便(不到10分鐘就能安裝完成),資源消耗低,功能也比較強大

ASP.NET Core & Docker 實戰經驗分享

一.前言 最近一直在研究和實踐ASP.NET Core、Docker、持續整合。在ASP.NET Core 和 Dcoker結合下遇到了一些坑,在此記錄和分享,希望對大家有一些幫助。 二.中間映象 多階段構建產生的中間映象,映象快取層等 我前面寫過一個 《ASP.NET Core & Docker

ASP.NET Core + Docker +Jenkins 實現持續整合

本文為 docker-compose 方式,但自從 Visual Studio 2017 15.8 版本更新以後,通過VS新增的 Docker 支援預設就只有 Dockerfile 了,所以請參見這篇文章:https://www.cnblogs.com/stulzq/p/9201830.html 準備 我

實戰Asp.Net Core部署應用

images 應用部署 ali eps ati 推送 -s 文檔 edit 原文:實戰Asp.Net Core:部署應用1、前言 某一刻,你已經把 .Net Core 的程序寫好了。接下來,還可以做什麽呢?那就是部署了。 作為一名開發工程師,如果不會部署自己開發的應用,

Asp.Net Core IIS部署

tab asp download bubuko targe tro net target 技術 1、部署環境 系統 win10 語言版本 .net core 2.2 2、部署環境搭建 2.1安裝.Net Core

品嘗阿裏雲容器服務:初步嘗試ASP.NET Core Web API站點的Docker自動化部署

asp.net title build 阿裏雲服務器 arm web 容器服務 倉庫 acs 部署場景是這樣的,我們基於 ASP.NET Core 2.0 Preview 1 開發了一個用於管理緩存的 Web API ,想通過阿裏雲容器服務基於 Docker 部署為內網服務

ASP.NET Core開發Docker部署

以及 及其 tcp ima clas save url lba 最終 ASP.NET Core開發Docker部署,.NET Core支持Docker 部署運行。我們將ASP.NET Core 部署在Docker 上運行。 大家可能都見識過Docker ,今天我們就詳細了

使用Docker部署ASP.NET Core應用程序實踐

4.0 cor run .com cnblogs pda word 本地配置 問題 前言 最近把很火的Docker給看了,於是就磨拳擦掌要去實踐一下。於是就拿之前一個aps.net core的項目(已被停止)去練手。該項目之前在ubuntu14.04上確保可以正常運行,所以