iT邦幫忙

2017 iT 邦幫忙鐵人賽
DAY 27
0
DevOps

實作 ASP.NET Core 持續整合/交付系列 第 27

Docker 安裝與介紹

前言

終於進入最後一個主題:Docker。
Docker 是近幾年相當熱門的技術,但我卻到近一個月才開始學習與了解這項技術,本身觀念與實作方面尚未成熟,若有觀念錯誤或任何建議,真誠的希望各位先進指點。這套作業系統虛擬化軟體專案大大改變個人對於傳統伺服器、虛擬機器持續整合與自動化流程的想法。原先 Docker 並未規劃本系列文章之類,而想藉由這次鐵人賽邊學習邊撰寫,開賽前規劃約 5 篇講述這個主題,而至上星期為止,因為多補充了幾篇文章而減少至三篇。這三篇將會以安裝、指令操作、.NET Core 與 TeamCity為主。本系列實作與測時的環境為:

  1. Windows 10
  2. Docker V1.13.0-rc4-beta34(9562)

介紹

安裝

Step 1. 到 docker 官方網站 docker for window 網頁進行下載(我們下載beta版本)
http://ithelp.ithome.com.tw/upload/images/20161228/20091494KY3TPJtptc.png

Step 2. 點選兩下進行安裝,勾選 I accept the terms in the license agreement後,點選 Install
http://ithelp.ithome.com.tw/upload/images/20161228/20091494RNOUCwqQqB.png

Step 3.安裝中
http://ithelp.ithome.com.tw/upload/images/20161228/20091494moy7xToL5T.png

Step 4.安裝完成,點選 Finish
http://ithelp.ithome.com.tw/upload/images/20161228/20091494acH3HBGCFU.png

註1:請確認您電腦 BIOS有開啟虛擬化(virtualization,windows內稱模擬)
http://ithelp.ithome.com.tw/upload/images/20161228/20091494Ynxdf3FzVS.png

註2:請確認您電腦有安裝 Hyper-V
http://ithelp.ithome.com.tw/upload/images/20161228/20091494duJi8A3Vyw.png

Step 5.若安裝完成,右下角會有鯨魚的標誌,右鍵點選後選擇setting,即可看到目前docker運作狀態
http://ithelp.ithome.com.tw/upload/images/20161228/20091494MrmWFWv4Be.png

名詞解釋

  • Image 印像檔 : 不可讀寫,可以透過指令建立成為 Container,再進一步你想要的佈署或操作。
  • Container 容器 : 可開啟、執行程式、讀寫...等操作,可以透過指令建立 Image 提供其他人下載使用。
  • Repository 儲存庫 : 與 Git 類似,用於存放印象檔的地方。
  • Docker Hub : 與 GitHub 相似,用於存放與管理許多 Repository 地方。
  • Dockerfile : 定義指令。您可以透過自動化執行dockerfile內的指令,進而完成建立 image。
  • Compose : 定義多個容器執行與互動的工具。

'

指令使用

我們將簡單介紹一些指令的運用。

  • 您可以透過 docker version,確認 Client 與 Server 相關資訊
docker version 

http://ithelp.ithome.com.tw/upload/images/20161228/20091494rlnvHk1BQW.png
若您與本篇安裝一樣是docker beta,你可以切換 server os/arch
http://ithelp.ithome.com.tw/upload/images/20161228/20091494h5GOC21Tgd.png
http://ithelp.ithome.com.tw/upload/images/20161228/20091494QcPSZWWyK5.png

  • 您可以透過 docker pull 從docker hub 或其他管理網站(依據印象檔名稱)下載印象檔,您可以上docker hub網站上搜尋你要的印象檔,下方指令為下載 microsoft/dotnet 印象檔
docker pull microsoft/dotnet:latest

http://ithelp.ithome.com.tw/upload/images/20161229/20091494IsHtPIm9S2.png

  • 您可以透過 docker images 列出你目前本地所有的印象檔
docker images

http://ithelp.ithome.com.tw/upload/images/20161229/20091494MiOOJc8Hn9.png

  • 您可以透過 docker run 將你的印象檔建置成容器並與其互動(透過exit 離開容器)。
docker run -it microsoft/dotnet:latest
docker run --name container_name -it microsoft/dotnet:latest

--name container_name:可以指定容器名稱,方便後續指令操作,若沒有給系統會自動給(一組形容詞+人名)。
-it:可以與容器互動
http://ithelp.ithome.com.tw/upload/images/20161229/20091494NUY9FZy9YN.png

  • 若您想要建立一個 .Net Core Web App,你可以用下列指令先進入container
docker run -p 8000:80 -e "ASPNETCORE_URLS=http://+:80" -it --rm microsoft/dotnet

在使用我們在.NET Core 安裝與介紹的指令,建立 .Net Core Web App

mkdir app
cd app
dotnet new -t web
dotnet restore
dotnet run

http://ithelp.ithome.com.tw/upload/images/20161229/20091494SqoImxiTnE.png
啟動後直接在 host 開啟瀏覽器,輸入 http://localhost:8000
http://ithelp.ithome.com.tw/upload/images/20161229/2009149421gsheLsGe.png
http://ithelp.ithome.com.tw/upload/images/20161229/200914945b8l38lA17.png

  • 您可以透過 docker ps 與 docker ps -a 顯示目前正在運作的 container 與 運作結束的 container
docker ps 
docker ps -a

http://ithelp.ithome.com.tw/upload/images/20161229/20091494MvAdMxSoBR.png

  • 您可以透過 docker rm 移除 container (f02為 container id,不需要完整輸入)
docker rm f02

http://ithelp.ithome.com.tw/upload/images/20161229/20091494B6iQ3Q9VaK.png

  • 您可以透過 docker rmi 移除 image (f02為 image id,不需要完整輸入)
docker rmi f02

http://ithelp.ithome.com.tw/upload/images/20161229/20091494SBUL1TyMyi.png


上一篇:Skype Bot 與 TeamCity 整合 2 - TeamCity Notification
下一篇:Docker : aspnetcore image , Dockerfile 與 Docker hub
返回目錄


參考資料

docker hub:microsoft/dotnet

註:本系列文章將於2016 IT邦幫忙鐵人賽進行同時,一併發佈於個人blogger與dotblog。


上一篇
Skype Bot 與 TeamCity 整合 2 - TeamCity Notification
下一篇
Docker : aspnetcore image , Dockerfile 與 Docker hub
系列文
實作 ASP.NET Core 持續整合/交付30

尚未有邦友留言

立即登入留言