2017/12/27

Windows上的Docker一瞥

摘要

本文概要敘述在Windows 10專業版上執行Docker軟體的注意事項。


本文

Docker容器是輕量化的虛擬技術。有別於虛擬機器(virtual machine)這種需要安裝guest OS的沙箱執行環境,Docker容器共用host OS而不需要安裝guest OS;Docker可謂輕量級的作業系統虛擬化的解決方案。Docker跟虛擬機器的比較可以參考這裡

本文參考這裡(Docker for Windows 10入門篇)進行Docker軟體的測試。

首先找一台符合Docker需求的Windows電腦。
接著開啟必要的Windows功能,如Hyper-V、和容器等。
下載Docker軟體安裝程式;本文使用stable版。
執行安裝程式。
一旦安裝完畢,在system tray可以見到Docker已經在運行了。運行中的Docker可以由Windows容器切換至Linux容器(Switch to Linux containers)。
運行中的Docker也可以由Linux容器切換至Windows容器(Switch to Windows containers)。
可以在命令提示字元下達這些Docker版本相關的查詢指令。
docker --version
docker-compose --version
docker-machine --version
docker ps
docker version

還可以在命令提示字元下達這些Docker版本相關的查詢指令。
docker info
接下來執行hello world範例程式;這裡運行的是64位元版之Windows的範例。
docker run hello-world
 
接下來執行Ubuntu Linux的bash程式;在bash下達ls指令,可以見到Linux的根檔案系統。
docker run -it ubuntu bash
再來下載Nano Server,並且下達指令檢查已下載的映像檔;Nano Server是微軟的Windows Server 2016伺服器作業系統中記憶體耗費最少(minimal-footprint)、且無圖形用戶介面(headless)的版本。
docker pull microsoft/nanoserver
docker images
執行剛剛下載完畢的Nano Server。
docker run -it microsoft/nanoserver cmd
進入Nano Server的context,亦即其命令提示字元。
在Nano Server的命令提示字元環境中,下達指令來建立檔案並輸出字串。
Powershell.exe Add-Content c:\helloworld.ps1 'Write-Host "Hello World"'
隨後離開Nano Server的context。
下達指令查詢曾被執行過的Docker容器。
docker ps -a
下達指令將曾修改(現已終止)的Docker容器變成映像檔。
docker commit 57a4f63a02c2 nanoserver
亦可下達指令讓指定容器執行程式後隨即終止該容器。
docker run --rm nanoserver powershell c:\helloworld.ps1
指定的映像檔亦可被刪除。
docker rmi nanoserver
已經終止的容器也可以被重啟(start)並連接(attach)。
docker start 57a4f63a02c2
docker attach 57a4f63a02c2

容器亦可被移除。
docker rm 57a4f63a02c2

參考文獻

https://docs.docker.com/docker-for-windows/install/
https://skychang.github.io/2017/01/06/Docker-Docker_for_Windows_10_First/



沒有留言:

張貼留言