Más contenido relacionado
La actualidad más candente (20)
Similar a Docker 基礎介紹與實戰 (20)
Docker 基礎介紹與實戰
- 4. Why
• 新人環境建置 (蜜月期?)
• 多種環境建置及版本測試
– Node 4.x, 5.x ..
– PHP 5.6, 5.7 ..
– Wordpress, Discourse, Gogs, Gitlab ….
4
- 6. 問題是 …
• 宅宅 A: 那個誰誰,可以先停掉你的程序嗎?
• 宅宅 B: CPU 跟 Ram 都爆了啦 ….
• 宅宅 C: 編譯個 Router Code 要半小時啊 ….
• 宅宅 D: 趁半夜沒人的時候再來用 (加班狂?)
6
- 13. 解決
• 工程師不再抱怨 Build Server 慢
– 不會再找我麻煩了 (誤)
• 前後端各自獨立作業
– 前端各自有獨立開發環境
• 要測試 Service (Wordpress, Jenkins, Gogs)
– 不需要安裝任何 redis, mysql, php 等環境
13
- 28. Docker images
• docker pull ubuntu:14.04
– ubuntu: image name
– 14.04: tag name, default is “latest”
– host: registry.hub.docker.com
28
- 34. 從上次 commit 進入 bash
docker run –t –i appleboy/test:1.0 /bin/bash
34
- 38. Ubuntu images
apt-get update
docker pull ubuntu:14.04
docker run –ti ubuntu:14.04 /bin/bash
$ apt-get update && apt-get –y upgrade
$ exit
docker commit –m “test” xxxxx test/base:1.0
38
- 42. 練習
前端建立 node 4 及 node 5 環境
後端建立 php6 及 php7 環境
驗證 images 是否有該執行檔
42
- 59. 啟動 Mysql, Redis
• docker run –d ––name my-db –e
MYSQL_ROOT_PASSWORD=1234 mysql
• docker run –d ––name my-redis redis
59
- 60. 連接 Mysql 及 Redis
Docker run –ti ––link my-db:db
––link my-redis:redis
ubuntu /bin/bash
60
- 61. 建立 Wordpress
• docker run –d ––name my-db
–e MYSQL_ROOT_PASSWORD=1234
mysql
• docker run ––name my-wp
--link my-db:mysql -d
-p 8080:80
wordpress
61
- 70. 事前準備
• 準備相關環境
– Node 4
– Node 5
– PHP5
– PHP6
– PHP7
Images
Dockerfile Yoyo/node:4
Yoyo/node:5
Yoyo/php:6
Yoyo/php:7
70
- 72. Docker run –rm
–v folder1:folder2
--link mysql:mysql
--workdir=/app
-e DEV=Testing
yoyo:node5
/bin/bash –c “npm test”
72
Notas del editor
- 傳統 VM 是在OS外來建立虛擬環境,透過Hypervisor在Host中模擬一套完整的硬體環境資源,目標是建立一個可以用來執行整套作業系統的沙箱獨立執行環境,所以VM做出來的是一個一個可以獨立安裝 OS 的「盒子」。
而 Container 是在OS內的核心系統層來打造虛擬執行環境,透過共用Host OS的作法,取代一個一個Guest OS的功用。
Container也因此被稱為是OS層的虛擬化技術。
Container 很輕、很快,啟動速度是秒級,可以大量節約開發、測試與部署的時間。