docker cloud agent 所使用镜像和容器技术剖析
以下8个镜像 dockercloud/events latest 60409f79c5be 6 days ago 11.21 MB dockercloud/network-daemon 1.9.1-cs2 45378ec0f939 3 weeks ago 34.63 MB dockercloud/logrotate latest 2a7a09774f07 8 weeks ago 5.665 MB dockercloud/ntpd latest 6124347b2c07 8 weeks ago 4.794 MB weaveworks/weave 1.4.1 ba2ba7a02d38 12 weeks ago 19.09 MB weaveworks/plugin 1.4.1 66fe97101ced 3 months ago 68.52 MB weaveworks/weaveexec 1.4.1 dd0663a54153 3 months ago 58.78 MB dockercloud/cleanup latest b5e62e29733e 3 months ago 11.26 MB
镜像描述
- dockercloud/events
empty
root@spd1:/usr/bin# docker history dockercloud/events
IMAGE CREATED CREATED BY SIZE COMMENT
60409f79c5be 6 days ago /bin/sh -c #(nop) ENTRYPOINT &{["/events"]} 0 B
9b3be9e5d72e 6 days ago /bin/sh -c #(nop) ENV REPORT_INTERVAL=30 DOCK 0 B
ab3b424389f8 6 days ago /bin/sh -c #(nop) ADD tarsum.v1+sha256:1f903a 273.8 kB
8c2fcc8000c9 6 days ago /bin/sh -c #(nop) ADD file:57c0b40f1748dbbf86 6.136 MB
f50e0b57e730 6 days ago /bin/sh -c #(nop) MAINTAINER Feng Honglin 0 B
a4406dabfa7c 2 weeks ago /bin/sh -c #(nop) ADD file:81ba6f20bdb99e6c13 4.798 MB
* dockercloud/network-daemon
empty
* dockercloud/logrotate
empty
root@spd1:/usr/bin# docker history dockercloud/logrotate
IMAGE CREATED CREATED BY SIZE COMMENT
2a7a09774f07 8 weeks ago /bin/sh -c #(nop) CMD ["crond" "-f"] 0 B
ce19fe82fe9f 8 weeks ago /bin/sh -c #(nop) ADD file:d9ee56a33941943793 166 B
cd07f076df59 8 weeks ago /bin/sh -c echo "*/5 * * * * /usr/sbin/logrot 335 B
156d64f6af38 8 weeks ago /bin/sh -c apk --update add logrotate 870.1 kB
64418d750afe 8 weeks ago /bin/sh -c #(nop) MAINTAINER [email protected] 0 B
463737dfe56d 9 weeks ago /bin/sh -c #(nop) ADD file:0fc0a5ec098241ab15 4.794 MB
* dockercloud/ntpd
root@spd1:/usr/bin# docker history dockercloud/ntpd
IMAGE CREATED CREATED BY SIZE COMMENT
6124347b2c07 8 weeks ago /bin/sh -c #(nop) CMD ["/run.sh"] 0 B
3cc03e47b112 8 weeks ago /bin/sh -c #(nop) ADD file:979ebd1823bd1409bc 49 B
61bc802c8939 8 weeks ago /bin/sh -c #(nop) ADD file:3c6b3134ff4a37e34d 87 B
9d95bb3fbbae 8 weeks ago /bin/sh -c #(nop) MAINTAINER [email protected] 0 B
463737dfe56d 9 weeks ago /bin/sh -c #(nop) ADD file:0fc0a5ec098241ab15 4.794 MB
* weaveworks/weave
Weave Net creates a virtual network that connects Docker containers deployed across multiple hosts and enables their automatic discovery.
See http://weave.works for further info and docs.
Weaveworks provides developer-friendly tools to quickly and simply network and visualize your containerized applications.
root@spd1:/usr/bin# docker history weaveworks/weave:1.4.1 IMAGE CREATED CREATED BY SIZE COMMENT ba2ba7a02d38 3 months ago /bin/sh -c #(nop) ENTRYPOINT &{["/home/weave/ 0 B 8b05dbda47f6 3 months ago /bin/sh -c #(nop) ADD file:941e88586f35027e0a 19.09 MB 6cb65287d390 3 months ago /bin/sh -c #(nop) WORKDIR /home/weave 0 B 125d612ff28d 3 months ago /bin/sh -c #(nop) LABEL works.weave.role=syst 0 B 9169fcce814f 3 months ago /bin/sh -c #(nop) MAINTAINER Weaveworks Inc < 0 B
- weaveworks/plugin
This is a plugin to let you use the Docker Networking interface together with Weave Net. Weave Net creates a virtual network that connects Docker containers deployed across multiple hosts.
See http://weave.works for further info and docs.
Weaveworks provides developer-friendly tools to quickly and simply network and visualize your containerized applications.
- weaveworks/weaveexec
Weaving Containers Into Applications
- dockercloud/cleanup
empty
root@spd1:/usr/bin# docker history dockercloud/cleanup IMAGE CREATED CREATED BY SIZE COMMENT b5e62e29733e 3 months ago /bin/sh -c #(nop) CMD ["/run.sh"] 0 B 4664fa314b07 3 months ago /bin/sh -c #(nop) ADD file:542f370a7d3b4b7b06 678 B 13ae5d7b144e 3 months ago /bin/sh -c #(nop) ADD file:13a482106818d8daed 6.007 MB 1da777f1283f 3 months ago /bin/sh -c #(nop) ENV IMAGE_LOCKED=None 0 B 21c611974f8c 3 months ago /bin/sh -c #(nop) ENV VOLUME_CLEAN_INTERVAL=1 0 B ac4faed39e9c 3 months ago /bin/sh -c #(nop) ENV IMAGE_CLEAN_DELAYED=180 0 B 1c761d69188a 3 months ago /bin/sh -c #(nop) ENV IMAGE_CLEAN_INTERVAL=1 0 B c244301b0f7d 3 months ago /bin/sh -c #(nop) ENV DOCKER_ROOT_DIR=/var/li 0 B 459999e9f0fb 3 months ago /bin/sh -c #(nop) MAINTAINER Feng Honglin 0 B 32653661039d 3 months ago /bin/sh -c #(nop) ADD file:699a96d49cb5954591 5.253 MB
以下6个容器 bb612870abda weaveworks/weave:1.4.1 "/home/weave/weaver -" 19 minutes ago Up 19 minutes weave 17a9f471e2af dockercloud/cleanup:latest "/run.sh" 36 minutes ago Up 32 minutes cleanup-36497.67758b38 df70acc2b092 dockercloud/logrotate:latest "crond -f" 46 minutes ago Up 32 minutes logrotate-19740.2d657c46 dbe43e78b487 dockercloud/events:latest "/events" 54 minutes ago Up 32 minutes events-95851.d4573ae0 264e7fc3f8b9 dockercloud/ntpd:latest "/run.sh" 56 minutes ago Up 32 minutes ntpd-24478.656ffdf4 5891a5325ba5 dockercloud/network-daemon:1.9.1-cs2 "/run.sh" 58 minutes ago Up 32 minutes weave-56672.b473e73d
容器描述
weave
cleaner
run.sh
#!/bin/sh
if [ ! -e "/var/run/docker.sock" ]; then
echo "=> Cannot find docker socket(/var/run/docker.sock), please check the command!"
exit 1
fi
if [ "${IMAGE_LOCKED}" == "**None**" ]; then
exec /cleanup -imageCleanInterval ${IMAGE_CLEAN_INTERVAL} \
-imageCleanDelayed ${IMAGE_CLEAN_DELAYED} \
-volumeCleanInterval ${VOLUME_CLEAN_INTERVAL} \
-dockerRootDir ${DOCKER_ROOT_DIR}
else
exec /cleanup -imageCleanInterval ${IMAGE_CLEAN_INTERVAL} \
-imageCleanDelayed ${IMAGE_CLEAN_DELAYED} \
-volumeCleanInterval ${VOLUME_CLEAN_INTERVAL} \
-imageLocked "${IMAGE_LOCKED}" \
-dockerRootDir ${DOCKER_ROOT_DIR}
fi
### events
/events程序
### NTPD
docker exec -t -i 264e7fc3f8b9 /bin/sh ntpd时钟同步服务吗? 5Mb
root@spd1:/home/hjb# docker history dockercloud/ntpd
IMAGE CREATED CREATED BY SIZE COMMENT
6124347b2c07 8 weeks ago /bin/sh -c #(nop) CMD ["/run.sh"] 0 B
3cc03e47b112 8 weeks ago /bin/sh -c #(nop) ADD file:979ebd1823bd1409bc 49 B
61bc802c8939 8 weeks ago /bin/sh -c #(nop) ADD file:3c6b3134ff4a37e34d 87 B
9d95bb3fbbae 8 weeks ago /bin/sh -c #(nop) MAINTAINER [email protected] 0 B
463737dfe56d 9 weeks ago /bin/sh -c #(nop) ADD file:0fc0a5ec098241ab15 4.794 MB
tutum/ntpd
Keeps the host datetime in sync
Usage
docker run -d --privileged tutum/ntpdate
* Dockerfile
最简单的Linux内核吗,只要2M
FROM alpine:latest MAINTAINER [email protected]
ADD ntpd /etc/periodic/daily/ntpd ADD run.sh /run.sh CMD ["/run.sh"]
run.sh
#!/bin/sh
/etc/periodic/daily/ntpd
exec crond -f
### network-daemon
docker inspect 5891a5325ba5
"Env": [
"DOCKERCLOUD_SERVICE_FQDN=weave.08586b72.svc.dockerapp.io",
"DOCKERCLOUD_NODE_HOSTNAME=ff49d6d6-d2ff-4f83-8d28-eeeeafb0d9f4",
"DOCKERCLOUD_NODE_API_URI=/api/infra/v1/node/ff49d6d6-d2ff-4f83-8d28-eeeeafb0d9f4/",
"DOCKERCLOUD_NODE_API_URL=https://cloud.docker.com/api/infra/v1/node/ff49d6d6-d2ff-4f83-8d28-eeeeafb0d9f4/",
"DOCKERCLOUD_CONTAINER_HOSTNAME=weave-56672",
"WEAVE_PASSWORD=6fcf2e51f3e50d156b49a994f6e392986ba5cc52ee0f56e4a519e3911f3b65c2301d37c08fab997788ca454c8bf3b1032b903f0edf662911df045e13a6e160e4",
"DOCKERCLOUD_SERVICE_API_URL=https://cloud.docker.com/api/app/v1/service/08586b72-4fe8-4a9e-b2f2-90d000c417f9/",
"DOCKERCLOUD_SERVICE_API_URI=/api/app/v1/service/08586b72-4fe8-4a9e-b2f2-90d000c417f9/",
"DOCKERCLOUD_STREAM_HOST=wss://ws.cloud.docker.com",
"LOGSPOUT=ignore",
"DOCKERCLOUD_CONTAINER_API_URI=/api/app/v1/container/b473e73d-f193-4c10-8378-550101570fed/",
"DOCKERCLOUD_CONTAINER_API_URL=https://cloud.docker.com/api/app/v1/container/b473e73d-f193-4c10-8378-550101570fed/",
"DOCKERCLOUD_REST_HOST=https://cloud.docker.com",
"DOCKERCLOUD_SERVICE_HOSTNAME=weave",
"DOCKERCLOUD_STREAM_URL=wss://ws.cloud.docker.com/api/",
"DOCKERCLOUD_PEER_COUNT=1",
"PROCFS=/hostproc",
"DOCKERCLOUD_BASE_URL=https://cloud.docker.com/api/",
"DOCKERCLOUD_AUTH=Basic aHVqYjIwMDA6YjJmNDgxYmMtM2FlMy00ZjFiLWE4MzUtYjEyNGI5NTRlZGY5",
"WEAVE_LAUNCH=",
"DOCKERCLOUD_CONTAINER_FQDN=weave-56672.b473e73d.cont.dockerapp.io",
"DOCKERCLOUD_NODE_FQDN=ff49d6d6-d2ff-4f83-8d28-eeeeafb0d9f4.node.dockerapp.io",
"DOCKERCLOUD_PRIVATE_CIDR=",
"PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin",
"VERSION=1.4.1",
"WEAVE_DOCKER_ARGS=-e LOGSPOUT=ignore"
],
run.sh
!/bin/sh
set -e
echo "=> Using weave version: $VERSION"
echo "=> Using docker binary:" docker version
if [ "${WEAVE_LAUNCH}" = "None" ]; then
echo "WEAVE_LAUNCH is None. Not running 'weave launch'"
else
ROUTER_PRESENT=docker ps -a | grep -c "weave:${VERSION}" || true
if [ "${ROUTER_PRESENT}" = "0" ]; then
echo "=> No weave router version ${VERSION} found"
WEAVE_IMAGES=docker images | grep -c "weaveworks/weave:${VERSION}" || true
if [ "${WEAVE_IMAGES}" = "0" ]; then
echo "=> Setting up weave images"
/weave --local setup
fi
echo "=> Resetting weave on the node"
/weave --local reset
else
echo "=> Weave router version ${VERSION} found"
fi
PRIVATE_SUBNETS=$(ip addr show | grep "eth[0-9]" | grep -oE "(10.[0-9]{1,3}.[0-9]{1,3}.[0-9]{1,3}/[0-9]+|172.(16|17|18|19|2[0-9]|30|31).[0-9]{1,3}.[0-9]{1,3}/[0-9]+|192.168.[0-9]{1,3}.[
0-9]{1,3}/[0-9]+)" | tr '\n' ',' | head -c -1) if [ ! -z "${DOCKERCLOUD_PRIVATE_CIDR}" ]; then
# TODO: check which private subnets detected can be trusted
# TRUSTED_SUBNETS="${PRIVATE_SUBNETS},${DOCKERCLOUD_PRIVATE_CIDR}"
TRUSTED_SUBNETS="${DOCKERCLOUD_PRIVATE_CIDR}"
fi
echo "=> Marking the following private subnets as trusted (unencrypted): ${TRUSTED_SUBNETS:-none}"
if [ ! -z "${WEAVE_PASSWORD}" ]; then
echo "=> Running: weave launch -password XXXXXX ${WEAVE_LAUNCH}"
echo "=> Peer count: ${DOCKERCLOUD_PEER_COUNT}"
WEAVE_EXTRA_ARGS="--password=${WEAVE_PASSWORD}"
else
echo "!! WARNING: No \$WEAVE_PASSWORD set!"
echo "=> Running: weave launch ${WEAVE_LAUNCH}"
echo "=> Peer count: ${DOCKERCLOUD_PEER_COUNT}"
fi
/weave --local launch-router --conn-limit=0 --ipalloc-range=10.128.0.0/10 --trusted-subnets=${TRUSTED_SUBNETS} --no-dns --no-discovery --init-peer-count=${DOCKERCLOUD_PEER_COUNT} ${WEAVE_EXTRA_ARGS} ${WEAVE_LAUNCH} || true
sleep 2
fi
"run.sh" [readonly] 59L, 2279C