一個Shipyard集群包含一個或者多個“引擎”。一個引擎就是一個Docker后臺程序,它提供socket(本地使用)或者供其他機器使用的TCP端口。除此之外再沒有其他任何的代理或者安裝遠程程序來激活管理;僅僅只是通過Docker的接口。
Docker后臺程序偵聽TCP端口請參看[Docker文檔](https://docs.docker.com/articles/basics/)在“Bind Docker to another host/port or a Unix socket”。
當一個引擎被添加到Shipyard中,你就可以為一個特殊的引擎定義資源限制了。在調度容器時會使用這些限制來確保引擎適應所有的請求。你可以使用SSL證書來保證安全通信。
## ID
每個引擎都必須有一個可以識別的標示符。
## 地址
這個地址是用來和引擎交互的。對于本地用戶,你可以使用`unix:///path/to/docker.sock`。對于多機配置,使用非SSL端口`http://`或者基于SSL協議的`https://`
## 資源
每個引擎都應該定義對資源的限制。它們可以是CPU和內存(單位MB)。
## 標簽
一個引擎可以有一個或多個標簽。這些都是用來調度和決策容器的。
## SSL
一個引擎可以配置成使用SSL。參看[Docker文檔](https://docs.docker.com/articles/https/)來運行SSL。
## 例子
### 增加引擎
~~~
shipyard cli> shipyard add-engine --id local \
--addr http://10.1.2.3:2375 \
--cpus 4.0 \
--memory 8192 \
--label dev \
--label local
~~~
你也可以使用Docker socket來添加引擎,這樣的話就只能運行單機環境了。你也可以在Shipyard控制器運行時添加一個掛載項(`-v /var/run/docker.sock:/docker.sock`)
~~~
shipyard cli> shipyard add-engine --id local-socket \
--addr unix:///docker.sock \
--cpus 4.0 \
--memory 8192 \
--label dev \
--label local
~~~
### 查看引擎列表
~~~
shipyard cli> shipyard engines
ID Cpus Memory Host Labels
local 4.00 8192.00 http://172.16.1.50:2375 local,dev
~~~
### 查看引擎詳情
~~~
shipyard cli> shipyard inspect-engine local
{
"engine": {
"labels": [
"local",
"dev"
],
"memory": 2048,
"cpus": 4,
"addr": "http://172.16.1.50:2375",
"id": "local"
},
"id": "a08b8518-e963-4eb5-959a-566bd270cd28"
}
~~~
### 刪除引擎
~~~
shipyard cli> shipyard remove-engine a08b8518-e963-4eb5-959a-566bd270cd28
removed local
~~~