SlideShare a Scribd company logo
1 of 58
Docker基礎
Docker For Windows
大綱
• Docker
• 容器概念
• 基本Docker容器操作
• Docker容器維運
• 製做Docker容器
• 總結
Docker歷史進程
2013
Docker工具
Docker Engine Docker Compose Docker Swarm
Docker Machine Docker Registry Kitematic
管理所有Docker相關操作 多容器定義與協作 跨主機多容器協作
Docker Engine的執行環境 存放容器映象檔的地方 提供Docker UI操作介面
Docker執行
Docker Daemon
Containers Images
RegistryDocker_Host
docker build
docker pull
docker run
Client
Docker工作
Docker架構
LXC
Docker
NamespacesCGroups
Linux Kernel
Layer FS
• Docker藉由包裝LXC提供友善的容器存取API
• Docker的印象檔技術大幅仰賴Layer FS來達成
• 實際上,Linux本身核心就具有容器的相關功能
LXC(Linux Container)
• LXC利用作業系統的內核(Kernel)所提供的功能,來達成容器化。
• 容器
Containers Containers Containers
Management Interface
Namespaces cgroups SELinux
Drivers
Hardware
虛擬化
os
Hardware
os
os
App
App
App
Hardware
虛擬化
Before After
os
App
Hardware
Hardware
os
App
Hardware
App
Hardware
os
App
Hardware
Hardware
• 使用虛擬化之前,需要在實體機器上進行
環境建置;很容易造成環境混亂與難以維護
• 實體機器昂貴,但應用程式不一定會使用到
100%所有的資源
• 虛擬化讓實體機器的資源利用率被大幅度
的提高
虛擬機與容器的差別
App
Bins/Libs Bins/Libs
Guest OS
App
VM
App
Bins/Libs Bins/Libs
Guest OS
App
VM
Hypervisor
Host OS
Server
Container Engine
App
Bins/Libs
Host OS
Server
App
Bins/Libs
App
Bins/Libs
LXC LXC LXC
虛擬機 容器
使用:chroot/cgroup/namespaces/
SELinux/AppArmor/netfilter 來達成
隔離效果
容器的特性
輕量&需要較小的資源
程序&資源完全獨立
快速&易於部署
Container Engine
App
Bins/Libs
Host OS
Server
App
Bins/Libs
App
Bins/Libs
LXC LXC LXC
容器即沙箱
App
App
App
App
App
App
未限制
存取
沙箱
App App
未限制
存取
無沙箱 有沙箱
在沙箱中,App是處於絕對隔離的狀態
Layer FS
• 印象檔內部結構是採用Layer式,
當它被運行成容器後,上面會多一層
可編輯層
• 編輯層的任何修改都不會影響到原本
印象檔內的檔案層
• 若要套用編輯層的異動,需要額外以Docker
命令套用,並且生成一個新的印象檔
Docker for windows 架構
Docker Engine
Hyper-V: VM
實體機器
• 實際上是跑在Hyper-V的VM上
• 目前Stable的版本僅支援Linux-based的
作業系統
• Beta可以支援Windows容器,但是尚不穩
定
Docker容器
那有多少家!? 容器技術是種低維
度技術,Docker是較
早商業化的公司!
容器技術不止只有
Docker一家歐!
基本容器指令
Running Stop
Pause
kill, stop
start
wait
logs
attach
^p, ^q inspect
ps
rm
exec
Container
images
rmi
tag
history
commit
create
run
info
inspect
events
Engine
Images
Host
cp
copy
port
容器指令
學習Docker該怎麼開始
呢?
• 學習上可以考慮從印象檔管理著手
• 瞭解印象檔之後,接著再進行容器管理
• 最終再學習自己建立所需要的印象檔
從Docker Hub取得印象檔
指令: docker pull [印象檔名稱]:[標籤]
功用: 從Docker Hub取得指定版本的印象檔
目的: 很多時候,許多基礎的印象檔已經有社群協助提供,並且放置在Docker Hub上。
除非太過客製化,否則絕大部份都可以在Docker Hub上取得所需要的基礎
印象檔。
備註: 若不指定版本,則Docker會自動預設以latest版本為抓取的對象。
(docker pull hello-world:latest)
列舉本機印象檔
指令: docker images
功用: 列舉出當前本機擁有的印象檔
目的: 開發過程中,經常需要自行建構or從印象檔倉儲取得印象檔到本機,
為了要能夠確認印象檔是否已存在本機,會使用這個指令
標記印象檔
指令: docker tag [印象檔名稱]:[標籤] [印象檔]:[新標籤]
功用: 為指定印象檔添加一個標籤
目的: 不常使用到這個指令。
備註: 要注意使用了這個指令之後,僅是一個類似淺複製的行為,因此,原本的印象檔
與新標籤的印象檔,兩者的內容是一致的。
關鍵點在於Image ID
觀察印象檔歷史紀錄
指令: docker history [印象檔名稱]:[標籤]
功用: 觀察印象檔異動紀錄
目的: 觀察印象檔異動紀錄,初步瞭解印象檔的內容。
備註: 某些印象檔太久沒有被使用,已經忘了異動的內容,這時候可以使用這個
指令來觀察。
從印象檔到容器
印象檔似乎是一種雛型?
• 印象檔是基於Linux核心所提供的Layer FS
所打造的
• 每個印象檔都可以被Docker運行成多個容器
運行Docker容器
指令: docker run [參數…] [印象檔名稱]:[標籤] [命令]
功用: 啟動指定印象檔為容器
目的: 開發過程中,經常需要自行建構or從印象檔倉儲取得印象檔到本機,
為了要能夠確認印象檔是否已存在本機,會使用這個指令
列舉容器開發的埠
指令: docker port [容器名稱]
功用: 觀察容器開放的埠
目的: 有的時候需要確認容器是否有正確地開放適當的埠號(協定)給外部
容器的埠
Docker for Windows是將
Docker運行在Hyper-V的
虛擬機,這樣主機要怎麼
連線到容器呢?
• 在啟動Docker時,可以指定開放的埠號
• 容器所開放的埠號,主機可以以localhost:[埠號]
連線
• 容器與容器互連時,亦是需要開放埠
列舉本機容器
指令: docker ps
功用: 列舉出當前本機的容器
目的: 開發過程中,需要確認容器執行的情況;在本例子中,本機目前有一個容器正在執行中。
每一筆列舉的資料有幾個欄位需要特別關注: Status, Ports;這兩個欄位指示了容器的
執行狀態,以及開放給主機(Host)的埠號。
若啟動容器時,沒有指定容器名稱,則Docker會自行給予一個不重覆的隨機名稱,這個
時候就會需要使用docker ps指令來查看容器被賦予的名稱。
備註: 很多時候建議加上參數a(註: 完整指令為docker ps –a);這是因為docker ps預設僅會顯
示還處於運行狀態的容器,但很多時候因為組態不正確導致容器起動失敗,這種情境
就會需要加上參數a才能看到。
查看容器組態資訊
指令: docker inspect [容器名稱]
功用: 查看指定容器的組態資訊
目的: 開發過程中,需要確認容器的組態資訊,特別是關於網路的部份。
備註: docker inspect指令本身會列印出容器所有的組態資訊,但很多時候只需要某部份
的資料,因此,可以再加上format參數來過濾資訊。
要注意Format路徑是有大小寫之分,且開頭有個點(dot)
查看容器執行過程的紀錄
指令: docker logs [容器名稱]
功用: 查看指定容器的執行紀錄
目的: 當需要偵錯容器時,會需要使用這個指令來查看紀錄。
容器的偵錯
什麼情境下會需要偵錯
容器?
• 由於Docker有設定保護機制;當容器的資源
超過預定的數量,Docker會自動停用該容器
• 在遇到非預期的容器行為時,使用inspect/logs
等指令來協助偵錯
連線到容器
指令: docker exec [參數…] [容器名稱] [命令]
功用: 執行某個正在運行中的容器的命令
目的: 當需要進到容器中進行細部的控制時,會使用這個指令連線到容器中。
參數ti,其實是兩個參數(-t, -i)的結合,其目的在於將容器的輸出資訊顯
示到視窗中。
複製檔案到容器中
指令: docker cp [本機檔案路徑] [容器名稱]:[容器檔案目標路徑]
docker cp [容器名稱]:[容器檔案路徑] [本機檔案目標路徑]
功用:複製本機/容器的檔案到容器/本機的指定位址
目的: 當需要複製檔案到容器內部,很需要此指令。此指令被大量
應用在應用程式部署。
提交印象檔新版本
指令: docker commit [參數….] [容器ID] [印象檔名稱]:[標籤]
功用: 將容器異動後的內容,提交成為一個新的印象檔
目的: 開發過程中,會需要對基礎印象檔進行一些微調(註:為了效能),為了避免重複的執行
相同的動作。
印象檔版本管理
為什麼需要對印象檔進行
版本管理?
• 印象檔經常會需要隨著需求和團隊異動
• 若異動沒有任何紀錄,或是要每個成員重複性
地操作印象檔內容變更,這是極無效率的
• 在Docker的版本管理概念上,可以借用在Git
上所學習的觀念
暫停、停止運行中的容器
kill, stop
start
Stop
Pause
Running
指令: docker [start/stop/pause/unpause] [容器名稱or ID]
功用: 控制容器的運行狀態
目的: 調整容器的運行狀態可以模擬各種容器運行的情境。
備註: 要留意狀態機遞移的規則。
移除容器
指令: docker rm [參數…] [容器名稱]
功用: 刪除非運行中的容器
目的: 當不需要容器的時候,可以直接刪除它。
備註: 只有非運行中的容器可以刪除,如果硬是要刪除運行中的容器。需加上參數f
(docker rm –f [容器名稱])
下一步?
基本的印象檔、容器的
操作指令都會了,再來呢
?
• 瞭解基本的印象檔和容器的操作之後,
之後就是維運的部份
• 可以學習如何將容器或是印象檔移轉/備份
到其它主機
• 建立一個私有的印象檔倉儲是CI/CD的起手式
Docker容器維運
Running Stop
Pause
kill, stop
start
wait
logs
attach
^p, ^q inspect
ps
rm
exec
Container
images
rmi
tag
history
commit
create
run
info
inspect
events
EngineImages
Host
cp
copy
Tar files
filesystem
Images(s)
Registry
search
login
logout
import
load
save
pull
push
export
port
匯出印象檔
指令: docker save [印象檔…] > [檔案路徑]
功用: 將一到多個印象檔匯出成一個壓縮檔
目的: 備份移轉印象檔到其它機器上。
匯入印象檔
指令: docker load < [檔案路徑]
功用: 將匯出的容器檔案,匯入到某個主機上成為一或多個新的印象檔
目的: 備份移轉容器內容到其它機器上。
Before After
印象檔匯入/匯出
實際的使用案例是什麼?
• 開發時期,會依需求使用到第三方中介軟體,
這時候會異動到印象檔
• 為了在團隊中同步印象檔的異動,會將印象檔匯出
後放到安全的網路位置,再由其它團隊成員取得
後匯入到自己的本機中使用
匯出容器內容
指令: docker export [容器名稱] > [檔案路徑]
功用: 將容器中的當前內容匯出成為一個壓縮檔案
目的: 備份移轉容器內容到其它機器上。
匯入容器內容
指令: docker import [檔案路徑]/[Url] [印象檔名稱]:[標籤]
功用: 將匯出的容器檔案,匯入到某個主機上成為一個新的印象檔
目的: 備份移轉容器內容到其它機器上。
同步團隊的印象檔/容器
有比較有效率的方法嗎?
• 採用匯入/匯出的方式固然方便,但是這不利於
開發的自動化
• 某些高度客製化,或是高敏感度的印象檔,會希望
有一個集中的地方可以管理
• 私有印象檔倉儲就是一個很好的方法
架設私有倉儲
指令: docker run –d –p 5000:5000 –v [本機路徑]:[容器路徑] registry
功用: 架設一個私人的印象檔倉儲
目的: 團隊共享印象檔,為CI/CD奠定基礎。
推送印象檔到私有倉儲
指令:
(步驟1) docker tag [私有倉儲Url]/[印象檔名稱]:[標籤]
(步驟2) docker push [私有倉儲Url]/[印象檔名稱]:[標籤]
功用: 將本機的印象檔推送到私有倉儲間共享
目的: 讓印象檔在團隊。
從私有倉儲拉取印象檔
指令: docker pull[私有倉儲Url]/[印象檔名稱]:[標籤]
功用: 將本機的印象檔推送到私有倉儲間共享
目的: 讓印象檔在團隊。
製做Docker容器
Running Stop
Pause
kill, stop
start
wait
logs
attach
^p, ^q inspect
ps
rm
exec
Container
images
rmi
tag
history
commit
create
run
info
inspect
events
EngineImages
Host
cp
copy
Tar files
filesystem
Images(s)
Registry
search
login
logout
import
load
save
pull
push
export
port
Dockerfile
build
客制化印象檔
若要製做一個很複雜的印
象檔,該怎麼做呢?
• 使用指令連線進入到某個Linux的基礎容器
進行環境的處理是一種較沒有效率的方式,
且無法被管理
• Dockerfile就是一個很好的解決方案
使用Dockerfile來創建印象檔
• Dockerfile是一個文本格式的組態文件
• 使用者可以使用Dockerfile快速創建自定義的印象檔
指令(1)-FROM, MAINTAINER, RUN
指令: FROM
格式: FROM <image> 或 FROM <image>:<tag>
備註: Dockerfile的第一個指令必須為FROM;並且,如果在同一個Dockerfile中創建多的印象檔時,
可以使用多個FROM指令(註:每個印象檔一次)。
指令: MAINTAINER
格式: MAINTAINER <name>
備註: 說明此Dockerfile的維護者相關資訊。
指令: RUN
格式: RUN <command> 或 RUN [‘executeable’,’param1’,’param2’]
備註: 第一種格式的命令較為單純,而第二種格式與第一種執行效果相同。
指令(2)-CMD, EXPOSE, ENV
指令: CMD
格式: CMD [‘executable’,’param1’,’param2’]
CMD command param1 param2
CMD [‘param1’,’param2’]
備註: 第一種是較推薦的方式;
第二種則是在/bin/sh中執行,提供需要互動的應用。
第三種是提供給ENTRYPOINT的預設參數
指令: EXPOSE
格式: EXPOSE <port> [<port> …]
備註: 開放一到多個埠號。
指令: ENV
格式: ENV <key> <value>
備註: 指定容器的環境變數值。
指令(3)-ADD, COPY, ENTRYPOINT
指令: ADD
格式: ADD <src> <dest>
備註: 複製指定的<src>到容器中的<dest>,其中<src>可以是Dockerfile所在目錄的一個相對
路徑(文件或是目錄);也可以是一個Url;還可以是一個tar檔案(自動解壓縮為目錄)
指令: COPY
格式: COPY <src> <dest>
備註: 複製本地主機的<src>(為Dockerfile所在目錄的相對路徑,檔案或目錄)為容器中的<dest>。
目標路徑不存在時,會自動創建。(相較於ADD,推薦使用COPY)
指令: ENTRYPOINT
格式: ENTRYPOINT [‘executable’,’param1’,’param2’]
ENTRYPOINT command param1 param2
備註: 組態容器啟動後所執行的命令,並且無法被docker run所指定的命令所覆蓋。
每個Dockerfile只能有一個ENTRYPOINT,當指定多個時,只有最後一個生效。
指令(4)-VOLUME, USER
指令: VOLUME
格式: VOLUME [‘/data’]
備註: 創建一個可以從本地主機或其它容器掛載的掛載點,一般用來存放資料庫和需要維持
的資料等。
指令: USER
格式: USER daemon
備註: 指定運行容器的用戶名或UID,後續的RUN也會使用指定帳號。
當服務不需要管理員權限時,可以透過此命令指定執行的帳號。並且可以在之前創建
所需要的用戶,例如: RUN groupdd –r postgres && useradd –r –g postgres。要臨時獲取
管理員權限可以使用gosu,而不推薦sudo。
指令(5)-WORKDIR, ONBUILD
指令: WORKDIR
格式: WORKDIR /path/to/workdir
備註: 為後續的RUN、CMD、ENTRYPOINT指令組態工作目錄。
可以使用多個WORKDIR指令,後續命令如果參數是相對路徑,則會基於之前命令指定
的路徑。
(例) WORKDIR /a
WORKDIR b
WORKDIR c
則最終路徑為 /a/b/c。
指令: ONBUILD
格式: ONBUILD [INSTRUCTION]
備註: 組態當所創建的印象檔作為其它新創建印象檔的基礎印象檔時,所執行的操作指令。
例如,Dockerfile使用如下的內容創建的印象檔image-A
ONBUILD ADD ./app/src
ONBUILD RUN /usr/local/bin/python-build –dir /app/src
當新的Dockerfile使用了FROM image-A指定基礎印象檔時,會自動執行ONBUILD指令的
內容。
依Dockerfile創建印象檔
…略…
指令: docker build –t [印象檔名稱]:[標籤] [Dockerfile路徑]
功用: 創建印象檔
目的: 將瑣碎的步驟以Dockerfile描述,以便更方便的創建
容器印象檔。
備註: 創建容器時可以使用.dockerignore檔案指明,那些
檔案不要被載入到處理緩充區中
完成
Dockerfile設定變數
• 使用ENV指令宣告一個變數,並且給予預設值
• 宣告完後的其它檔案部份都可以使用$變數名, 或是${變數名}
來使用這個變數
• $本身是特殊符號,在某些情境下需要使用跳脫符號()
• 某些時候需要有替代值時,可以參考特殊的取值格式如下表格所示
格式 描述
${變數名:-替代值} 若變數沒有被設定值,則取用替代值;否則為變數值
${變數名:+替代值} 若變數有被設定值,則取用替代值;否則為空字串
變數取值的格式
總結
• Docker的內部結構是Layer FS
• Docker就是由: Image + Container + Registry所組成
• Docker的印象檔版本概念與Git相同
• Docker的容器之間是絕對隔離
• Docker Engine負責管理所有容器的運行,並在容器異常時,直接停止
該容器
• Dockerfile是建造印象檔的好幫手
下回預告:Docker與CI/CD
友善鏈結

