当前位置:   article > 正文

三种docker可视化工具(全网最详细)

docker可视化工具

目录

一、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]-#cat deploy
  2. #!/bin/bash
  3. if [ "$1" != "" ] && [ "$1" = "-h" ]; then
  4. echo "Shipyard Deploy uses the following environment variables:"
  5. echo " ACTION: this is the action to use (deploy, upgrade, node, remove)"
  6. echo " DISCOVERY: discovery system used by Swarm (only if using 'node' action)"
  7. echo " IMAGE: this overrides the default Shipyard image"
  8. echo " PREFIX: prefix for container names"
  9. echo " SHIPYARD_ARGS: these are passed to the Shipyard controller container as controller args"
  10. echo " TLS_CERT_PATH: path to certs to enable TLS for Shipyard"
  11. echo " PORT: specify the listen port for the controller (default: 8080)"
  12. echo " IP: specify the address at which the controller or node will be available (default: eth0 ip)"
  13. echo " PROXY_PORT: port to run docker proxy (default: 2375)"
  14. exit 1
  15. fi
  16. if [ -z "`which docker`" ]; then
  17. echo "You must have the Docker CLI installed on your \$PATH"
  18. echo " See http://docs.docker.com for details"
  19. exit 1
  20. fi
  21. ACTION=${ACTION:-deploy}
  22. IMAGE=${IMAGE:-dockerclub/shipyard:latest}
  23. PREFIX=${PREFIX:-shipyard}
  24. SHIPYARD_ARGS=${SHIPYARD_ARGS:-""}
  25. TLS_CERT_PATH=${TLS_CERT_PATH:-}
  26. CERT_PATH="/etc/shipyard"
  27. PROXY_PORT=${PROXY_PORT:-2376}
  28. SWARM_PORT=3375
  29. SHIPYARD_PROTOCOL=http
  30. SHIPYARD_PORT=${PORT:-8080}
  31. SHIPYARD_IP=${IP}
  32. DISCOVERY_BACKEND=etcd
  33. DISCOVERY_PORT=4001
  34. DISCOVERY_PEER_PORT=7001
  35. ENABLE_TLS=0
  36. CERT_FINGERPRINT=""
  37. LOCAL_CA_CERT=""
  38. LOCAL_SSL_CERT=""
  39. LOCAL_SSL_KEY=""
  40. LOCAL_SSL_CLIENT_CERT=""
  41. LOCAL_SSL_CLIENT_KEY=""
  42. SSL_CA_CERT=""
  43. SSL_CERT=""
  44. SSL_KEY=""
  45. SSL_CLIENT_CERT=""
  46. SSL_CLIENT_KEY=""
  47. show_cert_help() {
  48. echo "To use TLS in Shipyard, you must have existing certificates."
  49. echo "The certs must be named ca.pem, server.pem, server-key.pem, cert.pem and key.pem"
  50. echo "If you need to generate certificates, see https://github.com/ehazlett/certm for examples."
  51. }
  52. check_certs() {
  53. if [ -z "$TLS_CERT_PATH" ]; then
  54. return
  55. fi
  56. if [ ! -e $TLS_CERT_PATH ]; then
  57. echo "Error: unable to find certificates in $TLS_CERT_PATH"
  58. show_cert_help
  59. exit 1
  60. fi
  61. if [ "$PROXY_PORT" = "2375" ]; then
  62. PROXY_PORT=2376
  63. fi
  64. SWARM_PORT=3376
  65. SHIPYARD_PROTOCOL=https
  66. LOCAL_SSL_CA_CERT="$TLS_CERT_PATH/ca.pem"
  67. LOCAL_SSL_CERT="$TLS_CERT_PATH/server.pem"
  68. LOCAL_SSL_KEY="$TLS_CERT_PATH/server-key.pem"
  69. LOCAL_SSL_CLIENT_CERT="$TLS_CERT_PATH/cert.pem"
  70. LOCAL_SSL_CLIENT_KEY="$TLS_CERT_PATH/key.pem"
  71. SSL_CA_CERT="$CERT_PATH/ca.pem"
  72. SSL_CERT="$CERT_PATH/server.pem"
  73. SSL_KEY="$CERT_PATH/server-key.pem"
  74. SSL_CLIENT_CERT="$CERT_PATH/cert.pem"
  75. SSL_CLIENT_KEY="$CERT_PATH/key.pem"
  76. CERT_FINGERPRINT=$(openssl x509 -noout -in $LOCAL_SSL_CERT -fingerprint -sha256 | awk -F= '{print $2;}')
  77. 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
  78. echo "Error: unable to find certificates"
  79. show_cert_help
  80. exit 1
  81. fi
  82. ENABLE_TLS=1
  83. }
  84. # container functions
  85. start_certs() {
  86. ID=$(docker run \
  87. -ti \
  88. -d \
  89. --restart=always \
  90. --name $PREFIX-certs \
  91. -v $CERT_PATH \
  92. alpine \
  93. sh)
  94. if [ $ENABLE_TLS = 1 ]; then
  95. docker cp $LOCAL_SSL_CA_CERT $PREFIX-certs:$SSL_CA_CERT
  96. docker cp $LOCAL_SSL_CERT $PREFIX-certs:$SSL_CERT
  97. docker cp $LOCAL_SSL_KEY $PREFIX-certs:$SSL_KEY
  98. docker cp $LOCAL_SSL_CLIENT_CERT $PREFIX-certs:$SSL_CLIENT_CERT
  99. docker cp $LOCAL_SSL_CLIENT_KEY $PREFIX-certs:$SSL_CLIENT_KEY
  100. fi
  101. }
  102. remove_certs() {
  103. docker rm -fv $PREFIX-certs > /dev/null 2>&1
  104. }
  105. get_ip() {
  106. if [ -z "$SHIPYARD_IP" ]; then
  107. SHIPYARD_IP=`docker run --rm --net=host alpine ip route get 8.8.8.8 | awk '{ print $7; }'`
  108. fi
  109. }
  110. start_discovery() {
  111. get_ip
  112. ID=$(docker run \
  113. -ti \
  114. -d \
  115. -p 4001:4001 \
  116. -p 7001:7001 \
  117. --restart=always \
  118. --name $PREFIX-discovery \
  119. microbox/etcd:latest -addr $SHIPYARD_IP:$DISCOVERY_PORT -peer-addr $SHIPYARD_IP:$DISCOVERY_PEER_PORT)
  120. }
  121. remove_discovery() {
  122. docker rm -fv $PREFIX-discovery > /dev/null 2>&1
  123. }
  124. start_rethinkdb() {
  125. ID=$(docker run \
  126. -ti \
  127. -d \
  128. --restart=always \
  129. --name $PREFIX-rethinkdb \
  130. rethinkdb)
  131. }
  132. remove_rethinkdb() {
  133. docker rm -fv $PREFIX-rethinkdb > /dev/null 2>&1
  134. }
  135. start_proxy() {
  136. TLS_OPTS=""
  137. if [ $ENABLE_TLS = 1 ]; then
  138. TLS_OPTS="-e SSL_CA=$SSL_CA_CERT -e SSL_CERT=$SSL_CERT -e SSL_KEY=$SSL_KEY -e SSL_SKIP_VERIFY=1"
  139. fi
  140. # Note: we add SSL_SKIP_VERIFY=1 to skip verification of the client
  141. # certificate in the proxy image. this will pass it to swarm that
  142. # does verify. this helps with performance and avoids certificate issues
  143. # when running through the proxy. ultimately if the cert is invalid
  144. # swarm will fail to return.
  145. ID=$(docker run \
  146. -ti \
  147. -d \
  148. -p $PROXY_PORT:$PROXY_PORT \
  149. --hostname=$HOSTNAME \
  150. --restart=always \
  151. --name $PREFIX-proxy \
  152. -v /var/run/docker.sock:/var/run/docker.sock \
  153. -e PORT=$PROXY_PORT \
  154. --volumes-from=$PREFIX-certs $TLS_OPTS\
  155. shipyard/docker-proxy:latest)
  156. }
  157. remove_proxy() {
  158. docker rm -fv $PREFIX-proxy > /dev/null 2>&1
  159. }
  160. start_swarm_manager() {
  161. get_ip
  162. TLS_OPTS=""
  163. if [ $ENABLE_TLS = 1 ]; then
  164. TLS_OPTS="--tlsverify --tlscacert=$SSL_CA_CERT --tlscert=$SSL_CERT --tlskey=$SSL_KEY"
  165. fi
  166. EXTRA_RUN_OPTS=""
  167. if [ -z "$DISCOVERY" ]; then
  168. DISCOVERY="$DISCOVERY_BACKEND://discovery:$DISCOVERY_PORT"
  169. EXTRA_RUN_OPTS="--link $PREFIX-discovery:discovery"
  170. fi
  171. ID=$(docker run \
  172. -ti \
  173. -d \
  174. --restart=always \
  175. --name $PREFIX-swarm-manager \
  176. --volumes-from=$PREFIX-certs $EXTRA_RUN_OPTS \
  177. swarm:latest \
  178. m --replication --addr $SHIPYARD_IP:$SWARM_PORT --host tcp://0.0.0.0:$SWARM_PORT $TLS_OPTS $DISCOVERY)
  179. }
  180. remove_swarm_manager() {
  181. docker rm -fv $PREFIX-swarm-manager > /dev/null 2>&1
  182. }
  183. start_swarm_agent() {
  184. get_ip
  185. if [ -z "$DISCOVERY" ]; then
  186. DISCOVERY="$DISCOVERY_BACKEND://discovery:$DISCOVERY_PORT"
  187. EXTRA_RUN_OPTS="--link $PREFIX-discovery:discovery"
  188. fi
  189. ID=$(docker run \
  190. -ti \
  191. -d \
  192. --restart=always \
  193. --name $PREFIX-swarm-agent $EXTRA_RUN_OPTS \
  194. swarm:latest \
  195. j --addr $SHIPYARD_IP:$PROXY_PORT $DISCOVERY)
  196. }
  197. remove_swarm_agent() {
  198. docker rm -fv $PREFIX-swarm-agent > /dev/null 2>&1
  199. }
  200. start_controller() {
  201. #-v $CERT_PATH:/etc/docker:ro \
  202. TLS_OPTS=""
  203. if [ $ENABLE_TLS = 1 ]; then
  204. 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"
  205. fi
  206. ID=$(docker run \
  207. -ti \
  208. -d \
  209. --restart=always \
  210. --name $PREFIX-controller \
  211. --link $PREFIX-rethinkdb:rethinkdb \
  212. --link $PREFIX-swarm-manager:swarm \
  213. -p $SHIPYARD_PORT:$SHIPYARD_PORT \
  214. --volumes-from=$PREFIX-certs \
  215. $IMAGE \
  216. --debug \
  217. server \
  218. --listen :$SHIPYARD_PORT \
  219. -d tcp://swarm:$SWARM_PORT $TLS_OPTS $SHIPYARD_ARGS)
  220. }
  221. wait_for_available() {
  222. set +e
  223. IP=$1
  224. PORT=$2
  225. echo Waiting for Shipyard on $IP:$PORT
  226. docker pull ehazlett/curl > /dev/null 2>&1
  227. TLS_OPTS=""
  228. if [ $ENABLE_TLS = 1 ]; then
  229. TLS_OPTS="-k"
  230. fi
  231. 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
  232. printf '.'
  233. sleep 1
  234. done
  235. printf '\n'
  236. }
  237. remove_controller() {
  238. docker rm -fv $PREFIX-controller > /dev/null 2>&1
  239. }
  240. if [ "$ACTION" = "deploy" ]; then
  241. set -e
  242. check_certs
  243. get_ip
  244. echo "Deploying Shipyard"
  245. echo " -> Starting Database"
  246. start_rethinkdb
  247. echo " -> Starting Discovery"
  248. start_discovery
  249. echo " -> Starting Cert Volume"
  250. start_certs
  251. echo " -> Starting Proxy"
  252. start_proxy
  253. echo " -> Starting Swarm Manager"
  254. start_swarm_manager
  255. echo " -> Starting Swarm Agent"
  256. start_swarm_agent
  257. echo " -> Starting Controller"
  258. start_controller
  259. wait_for_available $SHIPYARD_IP $SHIPYARD_PORT
  260. echo "Shipyard available at $SHIPYARD_PROTOCOL://$SHIPYARD_IP:$SHIPYARD_PORT"
  261. if [ $ENABLE_TLS = 1 ] && [ ! -z "$CERT_FINGERPRINT" ]; then
  262. echo "SSL SHA-256 Fingerprint: $CERT_FINGERPRINT"
  263. fi
  264. echo "Username: admin Password: shipyard"
  265. elif [ "$ACTION" = "node" ]; then
  266. set -e
  267. if [ -z "$DISCOVERY" ]; then
  268. echo "You must set the DISCOVERY environment variable"
  269. echo "with the discovery system used with Swarm"
  270. exit 1
  271. fi
  272. check_certs
  273. echo "Adding Node"
  274. echo " -> Starting Cert Volume"
  275. start_certs
  276. echo " -> Starting Proxy"
  277. start_proxy
  278. echo " -> Starting Swarm Manager"
  279. start_swarm_manager $DISCOVERY
  280. echo " -> Starting Swarm Agent"
  281. start_swarm_agent
  282. echo "Node added to Swarm: $SHIPYARD_IP"
  283. elif [ "$ACTION" = "upgrade" ]; then
  284. set -e
  285. check_certs
  286. get_ip
  287. echo "Upgrading Shipyard"
  288. echo " -> Pulling $IMAGE"
  289. docker pull $IMAGE
  290. echo " -> Upgrading Controller"
  291. remove_controller
  292. start_controller
  293. wait_for_available $SHIPYARD_IP $SHIPYARD_PORT
  294. echo "Shipyard controller updated"
  295. elif [ "$ACTION" = "remove" ]; then
  296. # ignore errors
  297. set +e
  298. echo "Removing Shipyard"
  299. echo " -> Removing Database"
  300. remove_rethinkdb
  301. echo " -> Removing Discovery"
  302. remove_discovery
  303. echo " -> Removing Cert Volume"
  304. remove_certs
  305. echo " -> Removing Proxy"
  306. remove_proxy
  307. echo " -> Removing Swarm Agent"
  308. remove_swarm_agent
  309. echo " -> Removing Swarm Manager"
  310. remove_swarm_manager
  311. echo " -> Removing Controller"
  312. remove_controller
  313. echo "Done"
  314. else
  315. echo "Unknown action $ACTION"
  316. exit 1
  317. fi

 执行脚本:

  1. [root@docker]-[~/docker-ui]-#./deploy
  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]-#docker ps
  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 日志事件

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/繁依Fanyi0/article/detail/526928
推荐阅读
相关标签
  

闽ICP备14008679号