SlideShare a Scribd company logo
Docker 深入淺出
安裝
CentOS
• CentOS7 系統 CentOS-Extras 庫中已內建 Docker,可以
直接安裝:
• $ sudo yum install docker
• 安裝之後啟動 Docker 服務,並讓它隨系統啟動自動載入。
• $ sudo service docker start
• $ sudo chkconfig docker on
OSX
• https://docs.docker.com/docker-for-mac/install/#download-
docker-for-mac
• https://download.docker.com/mac/stable/Docker.dmg
OSX
OSX
OSX
核心概念
三位一體
• 映像檔(Image)
• 容器(Container)
• 倉庫(Repository)
Docker 101
實例練習
• docker pull ubuntu:12.04
• docker run -it --rm ubuntu:12.04 /bin/bash
• exit; (in the container)
基礎篇
製作映像檔
run 一個 container 來吧
映像檔
取得映像檔
• 指令:Docker Pull
• 功能:取得映像檔
• 先看本地倉庫
• 連線到遠端倉庫
非官方倉庫
• 有時候官方倉庫註冊服務器下載較慢,可以從其他倉庫下
載。 從其它倉庫下載時需要指定完整的倉庫伺服器位址。
• https://www.docker-cn.com/registry-mirror
列出本機映像檔
• 指令:docker images
• 訊息
• Repostory:來源
• Tag:映像的標記
• Image ID:唯一的 ID
• Created:創建時間
• Virtual Size:佔據硬碟空間大小
儲存和載入
• 指令: save <---> load
• save: 將映像檔轉為本機檔案
• load: 將檔案轉為映像檔
移除本地端映像檔
• 指令: rmi
• 注意:刪除映像檔前,需要刪除相對應建議立的容器
自我檢視
與容器互動
http://blog2dev.blogspot.tw/2014/06/docker-mise-en-pratique.html
啟動容器-基礎篇
• 指令: docker run [參數] [映像檔]:[Tag] [command]
• 功能:執行映像檔,啟動容器
啟動容器-基礎參數
• 後台模式 vs 前台模式
• 後台模式 (-d)
• 前台模式 (-it)
啟動容器-基礎參數
• Container 命名 (--name)
• 關掉即刪 (--rm)
啟動容器 SOP
• 當利用 docker run 來建立容器時,Docker 在後臺執行的標準操作包括:
• 檢查本地是否存在指定的映像檔,不存在就從公有倉庫下載
• 利用映像檔建立並啟動一個容器
• 分配一個檔案系統,並在唯讀的映像檔層外面掛載一層可讀寫層
• 從宿主主機設定的網路橋界面中橋接一個虛擬埠到容器中去
• 從位址池中設定一個 ip 位址給容器
• 執行使用者指定的應用程式
• 執行完畢後容器被終止
容器列表
• 指令 docker ps
• 參數:
• -a:所有容器(包含靜止的)
容器訊息
• 指令:docker logs [container id | name]
進入容器
• 指令:docker exec -it [container id | name] [/bin/bash | /bin/sh]
刪除容器
• 指令:docker rm [-f] [container id | name]
自我檢視
外部資源
Docker hub
• https://hub.docker.com/
• docker pull [name:tag]
Github
• https://github.com/
• git clone [repo]
• cd [repo]
• docker build -t [name:tag] .
自我檢視
進階篇
自製映像檔
了解資料管理
網路設定
DOCKERFILE
建立 Image 的藍圖
基本結構
• FROM
• ENV
• WORKDIR
• RUN
• COPY VS ADD
• VOLUME
• EXPOSE
• USER
• CMD vs ENTRYPOINT
FROM
• 來源的 Image
• FROM <image name:tag>
• 常用的 base image
• alpine
• busybox
• ubuntu, centos, debian
• 其他語言的 base image
ENV 環境變數
• ENV <key> <value>
WORKDIR
• WORKDIR <absolute path>
• 指令會在 WORKDIR 中執行
RUN
• RUN <command> && <command>
• 運行 linux 指令(需與 base image 同版本)
COPY vs ADD
• COPY <src path> <dest path>
• ADD <src path> <dest path>
• 相同點:
• 將本地路徑的檔案複製到容器中的指定位置
• 相異點:
• ADD 一個 tar 檔時,到指定路徑會自動解壓縮
VOLUME
• VOLUME <path>
• 建立一個目錄作為外部資料卷的掛載點,一般用來作為 存
放 persistent data
EXPOSE
• EXPOSE <port/protocol> ...
• 表示有哪些 port 需要 expose
USER
• USER <user name>
• 進入 container 時預設的使用者名稱
CMD vs ENTRYPOINT
• CMD
• CMD ["executable","param1","param2"] 使用 exec 執行,推薦使用
• CMD command param1 param2 在 /bin/sh 中執行,使用在給需要互動的指令
• ENTRYPOINT
• ENTRYPOINT ["executable", "param1", "param2"]
• ENTRYPOINT command param1 param2(shell中執行)
• 注意:
• CMD 會被 docker run 的提供的參數覆蓋
• 如果有多個 ENTRYPOINT/CMD,只有最後一個被執行
自我檢視

More Related Content