More Related Content

What's hot

Docker Compose
Docker ComposeDocker Compose
Docker ComposeMiles Chou
 
Docker home ted
Docker home tedDocker home ted
Docker home tedLayne Peng
 
DAE 新变化介绍
DAE 新变化介绍DAE 新变化介绍
DAE 新变化介绍Tianwei Liu
 
Docker一期培训
Docker一期培训Docker一期培训
Docker一期培训青帅 常
 
Docker tutorial
Docker tutorialDocker tutorial
Docker tutorialazole Lai
 
Docker open stack
Docker open stackDocker open stack
Docker open stackGuangya Liu
 
Docker集群管理 工具篇
Docker集群管理 工具篇Docker集群管理 工具篇
Docker集群管理 工具篇Guangya Liu
 
Large-Scale Cluster Mangement & Kubernetes Under The Hood
Large-Scale Cluster Mangement & Kubernetes Under The HoodLarge-Scale Cluster Mangement & Kubernetes Under The Hood
Large-Scale Cluster Mangement & Kubernetes Under The HoodLei (Harry) Zhang
 
Azure Container Service 使用 DC / OS 管理 docker 容器
Azure Container Service 使用 DC / OS 管理 docker 容器Azure Container Service 使用 DC / OS 管理 docker 容器
Azure Container Service 使用 DC / OS 管理 docker 容器Ch Rick
 
