三种docker可视化工具(全网最详细)-CSDN博客

目录

一、docker UI

1.1 介绍

1.2 部署

1.2.1 拉镜像

1.2.2 启动容器

1.2.3 访问页面

1.3 使用

 1.3.1 Dashboard

 1.3.2 Containers

 1.3.3 Containers Network

 1.3.4 Images

 1.3.5 Networks

 1.3.6 Volumes

 1.3.7 Docker Information

 二、Portainer

2.1 介绍

2.2 部署

 2.2.1 拉镜像

 2.2.2 启动容器

 2.2.3 访问页面

2.3 使用

 2.3.1 Home

 2.3.2 Dashboard

 2.3.3 APP Templates

 2.3.4 Stacks

 2.3.5 Containers

 2.3.6 images

 2.3.7 Networks

 2.3.8 Volume

 2.3.9 Events

 2.3.10 Host View

 三、shipyard

3.1 介绍

3.2 部署

3.2.1 拉取镜像

3.2.2 页面访问

3.3 使用

3.3.1 容器管理

3.3.2 镜像管理

3.3.3 仓库管理

3.3.4 账户管理

3.3.5 日志事件


一、docker UI

1.1 介绍

DockerUI是一个开源的基于Docker API的web应用程序,提供等同Docker命令行的大部分功能,支持container管理,image管理。它最值得称道的是它华丽的设计和用来运行和管理docker的简洁的操作界面。

DockerUI优点:

      1)支持container批量操作;

      2)支持image管理(虽然比较薄弱)

DockerUI缺点:

      1)不支持多主机。

      2)不支持鉴权

1.2 部署

1.2.1 拉镜像

  1. #拉镜像

  2. docker pull uifd/ui-for-docker

  3. #检查

  4. [root@docker]-[~]-#docker images|grep ui

  5. uifd/ui-for-docker latest 965940f98fa5 5 years ago 8.1MB

1.2.2 启动容器

  1. #容器启动

  2. docker run -it -d --name docker-web -p 9090:9000 -v /var/run/docker.sock:/var/run/docker.sock docker.io/uifd/ui-for-docker

  3. #检查

  4. [root@docker]-[~]-#docker ps |grep web

  5. 164aaf6b30af uifd/ui-for-docker "/ui-for-docker" About an hour ago Up About an hour 0.0.0.0:9090->9000/tcp, :::9090->9000/tcp docker-web

1.2.3 访问页面

http://10.0.0.100:9090

 1.3 使用

1.3.1 Dashboard

显示所有容器运行情况、容器创建周期、镜像拉取周期。

 1.3.2 Containers

查看容器运行状态、日志情况等

 1.3.3 Containers Network

 1.3.4 Images

 拉取镜像:

 修改标签:

 1.3.5 Networks

 1.3.6 Volumes

 1.3.7 Docker Information

 二、Portainer

2.1 介绍

Portainer是一个可视化的容器镜像的图形管理工具,利用Portainer可以轻松构建,管理和维护Docker环境。 而且完全免费,基于容器化的安装方式,方便高效部署。

官方站点:https://www.portainer.io/

2.2 部署

  1. [root@docker]-[~/docker-ui]-#docker search portainer |head -n 3

  2. NAME DESCRIPTION STARS OFFICIAL AUTOMATED

  3. portainer/portainer This Repo is now deprecated, use portainer/p… 2255

  4. portainer/portainer-ce Portainer CE - a lightweight service deliver… 1314

2.2.1 拉镜像

  1. #拉取镜像

  2. [root@docker]-[~]-#docker pull portainer/portainer

  3. #检查

  4. [root@docker]-[~]-#docker images|grep portainer

  5. portainer/portainer latest 980323c8eb3f 19 months ago 196MB