PPTX
Docker Compose
PDF
20150604 docker 新手入門
PDF
PDF
Docker Build
PDF
Docker初识
PDF
從軟體開發角度
談 Docker 的應用
PDF
認識那條鯨魚 Docker 初探
PPTX
Docker 淺入淺出
Docker Compose
20150604 docker 新手入門
Docker Build
Docker初识
從軟體開發角度
談 Docker 的應用
認識那條鯨魚 Docker 初探
Docker 淺入淺出

What's hot (20)

PDF
AWS EC2 for beginner
PPTX
Docker tutorial
PDF
Docker home ted
PDF
Docker
PPTX
cec-hello-docker
PPTX
Docker一期培训
PPTX
Docker workshop
PDF
Deployment with Capistrano
PPTX
開發人員必須知道的 Kubernetes 核心技術 - Kubernetes Summit 2018
PDF
前端工程師一定要知道的 Docker 虛擬化容器技巧
PPTX
Docker - 30秒生出100台伺服器
PPTX
Docker集群管理 工具篇
PPTX
Docker open stack
PPTX
QNAP MOPCON 2015 - 輕鬆打造持續整合開發環境,使用 QNAP Docker
PPTX
Rancher: 建立你的牧場艦隊
PPTX
SQL Server 資料庫版本控管
PDF
docker intro
PDF
Azure Container Service 使用 DC / OS 管理 docker 容器
PPTX
Introduction to Docker
PPTX
快速上手 Windows Containers 容器技術 (Docker Taipei)
AWS EC2 for beginner
Docker tutorial
Docker home ted
Docker
cec-hello-docker
Docker一期培训
Docker workshop
Deployment with Capistrano
開發人員必須知道的 Kubernetes 核心技術 - Kubernetes Summit 2018
前端工程師一定要知道的 Docker 虛擬化容器技巧
Docker - 30秒生出100台伺服器
Docker集群管理 工具篇
Docker open stack
QNAP MOPCON 2015 - 輕鬆打造持續整合開發環境,使用 QNAP Docker
Rancher: 建立你的牧場艦隊
SQL Server 資料庫版本控管
docker intro
Azure Container Service 使用 DC / OS 管理 docker 容器
Introduction to Docker
快速上手 Windows Containers 容器技術 (Docker Taipei)
Ad

Similar to Docker 101 (20)

PPTX
Docker基礎
PPTX
開發人員不可不知的 Windows Container 容器技術預覽
PPTX
Docker 基礎介紹與實戰
PPTX
Docker實務
PDF
DAE 新变化介绍
PPTX
FHIR Server 安裝與使用
PDF
Docker容器微服務 x WorkShop
PDF
讓軟體開發與應用更自由 - 使用 Docker 技術
PDF
Docker introduce and vs kernel virtual machine
PPTX
Dev-Ops与Docker的最佳实践 QCon2016 北京站演讲
PDF
A brief introduction to Vagrant – 原來 VirtualBox 可以這樣玩
PPTX
Docker基礎
PDF
Linking error
PDF
Docker 最佳实践
PPTX
[2020 .NET Conf] 企業Azure DevOps Service 實際應用架構與秘辛
PDF
Docker 123
PPTX
Docker進階探討
PDF
桃園市教育局Docker技術入門與實作
PPTX
Cloudstack dev/user sharing
PDF
Weic2015 docker
Docker基礎
開發人員不可不知的 Windows Container 容器技術預覽
Docker 基礎介紹與實戰
Docker實務
DAE 新变化介绍
FHIR Server 安裝與使用
Docker容器微服務 x WorkShop
讓軟體開發與應用更自由 - 使用 Docker 技術
Docker introduce and vs kernel virtual machine
Dev-Ops与Docker的最佳实践 QCon2016 北京站演讲
A brief introduction to Vagrant – 原來 VirtualBox 可以這樣玩
Docker基礎
Linking error
Docker 最佳实践
[2020 .NET Conf] 企業Azure DevOps Service 實際應用架構與秘辛
Docker 123
Docker進階探討
桃園市教育局Docker技術入門與實作
Cloudstack dev/user sharing
Weic2015 docker
Ad

More from Bryan Yang (15)

PDF
敏捷開發心法
PDF
Data pipeline essential
PDF
資料分析的快樂就是如此樸實無華且枯燥
PDF
Data pipeline 101
PPTX
Building a data driven business
PPTX
產業數據力-以傳統零售業為例
PPTX
Serverless ETL
PPTX
敏捷開發心法
PPTX
Introduction to docker
PPTX
Spark Sql for Training
PPTX
Spark MLlib - Training Material
PPTX
Building your bi system-HadoopCon Taiwan 2015
PPTX
Build your ETL job using Jenkins - step by step
PPTX
Data Scientist's Daily Life
PPTX
Introduce to Spark sql 1.3.0
敏捷開發心法
Data pipeline essential
資料分析的快樂就是如此樸實無華且枯燥
Data pipeline 101
Building a data driven business
產業數據力-以傳統零售業為例
Serverless ETL
敏捷開發心法
Introduction to docker
Spark Sql for Training
Spark MLlib - Training Material
Building your bi system-HadoopCon Taiwan 2015
Build your ETL job using Jenkins - step by step
Data Scientist's Daily Life
Introduce to Spark sql 1.3.0

Docker 101