Docker - 30秒生出100台伺服器
Docker - 30秒生出100台伺服器Docker - 30秒生出100台伺服器
Docker - 30秒生出100台伺服器升煌 黃
 
認識那條鯨魚 Docker 初探
認識那條鯨魚   Docker 初探認識那條鯨魚   Docker 初探
認識那條鯨魚 Docker 初探仲昀 王
 
Deployment with Capistrano
Deployment with CapistranoDeployment with Capistrano
Deployment with Capistrano旭 張
 
20150604 docker 新手入門
20150604 docker 新手入門20150604 docker 新手入門
20150604 docker 新手入門azole Lai
 
cec-hello-docker
cec-hello-dockercec-hello-docker
cec-hello-dockerBruce Huang
 
Docker 淺入淺出
Docker 淺入淺出Docker 淺入淺出
Docker 淺入淺出Miles Chou
 
AWS EC2 for beginner
AWS EC2 for beginnerAWS EC2 for beginner
AWS EC2 for beginnerazole Lai
 
Openstack neutron 原理详解
Openstack neutron 原理详解Openstack neutron 原理详解
Openstack neutron 原理详解Yong Luo
 
快速上手 Windows Containers 容器技術 (Docker Taipei)
快速上手 Windows Containers 容器技術 (Docker Taipei)快速上手 Windows Containers 容器技術 (Docker Taipei)
快速上手 Windows Containers 容器技術 (Docker Taipei)Will Huang
 