2.2.2 启动容器

  1. #启动容器

  2. docker run -d -p 8100:8000 -p 9100:9000 --name=portainer --restart=always -v /var/run/docker.sock:/var/run/docker.sock -v portainer_data:/data portainer/portainer

  3. #检查

  4. [root@docker]-[~]-#docker ps|grep portainer

  5. e6ba4145ba0a portainer/portainer "/portainer" About an hour ago Up About an hour 0.0.0.0:8100->8000/tcp, :::8100->8000/tcp, 0.0.0.0:9100->9000/tcp, :::9100->9000/tcp portainer

2.2.3 访问页面

http://10.0.0.100:9100(admin:${new_password})

 2.3 使用

2.3.1 Home

 添加用户:

 添加docker endpoints:

 添加registry:

 settings:(详细介绍点击问号即可)

 2.3.2 Dashboard

 2.3.3 APP Templates

自定义:

 2.3.4 Stacks

 2.3.5 Containers

可以进行启动、停止、杀掉、重启、中止、移除、添加容器等操作。 

创建容器: 

2.3.6 images

拉取镜像:

 查看、移除、构建、导入镜像:

 2.3.7 Networks

 2.3.8 Volumes

 2.3.9 Events

 2.3.10 Host View

 三、shipyard

3.1 介绍

        shipyard是docker的web可视化界面管理工具,是建立在docker集群管理工具Citadel之上,可以管理镜像、容器、主机等资源的web图形化工具,包括core和extension两个版本,core即shipyard主要是把多个 Docker host上的 containers 统一管理(支持跨越多个host),extension即shipyard-extensions添加了应用路由和负载均衡、集中化日志、部署等。Shipyard是在Docker Swarm实现对容器、镜像、docker集群、仓库、节点进行管理的web系统。

        通过Web用户界面,你可以浏览相关信息,比如你的容器在使用多少处理器和内存资源、在运行哪些容器,哪些镜像,还可以检查所有集群上的事件日志等。

其特性主要包括:

1)支持节点动态集群,可扩展节点的规模(swarm、etcd方案)

2)支持镜像管理、容器管理、节点管理等功能

3)可视化的容器管理和监控管理

4)在线连接容器console终端

3.2 部署

官网:deploy – shipyard project

3.2.1 拉取镜像

