Centos7 + docker + shipyard 場景測試

Docker + shipyard 測試

1      測試拓撲:

wKiom1PkPw3hFguGAAFlMEnML1c820.jpg

2      測試目的:

  • 在兩臺Centos7服務器上安裝docker程序,測試鏡像封裝

  • 從鏡像運行兩個apache應用,測試服務訪問

  • 安裝shipyard容器管理程序,測試管理兩臺主機及container

 

3      測試過程

3.1        Linux橋接

若已啓用docker,先停止docker服務和移除docker0網橋:

# Stopping Docker and removing docker0

$ sudo service docker stop

$ sudo ip link set dev docker0 down

$ sudo brctl delbr docker0

創建需要的網橋:

$ sudo brctl addbr docker0

$ sudo ip addr add 10.0.1.197/24 devbridge0

$ sudo ip link set dev docker0 up

$ ip addr show docker0

修改eth網卡使橋接生效:

修改需要通信的eth網卡,模式改爲BRIDGE=bridge,並重啓網絡;ifconfig觀察橋接是否生效並啓用。

wKiom1PkQkSTiek3AAColUwv4P8995.jpg

以上操作在兩臺host都需要執行,可實現bridge與需要通信的網卡橋接,然後通過管理端訪問控制containercontainer會獲取到和docker0同一個網段地址,方便完成測試。

3.2        第一部分

對服務器做初始化,使正常訪問互聯網。安裝運行docker

# sudo yum install docker

# sudo service docker start

# sudo chkconfig docker on

創建非root用戶mds,運行docker

# sudo usermod -a -G docker mds

拉取centosdocker鏡像:

# docker pull centos

查看拉取的docker鏡像:

# docker images

運行一個centos6docker鏡像:

wKiom1PkQg-wJcLUAABAfNoyI_c388.jpg

安裝並運行apache服務:

bash-4.1# yum -y install httpd

bash-4.1# service httpd start

bash-4.1# chkconfig httpd on

退出當前容器:

bash-4.1# exit

重新封裝該容器,創建鏡像:

# Docker commit  b1bd49907d55  httpd

生成新鏡像:

wKioL1PkQgnikkt5AACkP7bXxwc900.jpg

3.3        第二部分

從鏡像部署兩個apache應用:

# docker  run –i–t  55a05053732c /bin/bash

bash-4.1#ifconfig eth0               查看IP地址:10.0.1.3

bash-4.1#service httpd start

bash-4.1#[ctrl+q]                    切出當前容器

# docker  run –i–t  55a05053732c /bin/bash

bash-4.1#ifconfig eth0                 查看IP地址:10.0.1.4

bash-4.1#service httpd start

bash-4.1#[ctrl+q]

操作步驟一樣,但是新的容器會生成不同的containerID,查看已創建的容器:

wKioL1PkQhnhFAV_AAE0DqFO_YY535.jpg

分別在操作端使用IE瀏覽器訪問兩個容器服務地址:

http://10.0.1.3/

wKioL1PkQiXD-tp3AARJQG4qHnA666.jpg

http://10.0.1.4/

wKiom1PkQRXhCW7LAAP0G4be8kI094.jpg

3.4        第三部分

拉取並運行shipyard鏡像(shipyard用於集中管理docker主機和container):

# docker pull shipyard/shipyard

# docker images     查看images id

# docker run –i –t 30e0b59613ff /bin/bash

運行shipyard服務

root@029b8401c5a0:/app# ifconfig   查看IP地址10.0.1.2

root@029b8401c5a0:/app# sudo pythonmanage.py runserver 0.0.0.0:8000

root@029b8401c5a0:/app# netstat -ant  | grep 8000 查看服務狀態

tcp       0      0 0.0.0.0:8000          0.0.0.0:*               LISTEN

在兩臺host下載shipyard/agent,向shipyard註冊host

# wget https://github.com/shipyard/shipyard-agent/releases/download/v0.3.2/shipyard-agent

# ./shipyard-agent -url http://10.0.1.2:8000 –register

# ./shipyard-agent -url http://10.0.1.2:8000 –key 1234567890qwertyuiop

登錄shipyard管理端:

Username: admin

Password: shipyard

wKioL1PkQjjRq_KxAAYiKuX4JAA931.jpg

shipyardUI管理界面,驗證通過host加入的請求:

wKiom1PkQSfhFl9EAAHj1FW-60M438.jpg

通過web UI管理container

wKiom1PkQTfxLbRMAAKLUzgiYHI357.jpg

wKioL1PkQq2jFhcdAAJl_cR1Irw998.jpg

管理鏡像:

wKiom1PkQZ2ir-6-AAQj13uO8d8182.jpg

用戶權限管理:

wKiom1PkQabQ3zTSAAN_veYlz4w436.jpg

單個container無法查看和管理的解決辦法:

分別查看45004243端口是否被監控

關閉host防火牆,關閉docker服務,並執行以下命令;

/usr/bin/docker -d -H tcp://0.0.0.0:4243 -H  unix:///var/run/docker.sock

之後重新啓用docker,重複上述部署操作。

4      參考資料

Docker學習筆記

http://blog.tankywoo.com/docker/2014/05/08/docker-1-start.html

Docker Advanced networking

https://docs.docker.com/articles/networking/

Shipyard QuickStart

https://github.com/shipyard/shipyard/wiki/QuickStart

Docker 的一個 Web 管理界面 Shipyard

http://www.vpsee.com/2013/11/shipyard-a-docker-web-ui/

docker shipyard multihost

http://serverascode.com/2014/05/25/docker-shipyard-multihost.html

centos6.5下安裝docker0.11

http://wenxuezhai.net/?p=1028

說明:該測試只是針對一個特定場景測試,中間坑比較多很多問題未解決,只是爲了達到測試目的,觀察測試結果的一個簡單驗證。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章