企業導入微服務實戰 - updated
企業導入微服務實戰 - updated企業導入微服務實戰 - updated
企業導入微服務實戰 - updatedPaul Chao
 

What's hot (20)

Docker Compose
Docker ComposeDocker Compose
Docker Compose
 
Docker home ted
Docker home tedDocker home ted
Docker home ted
 
DAE 新变化介绍
DAE 新变化介绍DAE 新变化介绍
DAE 新变化介绍
 
Docker一期培训
Docker一期培训Docker一期培训
Docker一期培训
 
Docker tutorial
Docker tutorialDocker tutorial
Docker tutorial
 
Docker open stack
Docker open stackDocker open stack
Docker open stack
 
Docker集群管理 工具篇
Docker集群管理 工具篇Docker集群管理 工具篇
Docker集群管理 工具篇
 
Large-Scale Cluster Mangement & Kubernetes Under The Hood
Large-Scale Cluster Mangement & Kubernetes Under The HoodLarge-Scale Cluster Mangement & Kubernetes Under The Hood
Large-Scale Cluster Mangement & Kubernetes Under The Hood
 
Azure Container Service 使用 DC / OS 管理 docker 容器
Azure Container Service 使用 DC / OS 管理 docker 容器Azure Container Service 使用 DC / OS 管理 docker 容器
Azure Container Service 使用 DC / OS 管理 docker 容器
 