通过脚本快速拉取镜像,启动容器:

  1. [root@docker]-[~/docker-ui]-

  2. if [ "$1" != "" ] && [ "$1" = "-h" ]; then

  3. echo "Shipyard Deploy uses the following environment variables:"

  4. echo " ACTION: this is the action to use (deploy, upgrade, node, remove)"

  5. echo " DISCOVERY: discovery system used by Swarm (only if using 'node' action)"

  6. echo " IMAGE: this overrides the default Shipyard image"

  7. echo " PREFIX: prefix for container names"

  8. echo " SHIPYARD_ARGS: these are passed to the Shipyard controller container as controller args"

  9. echo " TLS_CERT_PATH: path to certs to enable TLS for Shipyard"

  10. echo " PORT: specify the listen port for the controller (default: 8080)"

  11. echo " IP: specify the address at which the controller or node will be available (default: eth0 ip)"

  12. echo " PROXY_PORT: port to run docker proxy (default: 2375)"

  13. exit 1

  14. fi

  15. if [ -z "`which docker`" ]; then

  16. echo "You must have the Docker CLI installed on your \$PATH"

  17. echo " See http://docs.docker.com for details"

  18. exit 1

  19. fi

  20. ACTION=${ACTION:-deploy}

  21. IMAGE=${IMAGE:-dockerclub/shipyard:latest}

  22. PREFIX=${PREFIX:-shipyard}

  23. SHIPYARD_ARGS=${SHIPYARD_ARGS:-""}

  24. TLS_CERT_PATH=${TLS_CERT_PATH:-}

  25. CERT_PATH="/etc/shipyard"

  26. PROXY_PORT=${PROXY_PORT:-2376}

  27. SWARM_PORT=3375

  28. SHIPYARD_PROTOCOL=http

  29. SHIPYARD_PORT=${PORT:-8080}

  30. SHIPYARD_IP=${IP}

  31. DISCOVERY_BACKEND=etcd

  32. DISCOVERY_PORT=4001

  33. DISCOVERY_PEER_PORT=7001

  34. ENABLE_TLS=0

  35. CERT_FINGERPRINT=""

  36. LOCAL_CA_CERT=""

  37. LOCAL_SSL_CERT=""

  38. LOCAL_SSL_KEY=""

  39. LOCAL_SSL_CLIENT_CERT=""

  40. LOCAL_SSL_CLIENT_KEY=""

  41. SSL_CA_CERT=""

  42. SSL_CERT=""

  43. SSL_KEY=""

  44. SSL_CLIENT_CERT=""

  45. SSL_CLIENT_KEY=""

  46. show_cert_help() {

  47. echo "To use TLS in Shipyard, you must have existing certificates."

  48. echo "The certs must be named ca.pem, server.pem, server-key.pem, cert.pem and key.pem"

  49. echo "If you need to generate certificates, see https://github.com/ehazlett/certm for examples."

  50. }

  51. check_certs() {

  52. if [ -z "$TLS_CERT_PATH" ]; then

  53. return

  54. fi

  55. if [ ! -e $TLS_CERT_PATH ]; then

  56. echo "Error: unable to find certificates in $TLS_CERT_PATH"

  57. show_cert_help

  58. exit 1

  59. fi

  60. if [ "$PROXY_PORT" = "2375" ]; then

  61. PROXY_PORT=2376

  62. fi

  63. SWARM_PORT=3376

  64. SHIPYARD_PROTOCOL=https

  65. LOCAL_SSL_CA_CERT="$TLS_CERT_PATH/ca.pem"

  66. LOCAL_SSL_CERT="$TLS_CERT_PATH/server.pem"

  67. LOCAL_SSL_KEY="$TLS_CERT_PATH/server-key.pem"

  68. LOCAL_SSL_CLIENT_CERT="$TLS_CERT_PATH/cert.pem"

  69. LOCAL_SSL_CLIENT_KEY="$TLS_CERT_PATH/key.pem"

  70. SSL_CA_CERT="$CERT_PATH/ca.pem"

  71. SSL_CERT="$CERT_PATH/server.pem"

  72. SSL_KEY="$CERT_PATH/server-key.pem"

  73. SSL_CLIENT_CERT="$CERT_PATH/cert.pem"

  74. SSL_CLIENT_KEY="$CERT_PATH/key.pem"

  75. CERT_FINGERPRINT=$(openssl x509 -noout -in $LOCAL_SSL_CERT -fingerprint -sha256 | awk -F= '{print $2;}')

  76. if [ ! -e $LOCAL_SSL_CA_CERT ] || [ ! -e $LOCAL_SSL_CERT ] || [ ! -e $LOCAL_SSL_KEY ] || [ ! -e $LOCAL_SSL_CLIENT_CERT ] || [ ! -e $LOCAL_SSL_CLIENT_KEY ]; then

  77. echo "Error: unable to find certificates"

  78. show_cert_help

  79. exit 1

  80. fi

  81. ENABLE_TLS=1

  82. }

  83. start_certs() {

  84. ID=$(docker run \

  85. -ti \

  86. -d \

  87. --restart=always \

  88. --name $PREFIX-certs \

  89. -v $CERT_PATH \

  90. alpine \

  91. sh)

  92. if [ $ENABLE_TLS = 1 ]; then

  93. docker cp $LOCAL_SSL_CA_CERT $PREFIX-certs:$SSL_CA_CERT

  94. docker cp $LOCAL_SSL_CERT $PREFIX-certs:$SSL_CERT

  95. docker cp $LOCAL_SSL_KEY $PREFIX-certs:$SSL_KEY

  96. docker cp $LOCAL_SSL_CLIENT_CERT $PREFIX-certs:$SSL_CLIENT_CERT

  97. docker cp $LOCAL_SSL_CLIENT_KEY $PREFIX-certs:$SSL_CLIENT_KEY

  98. fi

  99. }

  100. remove_certs() {

  101. docker rm -fv $PREFIX-certs > /dev/null 2>&1

  102. }

  103. get_ip() {

  104. if [ -z "$SHIPYARD_IP" ]; then

  105. SHIPYARD_IP=`docker run --rm --net=host alpine ip route get 8.8.8.8 | awk '{ print $7; }'`

  106. fi

  107. }

  108. start_discovery() {

  109. get_ip

  110. ID=$(docker run \

  111. -ti \

  112. -d \

  113. -p 4001:4001 \

  114. -p 7001:7001 \

  115. --restart=always \

  116. --name $PREFIX-discovery \

  117. microbox/etcd:latest -addr $SHIPYARD_IP:$DISCOVERY_PORT -peer-addr $SHIPYARD_IP:$DISCOVERY_PEER_PORT)

  118. }

  119. remove_discovery() {

  120. docker rm -fv $PREFIX-discovery > /dev/null 2>&1

  121. }

  122. start_rethinkdb() {

  123. ID=$(docker run \

  124. -ti \

  125. -d \

  126. --restart=always \

  127. --name $PREFIX-rethinkdb \

  128. rethinkdb)

  129. }

  130. remove_rethinkdb() {

  131. docker rm -fv $PREFIX-rethinkdb > /dev/null 2>&1

  132. }

  133. start_proxy() {

  134. TLS_OPTS=""

  135. if [ $ENABLE_TLS = 1 ]; then

  136. TLS_OPTS="-e SSL_CA=$SSL_CA_CERT -e SSL_CERT=$SSL_CERT -e SSL_KEY=$SSL_KEY -e SSL_SKIP_VERIFY=1"

  137. fi

  138. ID=$(docker run \

  139. -ti \

  140. -d \

  141. -p $PROXY_PORT:$PROXY_PORT \

  142. --hostname=$HOSTNAME \

  143. --restart=always \

  144. --name $PREFIX-proxy \

  145. -v /var/run/docker.sock:/var/run/docker.sock \

  146. -e PORT=$PROXY_PORT \

  147. --volumes-from=$PREFIX-certs $TLS_OPTS\

  148. shipyard/docker-proxy:latest)

  149. }

  150. remove_proxy() {

  151. docker rm -fv $PREFIX-proxy > /dev/null 2>&1

  152. }

  153. start_swarm_manager() {

  154. get_ip

  155. TLS_OPTS=""

  156. if [ $ENABLE_TLS = 1 ]; then

  157. TLS_OPTS="--tlsverify --tlscacert=$SSL_CA_CERT --tlscert=$SSL_CERT --tlskey=$SSL_KEY"

  158. fi

  159. EXTRA_RUN_OPTS=""

  160. if [ -z "$DISCOVERY" ]; then

  161. DISCOVERY="$DISCOVERY_BACKEND://discovery:$DISCOVERY_PORT"

  162. EXTRA_RUN_OPTS="--link $PREFIX-discovery:discovery"

  163. fi

  164. ID=$(docker run \

  165. -ti \

  166. -d \

  167. --restart=always \

  168. --name $PREFIX-swarm-manager \

  169. --volumes-from=$PREFIX-certs $EXTRA_RUN_OPTS \

  170. swarm:latest \

  171. m --replication --addr $SHIPYARD_IP:$SWARM_PORT --host tcp://0.0.0.0:$SWARM_PORT $TLS_OPTS $DISCOVERY)

  172. }

  173. remove_swarm_manager() {

  174. docker rm -fv $PREFIX-swarm-manager > /dev/null 2>&1

  175. }

  176. start_swarm_agent() {

  177. get_ip

  178. if [ -z "$DISCOVERY" ]; then

  179. DISCOVERY="$DISCOVERY_BACKEND://discovery:$DISCOVERY_PORT"

  180. EXTRA_RUN_OPTS="--link $PREFIX-discovery:discovery"

  181. fi

  182. ID=$(docker run \

  183. -ti \

  184. -d \

  185. --restart=always \

  186. --name $PREFIX-swarm-agent $EXTRA_RUN_OPTS \

  187. swarm:latest \

  188. j --addr $SHIPYARD_IP:$PROXY_PORT $DISCOVERY)

  189. }

  190. remove_swarm_agent() {

  191. docker rm -fv $PREFIX-swarm-agent > /dev/null 2>&1

  192. }

  193. start_controller() {

  194. TLS_OPTS=""

  195. if [ $ENABLE_TLS = 1 ]; then

  196. TLS_OPTS="--tls-ca-cert $SSL_CA_CERT --tls-cert=$SSL_CERT --tls-key=$SSL_KEY --shipyard-tls-ca-cert=$SSL_CA_CERT --shipyard-tls-cert=$SSL_CERT --shipyard-tls-key=$SSL_KEY"

  197. fi

  198. ID=$(docker run \

  199. -ti \

  200. -d \

  201. --restart=always \

  202. --name $PREFIX-controller \

  203. --link $PREFIX-rethinkdb:rethinkdb \

  204. --link $PREFIX-swarm-manager:swarm \

  205. -p $SHIPYARD_PORT:$SHIPYARD_PORT \

  206. --volumes-from=$PREFIX-certs \

  207. $IMAGE \

  208. --debug \

  209. server \

  210. --listen :$SHIPYARD_PORT \

  211. -d tcp://swarm:$SWARM_PORT $TLS_OPTS $SHIPYARD_ARGS)

  212. }

  213. wait_for_available() {

  214. set +e

  215. IP=$1

  216. PORT=$2

  217. echo Waiting for Shipyard on $IP:$PORT

  218. docker pull ehazlett/curl > /dev/null 2>&1

  219. TLS_OPTS=""

  220. if [ $ENABLE_TLS = 1 ]; then

  221. TLS_OPTS="-k"

  222. fi

  223. until $(docker run --rm ehazlett/curl --output /dev/null --connect-timeout 1 --silent --head --fail $TLS_OPTS $SHIPYARD_PROTOCOL://$IP:$PORT/ > /dev/null 2>&1); do

  224. printf '.'

  225. sleep 1

  226. done

  227. printf '\n'

  228. }

  229. remove_controller() {

  230. docker rm -fv $PREFIX-controller > /dev/null 2>&1

  231. }

  232. if [ "$ACTION" = "deploy" ]; then

  233. set -e

  234. check_certs

  235. get_ip

  236. echo "Deploying Shipyard"

  237. echo " -> Starting Database"

  238. start_rethinkdb

  239. echo " -> Starting Discovery"

  240. start_discovery

  241. echo " -> Starting Cert Volume"

  242. start_certs

  243. echo " -> Starting Proxy"

  244. start_proxy

  245. echo " -> Starting Swarm Manager"

  246. start_swarm_manager

  247. echo " -> Starting Swarm Agent"

  248. start_swarm_agent

  249. echo " -> Starting Controller"

  250. start_controller

  251. wait_for_available $SHIPYARD_IP $SHIPYARD_PORT

  252. echo "Shipyard available at $SHIPYARD_PROTOCOL://$SHIPYARD_IP:$SHIPYARD_PORT"

  253. if [ $ENABLE_TLS = 1 ] && [ ! -z "$CERT_FINGERPRINT" ]; then

  254. echo "SSL SHA-256 Fingerprint: $CERT_FINGERPRINT"

  255. fi

  256. echo "Username: admin Password: shipyard"

  257. elif [ "$ACTION" = "node" ]; then

  258. set -e

  259. if [ -z "$DISCOVERY" ]; then

  260. echo "You must set the DISCOVERY environment variable"

  261. echo "with the discovery system used with Swarm"

  262. exit 1

  263. fi

  264. check_certs

  265. echo "Adding Node"

  266. echo " -> Starting Cert Volume"

  267. start_certs

  268. echo " -> Starting Proxy"

  269. start_proxy

  270. echo " -> Starting Swarm Manager"

  271. start_swarm_manager $DISCOVERY

  272. echo " -> Starting Swarm Agent"

  273. start_swarm_agent

  274. echo "Node added to Swarm: $SHIPYARD_IP"

  275. elif [ "$ACTION" = "upgrade" ]; then

  276. set -e

  277. check_certs

  278. get_ip

  279. echo "Upgrading Shipyard"

  280. echo " -> Pulling $IMAGE"

  281. docker pull $IMAGE

  282. echo " -> Upgrading Controller"

  283. remove_controller

  284. start_controller

  285. wait_for_available $SHIPYARD_IP $SHIPYARD_PORT

  286. echo "Shipyard controller updated"

  287. elif [ "$ACTION" = "remove" ]; then

  288. set +e

  289. echo "Removing Shipyard"

  290. echo " -> Removing Database"

  291. remove_rethinkdb

  292. echo " -> Removing Discovery"

  293. remove_discovery

  294. echo " -> Removing Cert Volume"

  295. remove_certs

  296. echo " -> Removing Proxy"

  297. remove_proxy

  298. echo " -> Removing Swarm Agent"

  299. remove_swarm_agent

  300. echo " -> Removing Swarm Manager"

  301. remove_swarm_manager

  302. echo " -> Removing Controller"

  303. remove_controller

  304. echo "Done"

  305. else

  306. echo "Unknown action $ACTION"

  307. exit 1

  308. fi

 执行脚本:

  1. [root@docker]-[~/docker-ui]-

  2. Unable to find image 'alpine:latest' locally

  3. latest: Pulling from library/alpine

  4. 213ec9aee27d: Pulling fs layer

  5. 213ec9aee27d: Verifying Checksum

  6. 213ec9aee27d: Download complete

  7. 213ec9aee27d: Pull complete

  8. Digest: sha256:bc41182d7ef5ffc53a40b044e725193bc10142a1243f395ee852a8d9730fc2ad

  9. Status: Downloaded newer image for alpine:latest

  10. Deploying Shipyard

  11. -> Starting Database

  12. Unable to find image 'rethinkdb:latest' locally

  13. latest: Pulling from library/rethinkdb

  14. 7a6db449b51b: Pulling fs layer

  15. 20181367ea9b: Pulling fs layer

  16. d4c59a6fbe9d: Pulling fs layer

  17. 54db2c71fcb0: Pulling fs layer

  18. 1e96e4039912: Pulling fs layer

  19. 54db2c71fcb0: Waiting

  20. 1e96e4039912: Waiting

  21. d4c59a6fbe9d: Verifying Checksum

  22. d4c59a6fbe9d: Download complete

  23. 20181367ea9b: Verifying Checksum

  24. 20181367ea9b: Download complete

  25. 1e96e4039912: Download complete

  26. 7a6db449b51b: Download complete

  27. 7a6db449b51b: Pull complete

  28. 20181367ea9b: Pull complete

  29. d4c59a6fbe9d: Pull complete

  30. 54db2c71fcb0: Verifying Checksum

  31. 54db2c71fcb0: Download complete

  32. 54db2c71fcb0: Pull complete

  33. 1e96e4039912: Pull complete

  34. Digest: sha256:bc30f504fc823240c64552a7983b6da55d83dd0966ab17cab12c5fb9e45576ce

  35. Status: Downloaded newer image for rethinkdb:latest

  36. -> Starting Discovery

  37. Unable to find image 'microbox/etcd:latest' locally

  38. latest: Pulling from microbox/etcd

  39. Image docker.io/microbox/etcd:latest uses outdated schema1 manifest format. Please upgrade to a schema2 image for better future compatibility. More information at https://docs.docker.com/registry/spec/deprecated-schema-v1/

  40. 8ded6e8ab3fd: Pulling fs layer

  41. bf8f85223d7a: Pulling fs layer

  42. a3ed95caeb02: Pulling fs layer

  43. a3ed95caeb02: Verifying Checksum

  44. a3ed95caeb02: Download complete

  45. bf8f85223d7a: Verifying Checksum

  46. bf8f85223d7a: Download complete

  47. 8ded6e8ab3fd: Verifying Checksum

  48. 8ded6e8ab3fd: Download complete

  49. 8ded6e8ab3fd: Pull complete

  50. bf8f85223d7a: Pull complete

  51. a3ed95caeb02: Pull complete

  52. Digest: sha256:941fd46b4eab265c65da9bfbf33397b853a7cef6c16df93a1e3fea7b4e47fc90

  53. Status: Downloaded newer image for microbox/etcd:latest

  54. -> Starting Cert Volume

  55. -> Starting Proxy

  56. Unable to find image 'shipyard/docker-proxy:latest' locally

  57. latest: Pulling from shipyard/docker-proxy

  58. Image docker.io/shipyard/docker-proxy:latest uses outdated schema1 manifest format. Please upgrade to a schema2 image for better future compatibility. More information at https://docs.docker.com/registry/spec/deprecated-schema-v1/

  59. 8f4ec95ceaee: Pulling fs layer

  60. ac77a345f217: Pulling fs layer

  61. 43039e3ef672: Pulling fs layer

  62. a3ed95caeb02: Pulling fs layer

  63. a3ed95caeb02: Waiting

  64. 8f4ec95ceaee: Download complete

  65. 8f4ec95ceaee: Pull complete

  66. ac77a345f217: Verifying Checksum

  67. ac77a345f217: Download complete

  68. ac77a345f217: Pull complete

  69. a3ed95caeb02: Verifying Checksum

  70. a3ed95caeb02: Download complete

  71. 43039e3ef672: Verifying Checksum

  72. 43039e3ef672: Download complete

  73. 43039e3ef672: Pull complete

  74. a3ed95caeb02: Pull complete

  75. Digest: sha256:da6bbd1a145581a940d44940cce0f43705d7f8ec552a4e97e77104ec1b6dc3d1

  76. Status: Downloaded newer image for shipyard/docker-proxy:latest

  77. -> Starting Swarm Manager

  78. Unable to find image 'swarm:latest' locally

  79. latest: Pulling from library/swarm

  80. 38e5683d7755: Pulling fs layer

  81. 083aff163606: Pulling fs layer

  82. 2064f1a73c6b: Pulling fs layer

  83. 083aff163606: Verifying Checksum

  84. 083aff163606: Download complete

  85. 2064f1a73c6b: Verifying Checksum

  86. 2064f1a73c6b: Download complete

  87. 38e5683d7755: Verifying Checksum

  88. 38e5683d7755: Download complete

  89. 38e5683d7755: Pull complete

  90. 083aff163606: Pull complete

  91. 2064f1a73c6b: Pull complete

  92. Digest: sha256:2de8883e2933840ed7ee7360ea1eed314bf8aeac37c0692b9ca651630fde3b7f

  93. Status: Downloaded newer image for swarm:latest

  94. -> Starting Swarm Agent

  95. -> Starting Controller

  96. Unable to find image 'dockerclub/shipyard:latest' locally

  97. latest: Pulling from dockerclub/shipyard

  98. Image docker.io/dockerclub/shipyard:latest uses outdated schema1 manifest format. Please upgrade to a schema2 image for better future compatibility. More information at https://docs.docker.com/registry/spec/deprecated-schema-v1/

  99. 4d06f2521e4f: Pulling fs layer

  100. 64100628847a: Pulling fs layer

  101. 36a170440d6d: Pulling fs layer

  102. a823ae228c2d: Pulling fs layer

  103. a3ed95caeb02: Pulling fs layer

  104. a823ae228c2d: Waiting

  105. a3ed95caeb02: Waiting

  106. 4d06f2521e4f: Verifying Checksum

  107. 4d06f2521e4f: Download complete

  108. 4d06f2521e4f: Pull complete

  109. 36a170440d6d: Verifying Checksum

  110. 36a170440d6d: Download complete

  111. a3ed95caeb02: Verifying Checksum

  112. a3ed95caeb02: Download complete

  113. 64100628847a: Verifying Checksum

  114. 64100628847a: Download complete

  115. 64100628847a: Pull complete

  116. 36a170440d6d: Pull complete

  117. a823ae228c2d: Verifying Checksum

  118. a823ae228c2d: Download complete

  119. a823ae228c2d: Pull complete

  120. a3ed95caeb02: Pull complete

  121. Digest: sha256:bd5ac58c556506012f7788db18fc6fed3bcefb294e469babbeb87ad7ef15e219

  122. Status: Downloaded newer image for dockerclub/shipyard:latest

  123. Waiting for Shipyard on 10.0.0.100:8080

  124. ........................................

  125. Shipyard available at http://10.0.0.100:8080

  126. Username: admin Password: shipyard

容器介绍:

  1. [root@docker]-[~/docker-ui]-

  2. CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES

  3. 2308552f63a9 dockerclub/shipyard:latest "/bin/controller --d…" About an hour ago Up About an hour 0.0.0.0:8080->8080/tcp, :::8080->8080/tcp shipyard-controller

  4. 1676327a4e5a swarm:latest "/swarm j --addr 10.…" About an hour ago Up About an hour 2375/tcp shipyard-swarm-agent

  5. 2f368d9f81df swarm:latest "/swarm m --replicat…" About an hour ago Up About an hour 2375/tcp shipyard-swarm-manager

  6. c38108f757c5 shipyard/docker-proxy:latest "/usr/local/bin/run" About an hour ago Up About an hour 2375/tcp, 0.0.0.0:2376->2376/tcp, :::2376->2376/tcp shipyard-proxy

  7. e610645dfe8e alpine "sh" About an hour ago Up About an hour shipyard-certs

  8. c444c7df39f4 microbox/etcd:latest "/bin/etcd -addr 10.…" About an hour ago Up About an hour 0.0.0.0:4001->4001/tcp, :::4001->4001/tcp, 0.0.0.0:7001->7001/tcp, :::7001->7001/tcp shipyard-discovery

  9. 307b4cec4659 rethinkdb "rethinkdb --bind all" About an hour ago Up About an hour 8080/tcp, 28015/tcp, 29015/tcp shipyard-rethinkdb

  10. ----------------------------------------------------------------------------------------

  11. 1)RethinkDB

  12. deploy首先启动的就是RethinkDB容器,shipyard采用RethinkDB作为数据库来保存用户等信息

  13. 2)Discovery

  14. 为了使用Swarm,我们需要一个外部的密钥值存储群容器,shipyard默认是采用了etcd。

  15. 3)shipyard_certs

  16. 证书管理容器,实现证书验证功能

  17. 4)Proxy

  18. 默认情况下,Docker引擎只监听Socket,我们可以重新配置引擎使用TLS或者使用一个代理容器,转发请求从TCP到Docker监听的UNIX Socket。

  19. 5)Swarm Manager

  20. Swarm管理器

  21. 6)Swarm Agent

  22. Swarm代理,运行在每个节点上。

  23. 7)Controller

  24. shipyard控制器,Remote API的实现和web的实现。

3.2.2 页面访问

访问地址:http://10.0.0.100:8080

登录用户名/密码:admin/shipyard

 3.3 使用

3.3.1 容器管理

 部署容器:

 操作容器:

 3.3.2 镜像管理

 下载镜像:

 3.3.3 仓库管理

 添加仓库:

3.3.4 账户管理

 新增账户:

 3.3.5 日志事件