docker:有兩個版本:docker-ce(社區版)和docker-ee(企業版)。
參考官網地址:https://docs.docker.com/engine/installation/linux/docker-ce/ubuntu/#os-requirements
docker-compse:可運行和管理多個docker容器。
docker-machine:docker官方提供的docker管理工具。可管理多個docker主機,可搭建swarm集群。
0x01 docker安裝
我們可以從ubuntu倉庫安裝docker 也可以從docker倉庫安裝 ,這里以docker官網安裝為例
1,卸載舊版本docker
全新安裝時,無需執行該步驟
$ sudo apt-get remove docker docker-engine docker.io
2,更新系統軟件
$ sudo apt-get update

3,安裝依賴包
$ sudo apt-get install \
apt-transport-https \
ca-certificates \
curl \
software-properties-common

4,添加官方密鑰
執行該命令時,如遇到長時間沒有響應說明網絡連接不到docker網站,需要使用代-理進行。
$ curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -

顯示OK,表示添加成功.
5,添加倉庫
$ sudo add-apt-repository \ "deb [arch=amd64] https://download.docker.com/linux/ubuntu \ $(lsb_release -cs) \ stable"

6,再次更新軟件
經實踐,這一步不能夠省略,我們需要再次把軟件更新到最新,否則下一步有可能會報錯。
$ sudo apt-get update
7,安裝docker
如果想指定安裝某一版本,可使用 sudo apt-get install docker-ce=<VERSION> 命令,把<VERSION>替換為具體版本即可。
以下命令沒有指定版本,默認就會安裝最新版
$ sudo apt-get install docker-ce

8,查看docker版本
$ docker -v

到這里 表示docker安裝成功。
0x02 docker-compose安裝
兩種最新的docker安裝方式
1.從github上下載docker-compose二進制文件安裝
- 下載最新版的docker-compose文件
$ sudo curl -L https://github.com/docker/compose/releases/download/1.16.1/docker-compose-`uname -s`-`uname -m` -o /usr/local/bin/docker-compose

- 添加可執行權限
$ sudo chmod +x /usr/local/bin/docker-compose

- 測試安裝結果
$ docker-compose --version

$ sudo pip install docker-compose
0x03 docker-machine安裝
說明:docker-machine的使用是要基於virtualBox的。如果沒有安裝安裝過,請先安裝virtualBox。
1,安裝virtualBox
登錄virtualBox官網:https://www.virtualbox.org/wiki/Linux_Downloads
找到"Ubuntu 16.04 ("Xenial") i386 | AMD64"字樣,點擊“AMD64”進行下載。
下載后,執行以下命令進行安裝:
$ sudo dpkg -i virtualbox-5.2_5.2.0-118431_Ubuntu_xenial_amd64.deb
2,下載並安裝docker-machine
$ curl -L https://github.com/docker/machine/releases/download/v0.13.0/docker-machine-`uname -s`-`uname -m` >/tmp/docker-machine && chmod +x /tmp/docker-machine && sudo cp /tmp/docker-machine /usr/local/bin/docker-machine
3,查看版本信息
$ docker-machine version
顯示出版本信息,即安裝成功。
0x04 AWD攻防平台部署
用到的平台是Hence Zhang @Lancet師傅分享的

比賽平台拓撲:

Check_server:
服務檢查服務器,用於判定選手維護的服務是否可用,如果不可用,則會扣除相應的分數。不開啟任何端口。需要與flag服務器通信。
Flag_server:
選手提交flag的服務器,並存儲選手的分數。開啟80端口。
Web_server:
選手連接的服務器,選手需要對其進行維護,並嘗試攻擊其他隊伍的機器。通常開啟80端口,22端口,並將端口映射到主機。
在復制文件的時候出現了無法復制的問題
解決;
sudo apt-get autoremove open-vm-tools sudo apt-get install open-vm-tools sudo apt-get install open-vm-tools-desktop
docker pull zhl2008/web_14.04

很可能是報錯
解決:
第一步:通過
dig @114.114.114.114 registry-1.docker.io

找到可用IP
第二步:嘗試修改/etc/hosts強制docker.io相關的域名解析到其它可用IP

ok
再次加載鏡像

1.根據當前隊伍數量copy所有的隊伍的比賽文件夾: python batch.py web_dir team_number
for example:
python batch.py web_server 5

然后改下名字
docker tag zhl2008/web_14.04 web_14.04

2.啟動比賽:python start.py ./ team_number
for example:
python start.py ./ 1

3.啟動check腳本:
docker attach check_server
python check.py
啟動的時候發現docker沒起起來 爆如下錯誤:
docker: Got permission denied while trying to connect to the Docker daemon socket at unix:///var/run/docker.sock: Post http://%2Fvar%2Frun%2Fdocker.sock/v1.39/containers/create?name=team1: dial unix /var/run/docker.sock: connect: permission denied.
解決:
sudo運行
啟動起來了就訪問吧
因為是在一個服務器上運行了多個docker,靶機的映射端口規則是:
team1 ---- 8801 team3 ---- 8802 team3 ---- 8803 ....以此類推

各個靶機的ssh密碼可以在項目的文件夾下的pass.txt文件中

ssh的端口規則是:
team1 ---- 2201 team2 ---- 2202 team3 ---- 2203 ....以此類推
在項目的根目錄的flag_server/中,我們 要賦予score.txt 和result.txt 777權限,否則分數變動無法進行同步

ok這里就搭建完成了 enjoy it~