Docker Build
Docker BuildDocker Build
Docker Build
 
Docker - 30秒生出100台伺服器
Docker - 30秒生出100台伺服器Docker - 30秒生出100台伺服器
Docker - 30秒生出100台伺服器
 
認識那條鯨魚 Docker 初探
認識那條鯨魚   Docker 初探認識那條鯨魚   Docker 初探
認識那條鯨魚 Docker 初探
 
Deployment with Capistrano
Deployment with CapistranoDeployment with Capistrano
Deployment with Capistrano
 
20150604 docker 新手入門
20150604 docker 新手入門20150604 docker 新手入門
20150604 docker 新手入門
 
cec-hello-docker
cec-hello-dockercec-hello-docker
cec-hello-docker
 
Docker 淺入淺出
Docker 淺入淺出Docker 淺入淺出
Docker 淺入淺出
 
AWS EC2 for beginner
AWS EC2 for beginnerAWS EC2 for beginner
AWS EC2 for beginner
 
Openstack neutron 原理详解
Openstack neutron 原理详解Openstack neutron 原理详解
Openstack neutron 原理详解
 
快速上手 Windows Containers 容器技術 (Docker Taipei)
快速上手 Windows Containers 容器技術 (Docker Taipei)快速上手 Windows Containers 容器技術 (Docker Taipei)
快速上手 Windows Containers 容器技術 (Docker Taipei)
 
企業導入微服務實戰 - updated
企業導入微服務實戰 - updated企業導入微服務實戰 - updated
企業導入微服務實戰 - updated
 

Viewers also liked

DDD架構設計
DDD架構設計DDD架構設計
DDD架構設計國昭 張
 
DDD系統分析
DDD系統分析DDD系統分析
DDD系統分析國昭 張
 
Redux+react js
Redux+react jsRedux+react js
Redux+react js國昭 張
 
Building web apps with vaadin 8
Building web apps with vaadin 8Building web apps with vaadin 8
Building web apps with vaadin 8Marcus Hellberg
 
Demystifying progressive web apps
Demystifying progressive web appsDemystifying progressive web apps
Demystifying progressive web appsMarcus Hellberg
 
Vaadin 8 with Spring Frameworks AutoConfiguration
Vaadin 8 with Spring Frameworks AutoConfigurationVaadin 8 with Spring Frameworks AutoConfiguration
Vaadin 8 with Spring Frameworks AutoConfigurationPeter Lehto
 
NoSQL-MongoDB介紹
NoSQL-MongoDB介紹NoSQL-MongoDB介紹
NoSQL-MongoDB介紹國昭 張
 
Docker 入門 Introduction to Docker
Docker 入門  Introduction to DockerDocker 入門  Introduction to Docker
Docker 入門 Introduction to DockerGenchi Lu
 
