在前面文章中,介紹了 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 <p_w_picpath id></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 歡迎轉載,請在明顯位置給出出處及連結