- 創(chuàng)建一個 Ubuntu 12.04.2 主機(jī)(映像 ID 為 precisex64a)
- 申請一個公網(wǎng) IP、并捆綁至該主機(jī)
- 創(chuàng)建一個 SSH 密鑰、并捆綁至該主機(jī)
apt-get update
apt-get install python-software-properties
添加 PPA:
add-apt-repository ppa:dotcloud/lxc-docker
apt-get update
安裝:
apt-get install lxc-docker
3. 下載兩個 image (境外網(wǎng)絡(luò)可能比較慢、甚至中途掛,多試幾次,或掛后臺)
docker pull ivarvong/redis
docker pull kstaken/apache2
4. 啟容器中的服務(wù)
docker run -d -p 6379 ivarvong/redis /usr/bin/redis-server
docker run -d -p 80:80 kstaken/apache2
5. 查看運(yùn)行的容器
docker ps
記錄容器的 IP 地址
docker inspect 08821c6ffb4a
6. 為連接 redis 安裝一下 cli
apt-get install redis-server
7. 連接 redis 測試一下
redis-cli -p 6379 -h 172.17.0.17
set foo bar
get foo
exit
8, 看看 apache 是否起來
curl localhost
如果可用那么兩個容器都正常運(yùn)行了。
好了,總結(jié)一下 Docker 的常用命令:
docker search
用于搜索是否有可用的images,實(shí)際從index.docker.io查找,放回查詢結(jié)果
例如:
docker search apache
docker pull
從 index.docker.io 下載一個 image ,下載過程會有好幾個 fs 層,因?yàn)?Docker 生成的容器是可以不斷修改保存的,每一次的保存生成fs,一個完整的容器可以是多次的 fs 的疊加。
docker inspect
查看容器的信息,實(shí)際是lxc容器的配置參數(shù)
docker run
在容器中運(yùn)行一個命令,如果容器中有常駐任務(wù)會直接啟動容器本身
docker run 有諸多的選項,介紹常用的必要選項
-e 設(shè)置容器的運(yùn)行env環(huán)境變量
-v 映射服務(wù)的一個目錄到容器中
-p 容器對服務(wù)器暴露的端口
-c cpu使用的權(quán)重
-m 限制容器的內(nèi)存使用量
-i 標(biāo)準(zhǔn)輸出到當(dāng)前term
-t 分配一個tty
一般情況 -i -t 一起使用將容器的輸出到term
參考截圖:
例如:
docker run -d -p 80:80 -v /tmp:/var/www kstaken/apache2
將系統(tǒng)的80端口映射到容器的80端口,訪問系統(tǒng)的 localhsot 就訪問到容器的 apache 服務(wù), apache 會讀取 /tmp/index.html 訪問
docker ps -a
列出所有的容器,包括運(yùn)行的和已經(jīng)停止的。
docker rm
刪除容器
如果容器不在需要可以用刪除容器操作
docker start
開啟停止的容器
docker stop
停止運(yùn)行的容器
docker rmi
刪除 image
docker info
查看系統(tǒng)的容器和 images
docker commit
修改容器后提交保持
docker push
將 image 推送到 index.docker.io 保持
docker build
用 Dockerfile 文件創(chuàng)建一個 image,具體的 Dockerfile 語法不在介紹,很簡單參考官網(wǎng)就可以了。
后續(xù):
Docker 確實(shí)可以快速構(gòu)建一個容器,很快的構(gòu)建一個 PaaS 容器,對不同的環(huán)境使用不同的 Docker 容器即可。不過呢Docker 必須用 root 權(quán)限運(yùn)行,Docker 雖然可以控制容器映射到系統(tǒng)的目錄,但容器寫服務(wù)輸出的文件依然是隸屬root(非 root 用戶無法運(yùn)行 Docker)。
如果對同一臺服務(wù)上的少數(shù)應(yīng)用需要控制資源的直接使用 cgroup 是較好的選擇,可以按用戶或用戶組控制系統(tǒng)資源。如果服務(wù)需要指出多種環(huán)境,那么 Docker 就是最好的。
推薦參考:
http://dockerbook.com/TheDockerBook_sample.pdf