More tips and tricks for running containers like a pro - Rancher Online MEetu...
More tips and tricks for running containers like a pro - Rancher Online MEetu...More tips and tricks for running containers like a pro - Rancher Online MEetu...
More tips and tricks for running containers like a pro - Rancher Online MEetu...Shannon Williams
 
Load Balancing Apps in Docker Swarm with NGINX
Load Balancing Apps in Docker Swarm with NGINXLoad Balancing Apps in Docker Swarm with NGINX
Load Balancing Apps in Docker Swarm with NGINXNGINX, Inc.
 
Vaadin 8 with Spring Framework
Vaadin 8 with Spring FrameworkVaadin 8 with Spring Framework
Vaadin 8 with Spring FrameworkPeter Lehto
 
RancherのWindowsサポートと事始め
RancherのWindowsサポートと事始めRancherのWindowsサポートと事始め
RancherのWindowsサポートと事始めcyberblack28 Ichikawa
 
Vaadin 8 - Data Binding with Binder
Vaadin 8 - Data Binding with BinderVaadin 8 - Data Binding with Binder
Vaadin 8 - Data Binding with BinderPeter Lehto
 
架構設計-資料存取的選擇
架構設計-資料存取的選擇架構設計-資料存取的選擇
架構設計-資料存取的選擇國昭 張
 

Viewers also liked (18)

DDD架構設計
DDD架構設計DDD架構設計
DDD架構設計
 
Vue
VueVue
Vue
 
DDD系統分析
DDD系統分析DDD系統分析
DDD系統分析
 
DDD引導
DDD引導DDD引導
DDD引導
 
Redux+react js
Redux+react jsRedux+react js
Redux+react js
 
前端測試
前端測試前端測試
前端測試
 
Building web apps with vaadin 8
Building web apps with vaadin 8Building web apps with vaadin 8
Building web apps with vaadin 8
 
Demystifying progressive web apps
Demystifying progressive web appsDemystifying progressive web apps
Demystifying progressive web apps
 
Vaadin 8 with Spring Frameworks AutoConfiguration
Vaadin 8 with Spring Frameworks AutoConfigurationVaadin 8 with Spring Frameworks AutoConfiguration
Vaadin 8 with Spring Frameworks AutoConfiguration
 
NoSQL-MongoDB介紹
NoSQL-MongoDB介紹NoSQL-MongoDB介紹
NoSQL-MongoDB介紹
 
Docker 入門 Introduction to Docker
Docker 入門  Introduction to DockerDocker 入門  Introduction to Docker
Docker 入門 Introduction to Docker
 
More tips and tricks for running containers like a pro - Rancher Online MEetu...
More tips and tricks for running containers like a pro - Rancher Online MEetu...More tips and tricks for running containers like a pro - Rancher Online MEetu...
More tips and tricks for running containers like a pro - Rancher Online MEetu...
 
Load Balancing Apps in Docker Swarm with NGINX
Load Balancing Apps in Docker Swarm with NGINXLoad Balancing Apps in Docker Swarm with NGINX
Load Balancing Apps in Docker Swarm with NGINX
 
2017-03-11 01 Игорь Родионов. Docker swarm vs Kubernetes
2017-03-11 01 Игорь Родионов. Docker swarm vs Kubernetes2017-03-11 01 Игорь Родионов. Docker swarm vs Kubernetes
2017-03-11 01 Игорь Родионов. Docker swarm vs Kubernetes
 
Vaadin 8 with Spring Framework
Vaadin 8 with Spring FrameworkVaadin 8 with Spring Framework
Vaadin 8 with Spring Framework
 
RancherのWindowsサポートと事始め
RancherのWindowsサポートと事始めRancherのWindowsサポートと事始め
RancherのWindowsサポートと事始め
 
Vaadin 8 - Data Binding with Binder
Vaadin 8 - Data Binding with BinderVaadin 8 - Data Binding with Binder
Vaadin 8 - Data Binding with Binder
 
架構設計-資料存取的選擇
架構設計-資料存取的選擇架構設計-資料存取的選擇
架構設計-資料存取的選擇
 

Similar to Docker基礎

開發人員不可不知的 Windows Container 容器技術預覽
開發人員不可不知的 Windows Container 容器技術預覽開發人員不可不知的 Windows Container 容器技術預覽
開發人員不可不知的 Windows Container 容器技術預覽Will Huang
 
docker intro
docker introdocker intro
docker introkoji lin
 
Docker容器微服務 x WorkShop
Docker容器微服務 x WorkShopDocker容器微服務 x WorkShop
Docker容器微服務 x WorkShopPhilip Zheng
 
Docker
DockerDocker
DockerNCUDSC
 
桃園市教育局Docker技術入門與實作
桃園市教育局Docker技術入門與實作桃園市教育局Docker技術入門與實作
桃園市教育局Docker技術入門與實作Philip Zheng
 
企業導入容器經驗分享與開源技能培養
企業導入容器經驗分享與開源技能培養企業導入容器經驗分享與開源技能培養
企業導入容器經驗分享與開源技能培養Philip Zheng
 
