天天看點

ASP.NET Core Docker部署

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

ASP.NET Nginx 釋出和部署 :http://www.cnblogs.com/savorboard/p/dotnet-core-publish-nginx.html。

Asp.Net Jexus 釋出和部署:http://www.cnblogs.com/savorboard/p/dot-net-linux-jexus.html。

Docker 常用指令

Docker 安裝Asp.Net Core鏡像

使用Dockerfile部署

<code>docker info</code>

檢查Docker的安裝是否正确,如果沒有找到此指令,則表示Docker沒有正确安裝

<code>docker pull busybox</code>

拉取一個預建的鏡像

<code>sample_job=$(docker run -d busybox /bin/sh -c "while true; do echo Docker; sleep 1; done")</code>

以背景程序的方式運作hello docker

sample_job指令會隔一秒列印一次Docker,使用Docker logs可以檢視輸出。如果沒有起名字,那這個job會被配置設定一個id,以後使用指令例如Docker logs檢視日志會變得比較麻煩。

<code>docker logs $sample_job</code>

運作Docker logs指令來檢視job的目前狀态:

<code>docker help</code>

所有Docker指令

<code>docker stop $sample_job</code>

停止名為sample_job的容器

<code>docker restart $sample_job</code>

重新啟動該容器

<code>docker stop $sample_job docker rm $sample_job</code>

如果要完全移除容器,需要将該容器停止,然後才能移除

<code>docker commit $sample_job job1</code>

将容器的狀态儲存為鏡像

<code>docker p_w_picpaths</code>

令檢視所有鏡像的清單

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

移除所有的容器和鏡像,用一行指令大掃除:

<code>docker kill $(docker ps -q) ; docker rm $(docker ps -a -q) ; docker rmi $(docker p_w_picpaths -q -a)</code>

僅僅想删除所有的容器,你可以運作如下指令:

<code>docker kill $(docker ps -q) ; docker rm $(docker ps -a -q)</code>

清除名稱為none的鏡像,一般都是下載下傳一般失敗的殘留:

清除單個鏡像:

<code>docker rmi -f &lt;p_w_picpath id&gt;</code>

有關Docker的安裝請參考官網:

https://www.docker.com/products/docker

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

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

得到指令了吧,切換到指令行視窗運作以下指令來安裝asp.net core 鏡像。

什麼? 沒響應,速度慢? 你不會買個高速×××啊~ 什麼? 沒錢? 你不會找一個國内的Docker鏡像站啊~ DaoCloud鏡像啊,阿裡雲Docker鏡像啊。。自己動手找啊。。

鏡像下載下傳完成之後,輸入<code>sudo docker p_w_picpaths</code>我們檢查一下:

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

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

部落客直接教你怎麼寫吧:

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

1、程式指令行切換到publish檔案目錄中。

2、<code>sudo touch Dockerfile</code> 名稱不要寫錯了,沒有任何字尾名,來建立一個Dockerfile檔案。

3、<code>sudo vim Dockerfile</code> 使用Vim來編輯Dockerfile。如果Vim不會用就用gedit吧。

4、輸入以下内容:

Dockerfile

使用<code>:wq</code>來儲存并退出 (gedit無視掉 )。

運作 <code>docker build -t hellowebapp:1.0 .</code> 來建構一個鏡像

使用<code>docker run --name hellowebapp -d -p 60000:60000 hellowebapp:1.0</code>

打開浏覽器測試一下:

PS: 終于通了,踩了好多坑。你不點個贊麼?
本文位址:http://www.cnblogs.com/savorboard/p/dotnetcore-docker.html 作者部落格:Savorboard 歡迎轉載,請在明顯位置給出出處及連結

繼續閱讀