上回我們介紹了如何安裝 Docker 以及使用 Docker 運行 LAMP (Linux、Apache、MySQL、PHP),接下來我們將會教大家建立自家的影像檔。為甚麼要學習自建影像檔呢?
通過建立屬於自己的影像檔,你便可輕易的將專案又或者一些複雜的應用放在Docker 內,從而可讓自己在另一台機器之內快速部署好基建又或者是專案應用等,提高整體的效率。
要建立 Docker 影像檔,我們本身是需要了解到 Docker 的一些指令的,雖然我們不會一一列出,但都會就經常使用到的作出介紹。
註:如需暫停所有早前運行的 Docker Container,輸入以下指令即可。
sudo docker stop $(sudo docker ps –a -q)
Step 1
首先我們將會採用 Dockerfile 方式建立自家 Docker 影像檔。請大家先建立一個新的資料夾以用作儲存 Docker image。輸入以下指令即可。
mkdir /tmp/hkitblog
Step 2
然後我們需要新建一個名為 Dockerfile 的檔案,輸入以下指令即可。
sudo nano Dockerfile
Step 3
接著為了方便往後的協作,筆者習慣於開首加入註解,於是如圖所示的輸入了一些說明資訊。
############################################################
# Dockerfile build ruby
# in ubuntu
############################################################
Step 4
然後設定影像檔是建基於甚麼 Linux 版本,筆者以 Ubuntu 為例子。
# Base image to ubuntu:14.04
FROM ubuntu:14.04
Step 5
下一步是指定作者,輸入以下指令即可。
# Author WHO
MAINTAINER SKY
Step 6
筆者的習慣是希望在每一次啟用 Docker image 前先完成更新,因此第一行指令就是更新/檢查。
以下例子引用自 http://philipzheng.gitbooks.io/docker_practice/content/image/create.html
RUN apt-get -qq update
RUN apt-get -qqy install ruby ruby-dev
RUN gem install Sinatra
Step 7
然後就是建立並執行新建好的 Docker
sudo docker build -t="ouruser/sinatra:v2″ .
sudo docker run -t -i ouruser/sinatra:v2 /bin/bash
此時大家便可以即時進入了另一個 container 的文字模式之中,接下來我們可以試試建立一個 ruby 檔案進行測試。
Step 1
先建立一個資料夾,並在內輸入以下指令
vi hello.rb
#!/usr/bin/ruby
puts “Hello World!";
按一下 Esc
:wq 進行儲在及離開
Step 2
然後輸入以下指令,此時便會見到出現 ruby hello 回應,這就代表你已經成功於 CentOS 之中以 Container 技術 執行 Ubuntu 的指令,事關在 CentOS 之中你不可使用 Ubuntu 指令,對吧!
其次就是通過在 image 之中安裝 ruby 並成功於當中執行 Hello.rb
Step 3
最後,大家如需離開 Container 請按下 Ctrl P+Q 即可。
其實在 Docker 自建 Image 是一個複雜但卻可建立出完全切合自己需要的影像,通過執行 Docker 影像大家可於不同的環境之下執行預先打包好的應用,這樣便可更方便完成工作,對吧?
這只是一個最簡單的應用,稍後我們將會就較複雜的應用作出介紹,請萬勿錯過啦!
實戰 Dockerfile:如何自建 Docker 私人影像檔 (Docker image)?
https://www.facebook.com/hkitblog