Windows 與 Azure 的容器旅程 @ Ignite Mini 2016
Windows 與 Azure 的容器旅程 @ Ignite Mini 2016Windows 與 Azure 的容器旅程 @ Ignite Mini 2016
Windows 與 Azure 的容器旅程 @ Ignite Mini 2016Jeff Chu
 
Docker 最佳实践
Docker 最佳实践Docker 最佳实践
Docker 最佳实践YuLing Liu
 
Rancher: 建立你的牧場艦隊
Rancher: 建立你的牧場艦隊Rancher: 建立你的牧場艦隊
Rancher: 建立你的牧場艦隊Miles Chou
 
讓軟體開發與應用更自由 - 使用 Docker 技術
讓軟體開發與應用更自由 - 使用 Docker 技術讓軟體開發與應用更自由 - 使用 Docker 技術
讓軟體開發與應用更自由 - 使用 Docker 技術Yu Lung Shao
 
Docker workshop
Docker workshopDocker workshop
Docker workshopWei Tung
 
美团点评技术沙龙14美团云-Docker平台
美团点评技术沙龙14美团云-Docker平台美团点评技术沙龙14美团云-Docker平台
美团点评技术沙龙14美团云-Docker平台美团点评技术团队
 
Dev-Ops与Docker的最佳实践 QCon2016 北京站演讲
Dev-Ops与Docker的最佳实践 QCon2016 北京站演讲Dev-Ops与Docker的最佳实践 QCon2016 北京站演讲
Dev-Ops与Docker的最佳实践 QCon2016 北京站演讲ChinaNetCloud
 
Docker In-Depth
Docker In-DepthDocker In-Depth
Docker In-DepthDavid Hsu
 
Azure Container Registry(preview)x Web App On Linux(preview)
Azure Container Registry(preview)x Web App On Linux(preview)Azure Container Registry(preview)x Web App On Linux(preview)
Azure Container Registry(preview)x Web App On Linux(preview)Ch Rick
 
Docker 基礎介紹與實戰
Docker 基礎介紹與實戰Docker 基礎介紹與實戰
Docker 基礎介紹與實戰Bo-Yi Wu
 
Weic2015 docker
Weic2015 dockerWeic2015 docker
Weic2015 dockerRay Lin
 
Gops2016 云端基于Docker的微服务与持续交付实践
Gops2016 云端基于Docker的微服务与持续交付实践Gops2016 云端基于Docker的微服务与持续交付实践
Gops2016 云端基于Docker的微服务与持续交付实践Li Yi
 

Similar to Docker基礎 (20)

開發人員不可不知的 Windows Container 容器技術預覽
開發人員不可不知的 Windows Container 容器技術預覽開發人員不可不知的 Windows Container 容器技術預覽
開發人員不可不知的 Windows Container 容器技術預覽
 
Docker 101
Docker 101Docker 101
Docker 101
 
docker intro
docker introdocker intro
docker intro
 
Docker容器微服務 x WorkShop
Docker容器微服務 x WorkShopDocker容器微服務 x WorkShop
Docker容器微服務 x WorkShop
 
Docker
DockerDocker
Docker
 
桃園市教育局Docker技術入門與實作
桃園市教育局Docker技術入門與實作桃園市教育局Docker技術入門與實作
桃園市教育局Docker技術入門與實作
 
企業導入容器經驗分享與開源技能培養
企業導入容器經驗分享與開源技能培養企業導入容器經驗分享與開源技能培養
企業導入容器經驗分享與開源技能培養
 
Windows 與 Azure 的容器旅程 @ Ignite Mini 2016
Windows 與 Azure 的容器旅程 @ Ignite Mini 2016Windows 與 Azure 的容器旅程 @ Ignite Mini 2016
Windows 與 Azure 的容器旅程 @ Ignite Mini 2016
 
Docker 最佳实践
Docker 最佳实践Docker 最佳实践
Docker 最佳实践
 
Rancher: 建立你的牧場艦隊
Rancher: 建立你的牧場艦隊Rancher: 建立你的牧場艦隊
Rancher: 建立你的牧場艦隊
 
讓軟體開發與應用更自由 - 使用 Docker 技術
讓軟體開發與應用更自由 - 使用 Docker 技術讓軟體開發與應用更自由 - 使用 Docker 技術
讓軟體開發與應用更自由 - 使用 Docker 技術
 
Docker workshop
Docker workshopDocker workshop
Docker workshop
 
美团点评技术沙龙14美团云-Docker平台
美团点评技术沙龙14美团云-Docker平台美团点评技术沙龙14美团云-Docker平台
美团点评技术沙龙14美团云-Docker平台
 
Dev-Ops与Docker的最佳实践 QCon2016 北京站演讲
Dev-Ops与Docker的最佳实践 QCon2016 北京站演讲Dev-Ops与Docker的最佳实践 QCon2016 北京站演讲
Dev-Ops与Docker的最佳实践 QCon2016 北京站演讲
 
Docker In-Depth
Docker In-DepthDocker In-Depth
Docker In-Depth
 
Azure Container Registry(preview)x Web App On Linux(preview)
Azure Container Registry(preview)x Web App On Linux(preview)Azure Container Registry(preview)x Web App On Linux(preview)
Azure Container Registry(preview)x Web App On Linux(preview)
 
Docker 基礎介紹與實戰
Docker 基礎介紹與實戰Docker 基礎介紹與實戰
Docker 基礎介紹與實戰
 
Docker基礎
Docker基礎Docker基礎
Docker基礎
 
Weic2015 docker
Weic2015 dockerWeic2015 docker
Weic2015 docker
 
Gops2016 云端基于Docker的微服务与持续交付实践
Gops2016 云端基于Docker的微服务与持续交付实践Gops2016 云端基于Docker的微服务与持续交付实践
Gops2016 云端基于Docker的微服务与持续交付实践
 

More from 國昭 張

8th ddd taiwan study group bounded context integration
8th ddd taiwan study group  bounded context integration8th ddd taiwan study group  bounded context integration
8th ddd taiwan study group bounded context integration國昭 張
 
Ddd(meetup 2) ddd with clean architecture
Ddd(meetup 2) ddd with clean architectureDdd(meetup 2) ddd with clean architecture
Ddd(meetup 2) ddd with clean architecture國昭 張
 
20190126 ddd-meetup1
20190126 ddd-meetup120190126 ddd-meetup1
20190126 ddd-meetup1國昭 張
 
事件風暴-設計衝刺
事件風暴-設計衝刺事件風暴-設計衝刺
事件風暴-設計衝刺國昭 張
 
事件風暴-領域建模
事件風暴-領域建模事件風暴-領域建模
事件風暴-領域建模國昭 張
 
Scrum essential
Scrum essentialScrum essential
Scrum essential國昭 張
 
Asp.net core v1.0
Asp.net core v1.0Asp.net core v1.0
Asp.net core v1.0國昭 張
 
例外處理與單元測試
例外處理與單元測試例外處理與單元測試
例外處理與單元測試國昭 張
 
ASP.Net WebAPI經驗分享
ASP.Net WebAPI經驗分享ASP.Net WebAPI經驗分享
ASP.Net WebAPI經驗分享國昭 張
 
ASP.Net MVC Framework
ASP.Net MVC FrameworkASP.Net MVC Framework
ASP.Net MVC Framework國昭 張
 
Team Foundation Server
Team Foundation ServerTeam Foundation Server
Team Foundation Server國昭 張
 
SQL Server效能調校
SQL Server效能調校SQL Server效能調校
SQL Server效能調校國昭 張
 
深入淺出Node.JS
深入淺出Node.JS深入淺出Node.JS
深入淺出Node.JS國昭 張
 
Entity Framework實戰
Entity Framework實戰Entity Framework實戰
Entity Framework實戰國昭 張
 
C#版本3~5的新特性
C#版本3~5的新特性C#版本3~5的新特性
C#版本3~5的新特性國昭 張
 

More from 國昭 張 (19)

8th ddd taiwan study group bounded context integration
8th ddd taiwan study group  bounded context integration8th ddd taiwan study group  bounded context integration
8th ddd taiwan study group bounded context integration
 
Ddd(meetup 2) ddd with clean architecture
Ddd(meetup 2) ddd with clean architectureDdd(meetup 2) ddd with clean architecture
Ddd(meetup 2) ddd with clean architecture
 
20190126 ddd-meetup1
20190126 ddd-meetup120190126 ddd-meetup1
20190126 ddd-meetup1
 
事件風暴-設計衝刺
事件風暴-設計衝刺事件風暴-設計衝刺
事件風暴-設計衝刺
 
事件風暴-領域建模
事件風暴-領域建模事件風暴-領域建模
事件風暴-領域建模
 
單元測試
單元測試單元測試
單元測試
 
Scrum essential
Scrum essentialScrum essential
Scrum essential
 
Asp.net core v1.0
Asp.net core v1.0Asp.net core v1.0
Asp.net core v1.0
 
React js
React jsReact js
React js
 
例外處理與單元測試
例外處理與單元測試例外處理與單元測試
例外處理與單元測試
 
ASP.Net WebAPI經驗分享
ASP.Net WebAPI經驗分享ASP.Net WebAPI經驗分享
ASP.Net WebAPI經驗分享
 
ASP.Net MVC Framework
ASP.Net MVC FrameworkASP.Net MVC Framework
ASP.Net MVC Framework
 
Team Foundation Server
Team Foundation ServerTeam Foundation Server
Team Foundation Server
 
SQL Server效能調校
SQL Server效能調校SQL Server效能調校
SQL Server效能調校
 
深入淺出Node.JS
深入淺出Node.JS深入淺出Node.JS
深入淺出Node.JS
 
Linq初階
Linq初階Linq初階
Linq初階
 
Linq實戰
Linq實戰Linq實戰
Linq實戰
 
Entity Framework實戰
Entity Framework實戰Entity Framework實戰
Entity Framework實戰
 
C#版本3~5的新特性
C#版本3~5的新特性C#版本3~5的新特性
C#版本3~5的新特性
 

Docker基礎