Merge branch 'master' of github.com:docker/docker.github.io
120
Dockerfile
|
@ -2,81 +2,101 @@
|
|||
# from the master branch of https://github.com/docker/docker.github.io
|
||||
#
|
||||
# Here is the sequence:
|
||||
# 1. Set up the build
|
||||
# 2. Fetch upstream resources
|
||||
# 3. Build static HTML from master
|
||||
# 4. Reset to clean tiny nginx image
|
||||
# 5. Copy Nginx config and archive HTML, which don't change often and can be cached
|
||||
# 6. Copy static HTML from previous build stage (step 3)
|
||||
# 1. Set up base stages for building and deploying
|
||||
# 2. Collect and build the archived documentation
|
||||
# 3. Collect and build the reference documentation (from upstream resources)
|
||||
# 4. Build static HTML from the current branch
|
||||
# 5. Build the final image, combining the archives, reference docs, and
|
||||
# current version of the documentation
|
||||
#
|
||||
# When the image is run, it starts Nginx and serves the docs at port 4000
|
||||
|
||||
# Get basic configs and Jekyll env
|
||||
FROM docs/docker.github.io:docs-builder AS builder
|
||||
|
||||
# Set the target again
|
||||
ENV TARGET=/usr/share/nginx/html
|
||||
|
||||
# Set the source directory to md_source
|
||||
ENV SOURCE=md_source
|
||||
|
||||
# Get the current docs from the checked out branch
|
||||
# ${SOURCE} will contain a directory for each archive
|
||||
COPY . ${SOURCE}
|
||||
|
||||
####### START UPSTREAM RESOURCES ########
|
||||
# Set vars used by fetch-upstream-resources.sh script
|
||||
## Branch to pull from, per ref doc
|
||||
## To get master from svn the svn branch needs to be 'trunk'. To get a branch from svn it needs to be 'branches/branchname'
|
||||
|
||||
# Engine
|
||||
ENV ENGINE_SVN_BRANCH="branches/18.09.x"
|
||||
ENV ENGINE_BRANCH="18.09.x"
|
||||
ARG ENGINE_BRANCH="18.09.x"
|
||||
|
||||
# Distribution
|
||||
ENV DISTRIBUTION_SVN_BRANCH="branches/release/2.6"
|
||||
ENV DISTRIBUTION_BRANCH="release/2.6"
|
||||
|
||||
# Fetch upstream resources
|
||||
RUN bash ./${SOURCE}/_scripts/fetch-upstream-resources.sh ${SOURCE}
|
||||
####### END UPSTREAM RESOURCES ########
|
||||
ARG DISTRIBUTION_BRANCH="release/2.6"
|
||||
|
||||
|
||||
# Build the static HTML, now that everything is in place
|
||||
###
|
||||
# Set up base stages for building and deploying
|
||||
###
|
||||
|
||||
RUN jekyll build -s ${SOURCE} -d ${TARGET} --config ${SOURCE}/_config.yml
|
||||
# Get basic configs and Jekyll env
|
||||
FROM docs/docker.github.io:docs-builder AS builderbase
|
||||
ENV TARGET=/usr/share/nginx/html
|
||||
WORKDIR /usr/src/app/md_source/
|
||||
|
||||
# Fix up some links, don't touch the archives
|
||||
RUN find ${TARGET} -type f -name '*.html' | grep -vE "v[0-9]+\." | while read i; do sed -i 's#href="https://docs.docker.com/#href="/#g' "$i"; done
|
||||
# Set vars used by fetch-upstream-resources.sh script
|
||||
# Branch to pull from, per ref doc. To get master from svn the svn branch needs
|
||||
# to be 'trunk'. To get a branch from svn it needs to be 'branches/branchname'
|
||||
ARG ENGINE_BRANCH
|
||||
ENV ENGINE_BRANCH=${ENGINE_BRANCH}
|
||||
ENV ENGINE_SVN_BRANCH=branches/${ENGINE_BRANCH}
|
||||
|
||||
ARG DISTRIBUTION_BRANCH
|
||||
ENV DISTRIBUTION_BRANCH=${DISTRIBUTION_BRANCH}
|
||||
ENV DISTRIBUTION_SVN_BRANCH=branches/${DISTRIBUTION_BRANCH}
|
||||
|
||||
# BUILD OF MASTER DOCS IS NOW DONE!
|
||||
|
||||
# Reset to alpine so we don't get any docs source or extra apps
|
||||
FROM nginx:alpine
|
||||
|
||||
# Set the target again
|
||||
FROM nginx:alpine AS deploybase
|
||||
ENV TARGET=/usr/share/nginx/html
|
||||
|
||||
# Get the nginx config from the nginx-onbuild image
|
||||
# This hardly ever changes so should usually be cached
|
||||
COPY --from=docs/docker.github.io:nginx-onbuild /etc/nginx/conf.d/default.conf /etc/nginx/conf.d/default.conf
|
||||
|
||||
# Get all the archive static HTML and put it into place
|
||||
# Go oldest-to-newest to take advantage of the fact that we change older
|
||||
# archives less often than new ones.
|
||||
# To add a new archive, add it here
|
||||
# AND ALSO edit _data/docsarchives/archives.yaml to add it to the drop-down
|
||||
# Set the default command to serve the static HTML site
|
||||
CMD echo -e "Docker docs are viewable at:\nhttp://0.0.0.0:4000"; exec nginx -g 'daemon off;'
|
||||
|
||||
|
||||
# Build the archived docs
|
||||
# these docs barely change, so can be cached
|
||||
FROM deploybase AS archives
|
||||
# Get all the archive static HTML and put it into place. To add a new archive,
|
||||
# add it here, and ALSO edit _data/docsarchives/archives.yaml to add it to the drop-down
|
||||
COPY --from=docs/docker.github.io:v17.03 ${TARGET} ${TARGET}
|
||||
COPY --from=docs/docker.github.io:v17.06 ${TARGET} ${TARGET}
|
||||
COPY --from=docs/docker.github.io:v17.09 ${TARGET} ${TARGET}
|
||||
COPY --from=docs/docker.github.io:v17.12 ${TARGET} ${TARGET}
|
||||
COPY --from=docs/docker.github.io:v18.03 ${TARGET} ${TARGET}
|
||||
|
||||
# Get the built docs output from the previous build stage
|
||||
# This ordering means all previous layers can come from cache unless an archive
|
||||
# changes
|
||||
# Fetch library samples (documentation from official images on Docker Hub)
|
||||
# Only add the files that are needed to build these reference docs, so that
|
||||
# these docs are only rebuilt if changes were made to the configuration.
|
||||
# @todo find a way to build HTML in this stage, and still have them included in the navigation tree
|
||||
FROM builderbase AS library-samples
|
||||
COPY ./_scripts/fetch-library-samples.sh ./_scripts/
|
||||
COPY ./_samples/boilerplate.txt ./_samples/
|
||||
RUN bash ./_scripts/fetch-library-samples.sh
|
||||
|
||||
COPY --from=builder ${TARGET} ${TARGET}
|
||||
# Fetch upstream resources (reference documentation)
|
||||
# Only add the files that are needed to build these reference docs, so that
|
||||
# these docs are only rebuilt if changes were made to the configuration.
|
||||
FROM builderbase AS upstream-resources
|
||||
COPY ./_scripts/fetch-upstream-resources.sh ./_scripts/
|
||||
COPY ./_config.yml .
|
||||
COPY ./_data/toc.yaml ./_data/
|
||||
RUN bash ./_scripts/fetch-upstream-resources.sh .
|
||||
|
||||
# Serve the site (target), which is now all static HTML
|
||||
CMD echo -e "Docker docs are viewable at:\nhttp://0.0.0.0:4000"; exec nginx -g 'daemon off;'
|
||||
|
||||
# Build the current docs from the checked out branch
|
||||
FROM builderbase AS current
|
||||
COPY . .
|
||||
COPY --from=library-samples /usr/src/app/md_source/. ./
|
||||
COPY --from=upstream-resources /usr/src/app/md_source/. ./
|
||||
|
||||
# Build the static HTML, now that everything is in place
|
||||
RUN jekyll build -d ${TARGET}
|
||||
|
||||
# Fix up some links, don't touch the archives
|
||||
RUN find ${TARGET} -type f -name '*.html' | grep -vE "v[0-9]+\." | while read i; do sed -i 's#href="https://docs.docker.com/#href="/#g' "$i"; done
|
||||
|
||||
|
||||
# Docs with archives (for deploy)
|
||||
FROM archives AS deploy
|
||||
|
||||
# Add the current version of the docs
|
||||
COPY --from=current ${TARGET} ${TARGET}
|
||||
|
|
12
README.md
|
@ -107,7 +107,7 @@ of [https://docs.docker.com/](https://docs.docker.com/).
|
|||
|
||||
## Staging the docs
|
||||
|
||||
You have two options:
|
||||
You have three options:
|
||||
|
||||
1. On your local machine, clone this repo and run our staging container:
|
||||
|
||||
|
@ -169,7 +169,17 @@ You have two options:
|
|||
running on http://localhost:4000/ by default. To stop it, use `CTRL+C`.
|
||||
You can continue working in a second terminal and Jekyll will rebuild the
|
||||
website incrementally. Refresh the browser to preview your changes.
|
||||
|
||||
3. Build and run a Docker image for your working branch.
|
||||
|
||||
```bash
|
||||
$ docker build -t docker build -t docs/docker.github.io:<branch_name> .
|
||||
$ docker run --rm -it -p 4000:4000 docs/docker.github.io:<branch_name>
|
||||
```
|
||||
|
||||
After the `docker run` command, copy the URL provided in the container build output in a browser,
|
||||
http://0.0.0.0:4000, and verify your changes.
|
||||
|
||||
## Read these docs offline
|
||||
|
||||
To read the docs offline, you can use either a standalone container or a swarm service.
|
||||
|
|
20
_config.yml
|
@ -94,7 +94,7 @@ defaults:
|
|||
- scope:
|
||||
path: "install"
|
||||
values:
|
||||
win_latest_build: "docker-18.09.2"
|
||||
win_latest_build: "docker-18.09.3"
|
||||
- scope:
|
||||
path: "datacenter"
|
||||
values:
|
||||
|
@ -104,28 +104,28 @@ defaults:
|
|||
values:
|
||||
dtr_org: "docker"
|
||||
dtr_repo: "dtr"
|
||||
dtr_version: "2.6.2"
|
||||
dtr_version: "2.6.3"
|
||||
- scope:
|
||||
path: "datacenter/dtr/2.5"
|
||||
values:
|
||||
hide_from_sitemap: true
|
||||
dtr_org: "docker"
|
||||
dtr_repo: "dtr"
|
||||
dtr_version: "2.5.8"
|
||||
dtr_version: "2.5.9"
|
||||
- scope:
|
||||
path: "datacenter/dtr/2.4"
|
||||
values:
|
||||
hide_from_sitemap: true
|
||||
dtr_org: "docker"
|
||||
dtr_repo: "dtr"
|
||||
dtr_version: "2.4.9"
|
||||
dtr_version: "2.4.10"
|
||||
- scope:
|
||||
path: "datacenter/dtr/2.3"
|
||||
values:
|
||||
hide_from_sitemap: true
|
||||
dtr_org: "docker"
|
||||
dtr_repo: "dtr"
|
||||
dtr_version: "2.3.10"
|
||||
dtr_version: "2.3.11"
|
||||
- scope:
|
||||
path: "datacenter/dtr/2.2"
|
||||
values:
|
||||
|
@ -147,29 +147,29 @@ defaults:
|
|||
values:
|
||||
ucp_org: "docker"
|
||||
ucp_repo: "ucp"
|
||||
ucp_version: "3.1.2"
|
||||
ucp_version: "3.1.4"
|
||||
- scope: # This is a bit of a hack for the get-support.md topic.
|
||||
path: "ee"
|
||||
values:
|
||||
ucp_org: "docker"
|
||||
ucp_repo: "ucp"
|
||||
dtr_repo: "dtr"
|
||||
ucp_version: "3.1.3"
|
||||
dtr_version: "2.6.2"
|
||||
ucp_version: "3.1.4"
|
||||
dtr_version: "2.6.3"
|
||||
- scope:
|
||||
path: "datacenter/ucp/3.0"
|
||||
values:
|
||||
hide_from_sitemap: true
|
||||
ucp_org: "docker"
|
||||
ucp_repo: "ucp"
|
||||
ucp_version: "3.0.9"
|
||||
ucp_version: "3.0.10"
|
||||
- scope:
|
||||
path: "datacenter/ucp/2.2"
|
||||
values:
|
||||
hide_from_sitemap: true
|
||||
ucp_org: "docker"
|
||||
ucp_repo: "ucp"
|
||||
ucp_version: "2.2.16"
|
||||
ucp_version: "2.2.17"
|
||||
- scope:
|
||||
path: "datacenter/ucp/2.1"
|
||||
values:
|
||||
|
|
|
@ -6,6 +6,16 @@
|
|||
- product: "ucp"
|
||||
version: "3.1"
|
||||
tar-files:
|
||||
- description: "3.1.4 Linux"
|
||||
url: https://packages.docker.com/caas/ucp_images_3.1.4.tar.gz
|
||||
- description: "3.1.4 Windows Server 2016 LTSC"
|
||||
url: https://packages.docker.com/caas/ucp_images_win_2016_3.1.4.tar.gz
|
||||
- description: "3.1.4 Windows Server 1709"
|
||||
url: https://packages.docker.com/caas/ucp_images_win_1709_3.1.4.tar.gz
|
||||
- description: "3.1.4 Windows Server 1803"
|
||||
url: https://packages.docker.com/caas/ucp_images_win_1803_3.1.4.tar.gz
|
||||
- description: "3.1.4 Windows Server 2019 LTSC"
|
||||
url: https://packages.docker.com/caas/ucp_images_win_2019_3.1.4.tar.gz
|
||||
- description: "3.1.3 Linux"
|
||||
url: https://packages.docker.com/caas/ucp_images_3.1.3.tar.gz
|
||||
- description: "3.1.3 Windows Server 2016 LTSC"
|
||||
|
@ -43,6 +53,16 @@
|
|||
- product: "ucp"
|
||||
version: "3.0"
|
||||
tar-files:
|
||||
- description: "3.0.10 Linux"
|
||||
url: https://packages.docker.com/caas/ucp_images_3.0.10.tar.gz
|
||||
- description: "3.0.10 IBM Z"
|
||||
url: https://packages.docker.com/caas/ucp_images_s390x_3.0.10.tar.gz
|
||||
- description: "3.0.10 Windows Server 2016 LTSC"
|
||||
url: https://packages.docker.com/caas/ucp_images_win_2016_3.0.10.tar.gz
|
||||
- description: "3.0.10 Windows Server 1709"
|
||||
url: https://packages.docker.com/caas/ucp_images_win_1709_3.0.10.tar.gz
|
||||
- description: "3.0.10 Windows Server 1803"
|
||||
url: https://packages.docker.com/caas/ucp_images_win_1803_3.0.10.tar.gz
|
||||
- description: "3.0.9 Linux"
|
||||
url: https://packages.docker.com/caas/ucp_images_3.0.9.tar.gz
|
||||
- description: "3.0.9 IBM Z"
|
||||
|
@ -126,6 +146,12 @@
|
|||
- product: "ucp"
|
||||
version: "2.2"
|
||||
tar-files:
|
||||
- description: "2.2.17 Linux"
|
||||
url: https://packages.docker.com/caas/ucp_images_2.2.17.tar.gz
|
||||
- description: "2.2.17 IBM Z"
|
||||
url: https://packages.docker.com/caas/ucp_images_s390x_2.2.17.tar.gz
|
||||
- description: "2.2.17 Windows"
|
||||
url: https://packages.docker.com/caas/ucp_images_win_2.2.17.tar.gz
|
||||
- description: "2.2.16 Linux"
|
||||
url: https://packages.docker.com/caas/ucp_images_2.2.16.tar.gz
|
||||
- description: "2.2.16 IBM Z"
|
||||
|
@ -219,6 +245,8 @@
|
|||
- product: "dtr"
|
||||
version: "2.6"
|
||||
tar-files:
|
||||
- description: "DTR 2.6.3 Linux x86"
|
||||
url: https://packages.docker.com/caas/dtr_images_2.6.3.tar.gz
|
||||
- description: "DTR 2.6.2 Linux x86"
|
||||
url: https://packages.docker.com/caas/dtr_images_2.6.2.tar.gz
|
||||
- description: "DTR 2.6.1 Linux x86"
|
||||
|
@ -228,6 +256,8 @@
|
|||
- product: "dtr"
|
||||
version: "2.5"
|
||||
tar-files:
|
||||
- description: "DTR 2.5.9 Linux x86"
|
||||
url: https://packages.docker.com/caas/dtr_images_2.5.9.tar.gz
|
||||
- description: "DTR 2.5.8 Linux x86"
|
||||
url: https://packages.docker.com/caas/dtr_images_2.5.8.tar.gz
|
||||
- description: "DTR 2.5.7 Linux x86"
|
||||
|
@ -247,6 +277,8 @@
|
|||
- product: "dtr"
|
||||
version: "2.4"
|
||||
tar-files:
|
||||
- description: "DTR 2.4.10 Linux x86"
|
||||
url: https://packages.docker.com/caas/dtr_images_2.4.10.tar.gz
|
||||
- description: "DTR 2.4.9 Linux x86"
|
||||
url: https://packages.docker.com/caas/dtr_images_2.4.9.tar.gz
|
||||
- description: "DTR 2.4.8 Linux x86"
|
||||
|
@ -284,6 +316,8 @@
|
|||
- product: "dtr"
|
||||
version: "2.3"
|
||||
tar-files:
|
||||
- description: "DTR 2.3.11"
|
||||
url: https://packages.docker.com/caas/dtr_images_2.3.11.tar.gz
|
||||
- description: "DTR 2.3.10"
|
||||
url: https://packages.docker.com/caas/dtr_images_2.3.10.tar.gz
|
||||
- description: "DTR 2.3.9"
|
||||
|
|
|
@ -35,6 +35,7 @@ examples: |-
|
|||
Images 5 2 16.43 MB 11.63 MB (70%)
|
||||
Containers 2 0 212 B 212 B (100%)
|
||||
Local Volumes 2 1 36 B 0 B (0%)
|
||||
Build Cache 0 0 0B 0B
|
||||
```
|
||||
|
||||
A more detailed view can be requested using the `-v, --verbose` flag:
|
||||
|
@ -62,6 +63,14 @@ examples: |-
|
|||
NAME LINKS SIZE
|
||||
07c7bdf3e34ab76d921894c2b834f073721fccfbbcba792aa7648e3a7a664c2e 2 36 B
|
||||
my-named-vol 0 0 B
|
||||
|
||||
Build cache usage: 0B
|
||||
|
||||
|
||||
CACHE ID CACHE TYPE SIZE CREATED LAST USED USAGE SHARED
|
||||
0d8ab63ff30d regular 4.34MB 7 days ago 0 true
|
||||
189876ac9226 regular 11.5MB 7 days ago 0 true
|
||||
|
||||
```
|
||||
|
||||
* `SHARED SIZE` is the amount of space that an image shares with another one (i.e. their common data)
|
||||
|
|
142
_data/toc.yaml
|
@ -295,6 +295,10 @@ guides:
|
|||
- path: /config/containers/logging/configure/
|
||||
title: Configuring default drivers
|
||||
nosync: true
|
||||
- sectiontitle: Work with external tools
|
||||
section:
|
||||
- path: /config/thirdparty/
|
||||
title: Third-party monitoring tools
|
||||
- path: /config/thirdparty/prometheus/
|
||||
title: Collect Docker metrics with Prometheus
|
||||
- sectiontitle: Configure containers
|
||||
|
@ -536,6 +540,12 @@ reference:
|
|||
title: docker attach
|
||||
- path: /engine/reference/commandline/build/
|
||||
title: docker build
|
||||
- sectiontitle: docker builder *
|
||||
section:
|
||||
- path: /engine/reference/commandline/builder/
|
||||
title: docker builder
|
||||
- path: /engine/reference/commandline/builder_prune/
|
||||
title: docker builder prune
|
||||
- sectiontitle: docker checkpoint *
|
||||
section:
|
||||
- path: /engine/reference/commandline/checkpoint/
|
||||
|
@ -1186,7 +1196,7 @@ manuals:
|
|||
title: Using UCP cluster metrics with Prometheus
|
||||
- path: /ee/ucp/admin/configure/configure-rbac-kube/
|
||||
title: Configure native Kubernetes role-based access control
|
||||
- path: /ee/ucp/admin/configure/create-audit-logs/
|
||||
- path: /ee/ucp/admin/configure/enable-audit-logging/
|
||||
title: Create UCP audit logs
|
||||
- path: /ee/ucp/admin/configure/enable-saml-authentication/
|
||||
title: Enable SAML authentication
|
||||
|
@ -1224,8 +1234,6 @@ manuals:
|
|||
title: Join Windows worker nodes to your cluster
|
||||
- path: /ee/ucp/admin/configure/join-nodes/use-a-load-balancer/
|
||||
title: Use a load balancer
|
||||
- path: /ee/ucp/admin/configure/integrate-with-multiple-registries/
|
||||
title: Integrate with multiple registries
|
||||
- path: /ee/ucp/admin/configure/deploy-route-reflectors/
|
||||
title: Improve network performance with Route Reflectors
|
||||
- sectiontitle: Monitor and troubleshoot
|
||||
|
@ -1271,8 +1279,6 @@ manuals:
|
|||
title: Isolate nodes
|
||||
- path: /ee/ucp/authorization/pull-images/
|
||||
title: Allow users to pull images
|
||||
- path: /ee/ucp/authorization/migrate-kubernetes-roles/
|
||||
title: Migrate Kubernetes roles to Docker EE authorization
|
||||
- path: /ee/ucp/authorization/ee-standard/
|
||||
title: Docker EE Standard use case
|
||||
- path: /ee/ucp/authorization/ee-advanced/
|
||||
|
@ -1345,10 +1351,6 @@ manuals:
|
|||
section:
|
||||
- title: Access Kubernetes Resources
|
||||
path: /ee/ucp/kubernetes/kube-resources/
|
||||
- title: Use NFS persistent storage
|
||||
path: /ee/ucp/admin/configure/use-nfs-volumes/
|
||||
- title: Configure AWS EBS Storage for Kubernetes
|
||||
path: /ee/ucp/kubernetes/configure-aws-storage/
|
||||
- title: Deploy a workload
|
||||
path: /ee/ucp/kubernetes/
|
||||
- title: Deploy a Compose-based app
|
||||
|
@ -1361,6 +1363,12 @@ manuals:
|
|||
path: /ee/ucp/kubernetes/install-cni-plugin/
|
||||
- title: Kubernetes network encryption
|
||||
path: /ee/ucp/kubernetes/kubernetes-network-encryption/
|
||||
- sectiontitle: Persistent Storage
|
||||
section:
|
||||
- title: Use NFS storage
|
||||
path: /ee/ucp/kubernetes/storage/use-nfs-volumes/
|
||||
- title: Use AWS EBS Storage
|
||||
path: /ee/ucp/kubernetes/storage/configure-aws-storage/
|
||||
- title: API reference
|
||||
path: /reference/ucp/3.1/api/
|
||||
nosync: true
|
||||
|
@ -1436,7 +1444,7 @@ manuals:
|
|||
section:
|
||||
- path: /datacenter/ucp/3.0/guides/admin/monitor-and-troubleshoot/
|
||||
title: Monitor the cluster status
|
||||
- path: /datacenter/ucp/3.0/admin/monitor-and-troubleshoot/troubleshoot-node-messages/
|
||||
- path: /datacenter/ucp/3.0/guides/admin/monitor-and-troubleshoot/troubleshoot-node-messages/
|
||||
title: Troubleshoot node messages
|
||||
- path: /datacenter/ucp/3.0/guides/admin/monitor-and-troubleshoot/troubleshoot-with-logs/
|
||||
title: Troubleshoot with logs
|
||||
|
@ -1508,27 +1516,75 @@ manuals:
|
|||
title: Web-based access
|
||||
- path: /datacenter/ucp/3.0/guides/user/access-ucp/cli-based-access/
|
||||
title: CLI-based access
|
||||
- sectiontitle: Deploy an application
|
||||
- path: /datacenter/ucp/3.0/guides/user/access-ucp/kubectl/
|
||||
title: Install the Kubernetes CLI
|
||||
- sectiontitle: Deploy apps with Swarm
|
||||
section:
|
||||
- path: /datacenter/ucp/3.0/guides/user/services/deploy-a-service/
|
||||
title: Deploy a service
|
||||
- path: /datacenter/ucp/3.0/guides/user/services/use-domain-names-to-access-services/
|
||||
title: Use domain names to access services
|
||||
- path: /datacenter/ucp/3.0/guides/user/services/
|
||||
title: Deploy an app from the UI
|
||||
- path: /datacenter/ucp/3.0/guides/user/services/deploy-app-cli/
|
||||
title: Deploy an app from the CLI
|
||||
- path: /datacenter/ucp/3.0/guides/user/services/deploy-stack-to-collection/
|
||||
- path: /datacenter/ucp/3.0/guides/user/swarm/
|
||||
title: Deploy a single service
|
||||
- path: /datacenter/ucp/3.0/guides/user/swarm/deploy-multi-service-app/
|
||||
title: Deploy a multi-service app
|
||||
- path: /datacenter/ucp/3.0/guides/user/swarm/deploy-to-collection/
|
||||
title: Deploy application resources to a collection
|
||||
- sectiontitle: Secrets
|
||||
- path: /datacenter/ucp/3.0/guides/user/swarm/use-secrets/
|
||||
title: Use secrets in your services
|
||||
- sectiontitle: Layer 7 routing
|
||||
section:
|
||||
- path: /datacenter/ucp/3.0/guides/user/interlock/
|
||||
title: Overview
|
||||
- path: /datacenter/ucp/3.0/guides/user/interlock/architecture/
|
||||
title: Architecture
|
||||
- sectiontitle: Deploy
|
||||
section:
|
||||
- title: Simple deployment
|
||||
path: /datacenter/ucp/3.0/guides/user/interlock/deploy/
|
||||
- title: Configure your deployment
|
||||
path: /datacenter/ucp/3.0/guides/user/interlock/deploy/configure/
|
||||
- title: Production deployment
|
||||
path: /datacenter/ucp/3.0/guides/user/interlock/deploy/production/
|
||||
- title: Host mode networking
|
||||
path: /datacenter/ucp/3.0/guides/user/interlock/deploy/host-mode-networking/
|
||||
- title: Configuration reference
|
||||
path: /datacenter/ucp/3.0/guides/user/interlock/deploy/configuration-reference/
|
||||
- sectiontitle: Route traffic to services
|
||||
section:
|
||||
- title: Simple swarm service
|
||||
path: /datacenter/ucp/3.0/guides/user/interlock/usage/
|
||||
- title: Set a default service
|
||||
path: /datacenter/ucp/3.0/guides/user/interlock/usage/default-service/
|
||||
- title: Applications with TLS
|
||||
path: /datacenter/ucp/3.0/guides/user/interlock/usage/tls/
|
||||
- title: Application redirects
|
||||
path: /datacenter/ucp/3.0/guides/user/interlock/usage/redirects/
|
||||
- title: Persistent (sticky) sessions
|
||||
path: /datacenter/ucp/3.0/guides/user/interlock/usage/sessions/
|
||||
- title: Websockets
|
||||
path: /datacenter/ucp/3.0/guides/user/interlock/usage/websockets/
|
||||
- title: Canary application instances
|
||||
path: /datacenter/ucp/3.0/guides/user/interlock/usage/canary/
|
||||
- title: Service clusters
|
||||
path: /datacenter/ucp/3.0/guides/user/interlock/usage/service-clusters/
|
||||
- title: Context/Path based routing
|
||||
path: /datacenter/ucp/3.0/guides/user/interlock/usage/context/
|
||||
- title: Service labels reference
|
||||
path: /datacenter/ucp/3.0/guides/user/interlock/usage/labels-reference/
|
||||
- title: Layer 7 routing upgrade
|
||||
path: /datacenter/ucp/3.0/guides/user/interlock/upgrade/
|
||||
- sectiontitle: Deploy apps with Kubernetes
|
||||
section:
|
||||
- path: /datacenter/ucp/3.0/guides/user/secrets/
|
||||
title: Manage secrets
|
||||
- path: /datacenter/ucp/3.0/guides/user/secrets/grant-revoke-access/
|
||||
title: Grant access to secrets
|
||||
- title: Deploy a workload
|
||||
path: /datacenter/ucp/3.0/guides/user/kubernetes/
|
||||
- title: Deploy a Compose-based app
|
||||
path: /datacenter/ucp/3.0/guides/user/kubernetes/deploy-with-compose/
|
||||
- title: Deploy an ingress controller
|
||||
path: /datacenter/ucp/3.0/guides/user/kubernetes/layer-7-routing/
|
||||
- title: Create a service account for a Kubernetes app
|
||||
path: /datacenter/ucp/3.0/guides/user/kubernetes/create-service-account/
|
||||
- title: Install a CNI plugin
|
||||
path: /datacenter/ucp/3.0/guides/user/kubernetes/install-cni-plugin/
|
||||
- path: /datacenter/ucp/3.0/reference/api/
|
||||
title: API reference
|
||||
- path: /ee/ucp/release-notes/
|
||||
- path: /ee/ucp/release-notes/#version-30
|
||||
title: Release notes
|
||||
nosync: true
|
||||
- path: /datacenter/ucp/3.0/guides/get-support/
|
||||
|
@ -1579,6 +1635,8 @@ manuals:
|
|||
title: Restrict services to worker nodes
|
||||
- path: /datacenter/ucp/2.2/guides/admin/configure/run-only-the-images-you-trust/
|
||||
title: Run only the images you trust
|
||||
- path: /datacenter/ucp/2.2/guides/admin/configure/use-trusted-images-for-ci/
|
||||
title: Use trusted images for continuous integration
|
||||
- path: /datacenter/ucp/2.2/guides/admin/configure/scale-your-cluster/
|
||||
title: Scale your cluster
|
||||
- path: /datacenter/ucp/2.2/guides/admin/configure/set-session-timeout/
|
||||
|
@ -1693,7 +1751,7 @@ manuals:
|
|||
title: Grant access to secrets
|
||||
- path: /datacenter/ucp/2.2/reference/api/
|
||||
title: API reference
|
||||
- path: /ee/ucp/release-notes/
|
||||
- path: /ee/ucp/release-notes/#version-22
|
||||
title: Release notes
|
||||
nosync: true
|
||||
- path: /datacenter/ucp/2.2/guides/get-support/
|
||||
|
@ -1744,6 +1802,8 @@ manuals:
|
|||
title: Use domain names to access services
|
||||
- path: /datacenter/ucp/2.1/guides/admin/configure/run-only-the-images-you-trust/
|
||||
title: Run only the images you trust
|
||||
- path: /datacenter/ucp/2.1/guides/admin/configure/use-trusted-images-for-ci/
|
||||
title: Use trusted images for continuous integration
|
||||
- path: /datacenter/ucp/2.1/guides/admin/configure/integrate-with-dtr/
|
||||
title: Integrate with Docker Trusted Registry
|
||||
- path: /datacenter/ucp/2.1/guides/admin/configure/external-auth/
|
||||
|
@ -2199,10 +2259,8 @@ manuals:
|
|||
section:
|
||||
- path: /ee/dtr/user/manage-images/sign-images/
|
||||
title: Sign an image
|
||||
- path: /ee/dtr/user/manage-images/sign-images/delegate-image-signing/
|
||||
title: Delegate image signing
|
||||
- path: /ee/dtr/user/manage-images/sign-images/manage-trusted-repositories/
|
||||
title: Manage trusted repositories
|
||||
- path: /ee/dtr/user/manage-images/sign-images/trust-with-remote-ucp/
|
||||
title: Trust with a Remote UCP
|
||||
- sectiontitle: Promotion policies and mirroring
|
||||
section:
|
||||
- title: Overview
|
||||
|
@ -3433,28 +3491,6 @@ manuals:
|
|||
nosync: true
|
||||
- sectiontitle: Superseded products and tools
|
||||
section:
|
||||
- sectiontitle: Commercially supported Docker Engine
|
||||
section:
|
||||
- sectiontitle: 1.13
|
||||
section:
|
||||
- path: /cs-engine/1.13/
|
||||
title: Install
|
||||
- path: /cs-engine/1.13/upgrade/
|
||||
title: Upgrade
|
||||
- path: /cs-engine/1.13/release-notes/
|
||||
title: Release notes
|
||||
- sectiontitle: 1.12
|
||||
section:
|
||||
- path: /cs-engine/1.12/
|
||||
title: Install
|
||||
- path: /cs-engine/1.12/upgrade/
|
||||
title: Upgrade
|
||||
- sectiontitle: Release notes
|
||||
section:
|
||||
- path: /cs-engine/1.12/release-notes/release-notes/
|
||||
title: CS Engine release notes
|
||||
- path: /cs-engine/1.12/release-notes/prior-release-notes/
|
||||
title: Prior CS Engine release notes
|
||||
- sectiontitle: Docker Swarm (standalone)
|
||||
section:
|
||||
- path: /swarm/overview/
|
||||
|
|
|
@ -8,7 +8,7 @@ your Compose file and their name start with the `x-` character sequence.
|
|||
> (for the 2.x series), extension fields are also allowed at the root
|
||||
> of service, volume, network, config and secret definitions.
|
||||
|
||||
```none
|
||||
```yaml
|
||||
version: '3.4'
|
||||
x-custom:
|
||||
items:
|
||||
|
@ -24,7 +24,7 @@ inserted in your resource definitions using [YAML anchors](http://www.yaml.org/s
|
|||
For example, if you want several of your services to use the same logging
|
||||
configuration:
|
||||
|
||||
```none
|
||||
```yaml
|
||||
logging:
|
||||
options:
|
||||
max-size: '12m'
|
||||
|
@ -34,7 +34,7 @@ logging:
|
|||
|
||||
You may write your Compose file as follows:
|
||||
|
||||
```none
|
||||
```yaml
|
||||
version: '3.4'
|
||||
x-logging:
|
||||
&default-logging
|
||||
|
@ -55,7 +55,7 @@ services:
|
|||
It is also possible to partially override values in extension fields using
|
||||
the [YAML merge type](http://yaml.org/type/merge.html). For example:
|
||||
|
||||
```none
|
||||
```yaml
|
||||
version: '3.4'
|
||||
x-volumes:
|
||||
&default-volume
|
||||
|
|
|
@ -3,8 +3,10 @@ variable values from the shell environment in which `docker-compose` is run. For
|
|||
example, suppose the shell contains `POSTGRES_VERSION=9.3` and you supply this
|
||||
configuration:
|
||||
|
||||
db:
|
||||
image: "postgres:${POSTGRES_VERSION}"
|
||||
```yaml
|
||||
db:
|
||||
image: "postgres:${POSTGRES_VERSION}"
|
||||
```
|
||||
|
||||
When you run `docker-compose up` with this configuration, Compose looks for the
|
||||
`POSTGRES_VERSION` environment variable in the shell and substitutes its value
|
||||
|
@ -47,9 +49,11 @@ dollar sign. This also prevents Compose from interpolating a value, so a `$$`
|
|||
allows you to refer to environment variables that you don't want processed by
|
||||
Compose.
|
||||
|
||||
web:
|
||||
build: .
|
||||
command: "$$VAR_NOT_INTERPOLATED_BY_COMPOSE"
|
||||
```yaml
|
||||
web:
|
||||
build: .
|
||||
command: "$$VAR_NOT_INTERPOLATED_BY_COMPOSE"
|
||||
```
|
||||
|
||||
If you forget and use a single dollar sign (`$`), Compose interprets the value
|
||||
as an environment variable and warns you:
|
||||
|
|
|
@ -47,6 +47,7 @@
|
|||
<li><a href="https://docs.docker.com/">Documentation</a></li>
|
||||
<li><a href="https://www.docker.com/docker">Learn</a></li>
|
||||
<li><a href="https://blog.docker.com" target="_blank">Blog</a></li>
|
||||
<li><a href="https://engineering.docker.com" target="_blank">Engineering Blog</a></li>
|
||||
<li><a href="https://training.docker.com/" target="_blank">Training</a></li>
|
||||
<li><a href="https://success.docker.com/support">Support</a></li>
|
||||
<li><a href="https://success.docker.com/kbase">Knowledge Base</a></li>
|
||||
|
|
|
@ -0,0 +1,49 @@
|
|||
#!/usr/bin/env bash
|
||||
|
||||
# Get the Library docs
|
||||
svn co https://github.com/docker-library/docs/trunk ./_samples/library || (echo "Failed library download" && exit 1)
|
||||
# Remove symlinks to maintainer.md because they break jekyll and we don't use em
|
||||
find ./_samples/library -maxdepth 9 -type l -delete
|
||||
# Loop through the README.md files, turn them into rich index.md files
|
||||
FILES=$(find ./_samples/library -type f -name 'README.md')
|
||||
for f in ${FILES}
|
||||
do
|
||||
curdir=$(dirname "${f}")
|
||||
justcurdir="${curdir##*/}"
|
||||
if [ -e ${curdir}/README-short.txt ]
|
||||
then
|
||||
# shortrm=$(<${curdir}/README-short.txt)
|
||||
shortrm=$(cat ${curdir}/README-short.txt)
|
||||
fi
|
||||
echo "Adding front-matter to ${f} ..."
|
||||
echo --- >> ${curdir}/front-matter.txt
|
||||
echo title: "${justcurdir}" >> ${curdir}/front-matter.txt
|
||||
echo keywords: library, sample, ${justcurdir} >> ${curdir}/front-matter.txt
|
||||
echo repo: "${justcurdir}" >> ${curdir}/front-matter.txt
|
||||
echo layout: docs >> ${curdir}/front-matter.txt
|
||||
echo permalink: /samples/library/${justcurdir}/ >> ${curdir}/front-matter.txt
|
||||
echo redirect_from: >> ${curdir}/front-matter.txt
|
||||
echo - /samples/${justcurdir}/ >> ${curdir}/front-matter.txt
|
||||
echo description: \| >> ${curdir}/front-matter.txt
|
||||
echo \ \ ${shortrm} >> ${curdir}/front-matter.txt
|
||||
echo --- >> ${curdir}/front-matter.txt
|
||||
echo >> ${curdir}/front-matter.txt
|
||||
echo ${shortrm} >> ${curdir}/front-matter.txt
|
||||
echo >> ${curdir}/front-matter.txt
|
||||
if [ -e ${curdir}/github-repo ]
|
||||
then
|
||||
# gitrepo=$(<${curdir}/github-repo)
|
||||
gitrepo=$(cat ${curdir}/github-repo)
|
||||
echo >> ${curdir}/front-matter.txt
|
||||
echo GitHub repo: \["${gitrepo}"\]\("${gitrepo}"\)\{: target="_blank"\} >> ${curdir}/front-matter.txt
|
||||
echo >> ${curdir}/front-matter.txt
|
||||
fi
|
||||
cat ${curdir}/front-matter.txt ./_samples/boilerplate.txt > ${curdir}/header.txt
|
||||
echo {% raw %} >> ${curdir}/header.txt
|
||||
cat ${curdir}/header.txt ${curdir}/README.md > ${curdir}/index.md
|
||||
echo {% endraw %} >> ${curdir}/index.md
|
||||
rm -rf ${curdir}/front-matter.txt
|
||||
rm -rf ${curdir}/header.txt
|
||||
done
|
||||
|
||||
rm ./_samples/library/index.md
|
|
@ -29,28 +29,11 @@ while getopts ":hl" opt; do
|
|||
done
|
||||
|
||||
# Do some sanity-checking to make sure we are running this from the right place
|
||||
if [ $LOCAL -eq 1 ]; then
|
||||
SOURCE="."
|
||||
if ! [ -f _config.yml ]; then
|
||||
echo "Could not find _config.yml. We may not be in the right place. Bailing."
|
||||
exit 1
|
||||
fi
|
||||
else
|
||||
SOURCE="md_source"
|
||||
if ! [ -d md_source ]; then
|
||||
echo "Could not find md_source directory. We may not be running in the right place. Bailing."
|
||||
exit 1
|
||||
fi
|
||||
if ! [ -f _config.yml ]; then
|
||||
echo "Could not find _config.yml. We may not be in the right place. Bailing."
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# Reasonable default to find the Markdown files
|
||||
if [ -z "$SOURCE" ]; then
|
||||
echo "No source passed in, assuming md_source/..."
|
||||
SOURCE="md_source"
|
||||
fi
|
||||
|
||||
echo "Operating on contents of $SOURCE"
|
||||
|
||||
# Parse some variables from _config.yml and make them available to this script
|
||||
# This only finds top-level variables with _version in them that don't have any
|
||||
# leading space. This is brittle!
|
||||
|
@ -61,10 +44,10 @@ while read i; do
|
|||
varvalue=$(echo "$i" | sed 's/"//g' | awk -F ':' {'print $2'} | tr -d '[:space:]')
|
||||
echo "Setting \$${varname} to $varvalue"
|
||||
declare "$varname=$varvalue"
|
||||
done < <(cat ${SOURCE}/_config.yml |grep '_version:' |grep '^[a-z].*')
|
||||
done < <(cat ./_config.yml |grep '_version:' |grep '^[a-z].*')
|
||||
|
||||
# Replace variable in toc.yml with value from above
|
||||
sedi "s/{{ site.latest_engine_api_version }}/$latest_engine_api_version/g" ${SOURCE}/_data/toc.yaml
|
||||
sedi "s/{{ site.latest_engine_api_version }}/$latest_engine_api_version/g" ./_data/toc.yaml
|
||||
|
||||
# Engine stable
|
||||
ENGINE_SVN_BRANCH="branches/18.09"
|
||||
|
@ -75,94 +58,42 @@ DISTRIBUTION_SVN_BRANCH="branches/release/2.6"
|
|||
DISTRIBUTION_BRANCH="release/2.6"
|
||||
|
||||
# Directories to get via SVN. We use this because you can't use git to clone just a portion of a repository
|
||||
svn co https://github.com/docker/docker-ce/"$ENGINE_SVN_BRANCH"/components/cli/docs/extend ${SOURCE}/engine/extend || (echo "Failed engine/extend download" && exit -1)
|
||||
svn co https://github.com/docker/docker-ce/"$ENGINE_SVN_BRANCH"/components/engine/docs/api ${SOURCE}/engine/api || (echo "Failed engine/api download" && exit -1) # This will only get you the old API MD files 1.18 through 1.24
|
||||
svn co https://github.com/docker/distribution/"$DISTRIBUTION_SVN_BRANCH"/docs/spec ${SOURCE}/registry/spec || (echo "Failed registry/spec download" && exit -1)
|
||||
svn co https://github.com/docker/compliance/trunk/docs/compliance ${SOURCE}/compliance || (echo "Failed docker/compliance download" && exit -1)
|
||||
|
||||
# Get the Library docs
|
||||
svn co https://github.com/docker-library/docs/trunk ${SOURCE}/_samples/library || (echo "Failed library download" && exit -1)
|
||||
# Remove symlinks to maintainer.md because they break jekyll and we don't use em
|
||||
find ${SOURCE}/_samples/library -maxdepth 9 -type l -delete
|
||||
# Loop through the README.md files, turn them into rich index.md files
|
||||
FILES=$(find ${SOURCE}/_samples/library -type f -name 'README.md')
|
||||
for f in $FILES
|
||||
do
|
||||
curdir=$(dirname "${f}")
|
||||
justcurdir="${curdir##*/}"
|
||||
if [ -e ${curdir}/README-short.txt ]
|
||||
then
|
||||
# shortrm=$(<${curdir}/README-short.txt)
|
||||
shortrm=$(cat ${curdir}/README-short.txt)
|
||||
fi
|
||||
echo "Adding front-matter to ${f} ..."
|
||||
echo --- >> ${curdir}/front-matter.txt
|
||||
echo title: "${justcurdir}" >> ${curdir}/front-matter.txt
|
||||
echo keywords: library, sample, ${justcurdir} >> ${curdir}/front-matter.txt
|
||||
echo repo: "${justcurdir}" >> ${curdir}/front-matter.txt
|
||||
echo layout: docs >> ${curdir}/front-matter.txt
|
||||
echo permalink: /samples/library/${justcurdir}/ >> ${curdir}/front-matter.txt
|
||||
echo redirect_from: >> ${curdir}/front-matter.txt
|
||||
echo - /samples/${justcurdir}/ >> ${curdir}/front-matter.txt
|
||||
echo description: \| >> ${curdir}/front-matter.txt
|
||||
echo \ \ ${shortrm} >> ${curdir}/front-matter.txt
|
||||
echo --- >> ${curdir}/front-matter.txt
|
||||
echo >> ${curdir}/front-matter.txt
|
||||
echo ${shortrm} >> ${curdir}/front-matter.txt
|
||||
echo >> ${curdir}/front-matter.txt
|
||||
if [ -e ${curdir}/github-repo ]
|
||||
then
|
||||
# gitrepo=$(<${curdir}/github-repo)
|
||||
gitrepo=$(cat ${curdir}/github-repo)
|
||||
echo >> ${curdir}/front-matter.txt
|
||||
echo GitHub repo: \["${gitrepo}"\]\("${gitrepo}"\)\{: target="_blank"\} >> ${curdir}/front-matter.txt
|
||||
echo >> ${curdir}/front-matter.txt
|
||||
fi
|
||||
cat ${curdir}/front-matter.txt ${SOURCE}/_samples/boilerplate.txt > ${curdir}/header.txt
|
||||
echo {% raw %} >> ${curdir}/header.txt
|
||||
cat ${curdir}/header.txt ${curdir}/README.md > ${curdir}/index.md
|
||||
echo {% endraw %} >> ${curdir}/index.md
|
||||
rm -rf ${curdir}/front-matter.txt
|
||||
rm -rf ${curdir}/header.txt
|
||||
done
|
||||
svn co https://github.com/docker/docker-ce/"$ENGINE_SVN_BRANCH"/components/cli/docs/extend ./engine/extend || (echo "Failed engine/extend download" && exit 1)
|
||||
svn co https://github.com/docker/docker-ce/"$ENGINE_SVN_BRANCH"/components/engine/docs/api ./engine/api || (echo "Failed engine/api download" && exit 1) # This will only get you the old API MD files 1.18 through 1.24
|
||||
svn co https://github.com/docker/distribution/"$DISTRIBUTION_SVN_BRANCH"/docs/spec ./registry/spec || (echo "Failed registry/spec download" && exit 1)
|
||||
svn co https://github.com/docker/compliance/trunk/docs/compliance ./compliance || (echo "Failed docker/compliance download" && exit 1)
|
||||
|
||||
# Get the Engine APIs that are in Swagger
|
||||
# Be careful with the locations on Github for these
|
||||
wget -O ${SOURCE}/engine/api/v1.25/swagger.yaml https://raw.githubusercontent.com/docker/docker/v1.13.0/api/swagger.yaml || (echo "Failed 1.25 swagger download" && exit -1)
|
||||
wget -O ${SOURCE}/engine/api/v1.26/swagger.yaml https://raw.githubusercontent.com/docker/docker/v17.03.0-ce/api/swagger.yaml || (echo "Failed 1.26 swagger download" && exit -1)
|
||||
wget -O ${SOURCE}/engine/api/v1.27/swagger.yaml https://raw.githubusercontent.com/docker/docker/v17.03.1-ce/api/swagger.yaml || (echo "Failed 1.27 swagger download" && exit -1)
|
||||
|
||||
# Get the Edge API Swagger
|
||||
# When you change this you need to make sure to copy the previous
|
||||
# directory into a new one in the docs git and change the index.html
|
||||
wget -O ${SOURCE}/engine/api/v1.28/swagger.yaml https://raw.githubusercontent.com/docker/docker/v17.04.0-ce/api/swagger.yaml || (echo "Failed 1.28 swagger download or the 1.28 directory doesn't exist" && exit -1)
|
||||
wget -O ${SOURCE}/engine/api/v1.29/swagger.yaml https://raw.githubusercontent.com/docker/docker/17.05.x/api/swagger.yaml || (echo "Failed 1.29 swagger download or the 1.29 directory doesn't exist" && exit -1)
|
||||
wget --quiet --directory-prefix=./engine/api/v1.25/ https://raw.githubusercontent.com/docker/docker/v1.13.0/api/swagger.yaml || (echo "Failed 1.25 swagger download" && exit 1)
|
||||
wget --quiet --directory-prefix=./engine/api/v1.26/ https://raw.githubusercontent.com/docker/docker/v17.03.0-ce/api/swagger.yaml || (echo "Failed 1.26 swagger download" && exit 1)
|
||||
wget --quiet --directory-prefix=./engine/api/v1.27/ https://raw.githubusercontent.com/docker/docker/v17.03.1-ce/api/swagger.yaml || (echo "Failed 1.27 swagger download" && exit 1)
|
||||
wget --quiet --directory-prefix=./engine/api/v1.28/ https://raw.githubusercontent.com/docker/docker/v17.04.0-ce/api/swagger.yaml || (echo "Failed 1.28 swagger download" && exit 1)
|
||||
wget --quiet --directory-prefix=./engine/api/v1.29/ https://raw.githubusercontent.com/docker/docker/17.05.x/api/swagger.yaml || (echo "Failed 1.29 swagger download" && exit 1)
|
||||
# New location for swagger.yaml for 17.06+
|
||||
wget -O ${SOURCE}/engine/api/v1.30/swagger.yaml https://raw.githubusercontent.com/docker/docker-ce/17.06/components/engine/api/swagger.yaml || (echo "Failed 1.30 swagger download or the 1.30 directory doesn't exist" && exit -1)
|
||||
wget -O ${SOURCE}/engine/api/v1.31/swagger.yaml https://raw.githubusercontent.com/docker/docker-ce/17.07/components/engine/api/swagger.yaml || (echo "Failed 1.31 swagger download or the 1.31 directory doesn't exist" && exit -1)
|
||||
wget -O ${SOURCE}/engine/api/v1.32/swagger.yaml https://raw.githubusercontent.com/docker/docker-ce/17.09/components/engine/api/swagger.yaml || (echo "Failed 1.32 swagger download or the 1.32 directory doesn't exist" && exit -1)
|
||||
wget -O ${SOURCE}/engine/api/v1.33/swagger.yaml https://raw.githubusercontent.com/docker/docker-ce/17.10/components/engine/api/swagger.yaml || (echo "Failed 1.33 swagger download or the 1.33 directory doesn't exist" && exit -1)
|
||||
wget -O ${SOURCE}/engine/api/v1.34/swagger.yaml https://raw.githubusercontent.com/docker/docker-ce/17.11/components/engine/api/swagger.yaml || (echo "Failed 1.34 swagger download or the 1.34 directory doesn't exist" && exit -1)
|
||||
wget -O ${SOURCE}/engine/api/v1.35/swagger.yaml https://raw.githubusercontent.com/docker/docker-ce/17.12/components/engine/api/swagger.yaml || (echo "Failed 1.35 swagger download or the 1.35 directory doesn't exist" && exit -1)
|
||||
wget -O ${SOURCE}/engine/api/v1.36/swagger.yaml https://raw.githubusercontent.com/docker/docker-ce/18.02/components/engine/api/swagger.yaml || (echo "Failed 1.36 swagger download or the 1.36 directory doesn't exist" && exit -1)
|
||||
wget -O ${SOURCE}/engine/api/v1.37/swagger.yaml https://raw.githubusercontent.com/docker/docker-ce/18.03/components/engine/api/swagger.yaml || (echo "Failed 1.37 swagger download or the 1.37 directory doesn't exist" && exit -1)
|
||||
wget -O ${SOURCE}/engine/api/v1.38/swagger.yaml https://raw.githubusercontent.com/docker/docker-ce/18.06/components/engine/api/swagger.yaml || (echo "Failed 1.38 swagger download or the 1.38 directory doesn't exist" && exit -1)
|
||||
wget -O ${SOURCE}/engine/api/v1.39/swagger.yaml https://raw.githubusercontent.com/docker/docker-ce/18.09/components/engine/api/swagger.yaml || (echo "Failed 1.39 swagger download or the 1.39 directory doesn't exist" && exit -1)
|
||||
wget --quiet --directory-prefix=./engine/api/v1.30/ https://raw.githubusercontent.com/docker/docker-ce/17.06/components/engine/api/swagger.yaml || (echo "Failed 1.30 swagger download" && exit 1)
|
||||
wget --quiet --directory-prefix=./engine/api/v1.31/ https://raw.githubusercontent.com/docker/docker-ce/17.07/components/engine/api/swagger.yaml || (echo "Failed 1.31 swagger download" && exit 1)
|
||||
wget --quiet --directory-prefix=./engine/api/v1.32/ https://raw.githubusercontent.com/docker/docker-ce/17.09/components/engine/api/swagger.yaml || (echo "Failed 1.32 swagger download" && exit 1)
|
||||
wget --quiet --directory-prefix=./engine/api/v1.33/ https://raw.githubusercontent.com/docker/docker-ce/17.10/components/engine/api/swagger.yaml || (echo "Failed 1.33 swagger download" && exit 1)
|
||||
wget --quiet --directory-prefix=./engine/api/v1.34/ https://raw.githubusercontent.com/docker/docker-ce/17.11/components/engine/api/swagger.yaml || (echo "Failed 1.34 swagger download" && exit 1)
|
||||
wget --quiet --directory-prefix=./engine/api/v1.35/ https://raw.githubusercontent.com/docker/docker-ce/17.12/components/engine/api/swagger.yaml || (echo "Failed 1.35 swagger download" && exit 1)
|
||||
wget --quiet --directory-prefix=./engine/api/v1.36/ https://raw.githubusercontent.com/docker/docker-ce/18.02/components/engine/api/swagger.yaml || (echo "Failed 1.36 swagger download" && exit 1)
|
||||
wget --quiet --directory-prefix=./engine/api/v1.37/ https://raw.githubusercontent.com/docker/docker-ce/18.03/components/engine/api/swagger.yaml || (echo "Failed 1.37 swagger download" && exit 1)
|
||||
wget --quiet --directory-prefix=./engine/api/v1.38/ https://raw.githubusercontent.com/docker/docker-ce/18.06/components/engine/api/swagger.yaml || (echo "Failed 1.38 swagger download" && exit 1)
|
||||
wget --quiet --directory-prefix=./engine/api/v1.39/ https://raw.githubusercontent.com/docker/docker-ce/18.09/components/engine/api/swagger.yaml || (echo "Failed 1.39 swagger download" && exit 1)
|
||||
|
||||
# Get dockerd.md from upstream
|
||||
wget -O ${SOURCE}/engine/reference/commandline/dockerd.md https://raw.githubusercontent.com/docker/docker-ce/"$ENGINE_BRANCH"/components/cli/docs/reference/commandline/dockerd.md || (echo "Failed to fetch stable dockerd.md" && exit -1)
|
||||
|
||||
# Get a few one-off files that we use directly from upstream
|
||||
wget -O ${SOURCE}/engine/reference/builder.md https://raw.githubusercontent.com/docker/docker-ce/"$ENGINE_BRANCH"/components/cli/docs/reference/builder.md || (echo "Failed engine/reference/builder.md download" && exit -1)
|
||||
wget -O ${SOURCE}/engine/reference/run.md https://raw.githubusercontent.com/docker/docker-ce/"$ENGINE_BRANCH"/components/cli/docs/reference/run.md || (echo "Failed engine/reference/run.md download" && exit -1)
|
||||
# Adjust this one when Edge != Stable
|
||||
wget -O ${SOURCE}/edge/engine/reference/run.md https://raw.githubusercontent.com/docker/docker-ce/"$ENGINE_BRANCH"/components/cli/docs/reference/run.md || (echo "Failed engine/reference/run.md download" && exit -1)
|
||||
wget -O ${SOURCE}/engine/reference/commandline/cli.md https://raw.githubusercontent.com/docker/docker-ce/"$ENGINE_BRANCH"/components/cli/docs/reference/commandline/cli.md || (echo "Failed engine/reference/commandline/cli.md download" && exit -1)
|
||||
wget -O ${SOURCE}/engine/deprecated.md https://raw.githubusercontent.com/docker/docker-ce/"$ENGINE_BRANCH"/components/cli/docs/deprecated.md || (echo "Failed engine/deprecated.md download" && exit -1)
|
||||
wget -O ${SOURCE}/registry/configuration.md https://raw.githubusercontent.com/docker/distribution/"$DISTRIBUTION_BRANCH"/docs/configuration.md || (echo "Failed registry/configuration.md download" && exit -1)
|
||||
wget --quiet --directory-prefix=./engine/ https://raw.githubusercontent.com/docker/docker-ce/"$ENGINE_BRANCH"/components/cli/docs/deprecated.md || (echo "Failed engine/deprecated.md download" && exit 1)
|
||||
wget --quiet --directory-prefix=./engine/reference/ https://raw.githubusercontent.com/docker/docker-ce/"$ENGINE_BRANCH"/components/cli/docs/reference/builder.md || (echo "Failed engine/reference/builder.md download" && exit 1)
|
||||
wget --quiet --directory-prefix=./engine/reference/ https://raw.githubusercontent.com/docker/docker-ce/"$ENGINE_BRANCH"/components/cli/docs/reference/run.md || (echo "Failed engine/reference/run.md download" && exit 1)
|
||||
wget --quiet --directory-prefix=./engine/reference/commandline/ https://raw.githubusercontent.com/docker/docker-ce/"$ENGINE_BRANCH"/components/cli/docs/reference/commandline/cli.md || (echo "Failed engine/reference/commandline/cli.md download" && exit 1)
|
||||
wget --quiet --directory-prefix=./engine/reference/commandline/ https://raw.githubusercontent.com/docker/docker-ce/"$ENGINE_BRANCH"/components/cli/docs/reference/commandline/dockerd.md || (echo "Failed engine/reference/commandline/dockerd.md download" && exit 1)
|
||||
wget --quiet --directory-prefix=./registry/ https://raw.githubusercontent.com/docker/distribution/"$DISTRIBUTION_BRANCH"/docs/configuration.md || (echo "Failed registry/configuration.md download" && exit 1)
|
||||
|
||||
# Remove things we don't want in the build
|
||||
rm ${SOURCE}/registry/spec/api.md.tmpl
|
||||
rm -rf ${SOURCE}/apidocs/cloud-api-source
|
||||
rm -rf ${SOURCE}/tests
|
||||
rm ${SOURCE}/_samples/library/index.md
|
||||
rm ./registry/spec/api.md.tmpl
|
||||
rm -rf ./apidocs/cloud-api-source
|
||||
rm -rf ./tests
|
||||
|
|
|
@ -17,11 +17,12 @@ Make sure bash completion is installed.
|
|||
|
||||
1. On a current Linux OS (in a non-minimal installation), bash completion should be
|
||||
available.
|
||||
|
||||
2. Place the completion script in `/etc/bash_completion.d/`.
|
||||
|
||||
```shell
|
||||
sudo curl -L https://raw.githubusercontent.com/docker/compose/{{site.compose_version}}/contrib/completion/bash/docker-compose -o /etc/bash_completion.d/docker-compose
|
||||
```
|
||||
```shell
|
||||
sudo curl -L https://raw.githubusercontent.com/docker/compose/{{site.compose_version}}/contrib/completion/bash/docker-compose -o /etc/bash_completion.d/docker-compose
|
||||
```
|
||||
|
||||
### Mac
|
||||
|
||||
|
@ -32,17 +33,17 @@ sudo curl -L https://raw.githubusercontent.com/docker/compose/{{site.compose_ver
|
|||
|
||||
For example, when running this command on Mac 10.13.2, place the completion script in `/usr/local/etc/bash_completion.d/`.
|
||||
|
||||
```shell
|
||||
sudo curl -L https://raw.githubusercontent.com/docker/compose/{{site.compose_version}}/contrib/completion/bash/docker-compose -o /usr/local/etc/bash_completion.d/docker-compose
|
||||
```
|
||||
```shell
|
||||
sudo curl -L https://raw.githubusercontent.com/docker/compose/{{site.compose_version}}/contrib/completion/bash/docker-compose -o /usr/local/etc/bash_completion.d/docker-compose
|
||||
```
|
||||
|
||||
3. Add the following to your `~/.bash_profile`:
|
||||
|
||||
```shell
|
||||
if [ -f $(brew --prefix)/etc/bash_completion ]; then
|
||||
```shell
|
||||
if [ -f $(brew --prefix)/etc/bash_completion ]; then
|
||||
. $(brew --prefix)/etc/bash_completion
|
||||
fi
|
||||
```
|
||||
fi
|
||||
```
|
||||
|
||||
4. You can source your `~/.bash_profile` or launch a new terminal to utilize
|
||||
completion.
|
||||
|
@ -50,13 +51,14 @@ completion.
|
|||
##### Install via MacPorts
|
||||
|
||||
1. Run `sudo port install bash-completion` to install bash completion.
|
||||
|
||||
2. Add the following lines to `~/.bash_profile`:
|
||||
|
||||
```shell
|
||||
if [ -f /opt/local/etc/profile.d/bash_completion.sh ]; then
|
||||
```shell
|
||||
if [ -f /opt/local/etc/profile.d/bash_completion.sh ]; then
|
||||
. /opt/local/etc/profile.d/bash_completion.sh
|
||||
fi
|
||||
```
|
||||
fi
|
||||
```
|
||||
|
||||
3. You can source your `~/.bash_profile` or launch a new terminal to utilize
|
||||
completion.
|
||||
|
@ -72,34 +74,34 @@ Add `docker` and `docker-compose` to the plugins list in `~/.zshrc` to run autoc
|
|||
```shell
|
||||
plugins=(... docker docker-compose
|
||||
)
|
||||
```
|
||||
```
|
||||
|
||||
#### Without oh-my-zsh shell
|
||||
|
||||
1. Place the completion script in your `/path/to/zsh/completion` (typically `~/.zsh/completion/`):
|
||||
|
||||
```shell
|
||||
$ mkdir -p ~/.zsh/completion
|
||||
$ curl -L https://raw.githubusercontent.com/docker/compose/{{site.compose_version}}/contrib/completion/zsh/_docker-compose > ~/.zsh/completion/_docker-compose
|
||||
```
|
||||
```shell
|
||||
$ mkdir -p ~/.zsh/completion
|
||||
$ curl -L https://raw.githubusercontent.com/docker/compose/{{site.compose_version}}/contrib/completion/zsh/_docker-compose > ~/.zsh/completion/_docker-compose
|
||||
```
|
||||
|
||||
2. Include the directory in your `$fpath` by adding in `~/.zshrc`:
|
||||
|
||||
```shell
|
||||
fpath=(~/.zsh/completion $fpath)
|
||||
```
|
||||
```shell
|
||||
fpath=(~/.zsh/completion $fpath)
|
||||
```
|
||||
|
||||
3. Make sure `compinit` is loaded or do it by adding in `~/.zshrc`:
|
||||
|
||||
```shell
|
||||
autoload -Uz compinit && compinit -i
|
||||
```
|
||||
```shell
|
||||
autoload -Uz compinit && compinit -i
|
||||
```
|
||||
|
||||
4. Then reload your shell:
|
||||
|
||||
```shell
|
||||
exec $SHELL -l
|
||||
```
|
||||
```shell
|
||||
exec $SHELL -l
|
||||
```
|
||||
|
||||
## Available completions
|
||||
|
||||
|
|
|
@ -196,6 +196,10 @@ or a list:
|
|||
args:
|
||||
- buildno=1
|
||||
- gitcommithash=cdc3b19
|
||||
|
||||
> **Note**: In your Dockerfile, if you specify `ARG` before the `FROM` instruction,
|
||||
> If you need an argument to be available in both places, also specify it under the `FROM` instruction.
|
||||
> See [Understand how ARGS and FROM interact](/engine/reference/builder/#understand-how-arg-and-from-interact) for usage details.
|
||||
|
||||
You can omit the value when specifying a build argument, in which case its value
|
||||
at build time is the value in the environment where Compose is running.
|
||||
|
|
|
@ -29,14 +29,26 @@ Follow the instructions below to install Compose on Mac, Windows, Windows Server
|
|||
2016, or Linux systems, or find out about alternatives like using the `pip`
|
||||
Python package manager or installing Compose as a container.
|
||||
|
||||
> Install a different version
|
||||
>
|
||||
> The instructions below outline installation of the current stable release
|
||||
> (**v{{site.compose_version}}**) of Compose. To install a different version of
|
||||
> Compose, replace the given release number with the one that you want. Compose
|
||||
> releases are also listed and available for direct download on the
|
||||
> [Compose repository release page on GitHub](https://github.com/docker/compose/releases){:target="_blank" class="_"}.
|
||||
> To install a **pre-release** of Compose, refer to the [install pre-release builds](#install-pre-release-builds)
|
||||
> section.
|
||||
|
||||
<ul class="nav nav-tabs">
|
||||
<li class="active"><a data-toggle="tab" data-target="#macOS">Mac</a></li>
|
||||
<li><a data-toggle="tab" data-target="#windows">Windows</a></li>
|
||||
<li><a data-toggle="tab" data-target="#windows-server">Windows Server</a></li>
|
||||
<li><a data-toggle="tab" data-target="#linux">Linux</a></li>
|
||||
<li><a data-toggle="tab" data-target="#alternatives">Alternative Install Options</a></li>
|
||||
</ul>
|
||||
<div class="tab-content">
|
||||
<div id="macOS" class="tab-pane fade in active" markdown="1">
|
||||
|
||||
### Install Compose on macOS
|
||||
|
||||
**Docker Desktop for Mac** and **Docker Toolbox** already include Compose along
|
||||
|
@ -45,10 +57,11 @@ Docker install instructions for these are here:
|
|||
|
||||
* [Get Docker Desktop for Mac](/docker-for-mac/install.md)
|
||||
* [Get Docker Toolbox](/toolbox/overview.md) (for older systems)
|
||||
<hr>
|
||||
|
||||
</div>
|
||||
<div id="windows" class="tab-pane fade" markdown="1">
|
||||
### Install Compose on Windows systems
|
||||
|
||||
### Install Compose on Windows desktop systems
|
||||
|
||||
**Docker Desktop for Windows** and **Docker Toolbox** already include Compose
|
||||
along with other Docker apps, so most Windows users do not need to
|
||||
|
@ -57,68 +70,68 @@ install Compose separately. Docker install instructions for these are here:
|
|||
* [Get Docker Desktop for Windows](/docker-for-windows/install.md)
|
||||
* [Get Docker Toolbox](/toolbox/overview.md) (for older systems)
|
||||
|
||||
**If you are running the Docker daemon and client directly on Microsoft
|
||||
Windows Server 2016** (with [Docker EE for Windows Server 2016](/install/windows/docker-ee.md), you _do_ need to install
|
||||
Docker Compose. To do so, follow these steps:
|
||||
If you are running the Docker daemon and client directly on Microsoft
|
||||
Windows Server, follow the instructions in the Windows Server tab.
|
||||
|
||||
</div>
|
||||
<div id="windows-server" class="tab-pane fade in active" markdown="1">
|
||||
|
||||
### Install Compose on Windows Server
|
||||
|
||||
Follow these instructions if you are running the Docker daemon and client directly
|
||||
on Microsoft Windows Server with [Docker Engine - Enterprise](/install/windows/docker-ee.md),
|
||||
and want to install Docker Compose.
|
||||
|
||||
|
||||
1. Start an "elevated" PowerShell (run it as administrator).
|
||||
Search for PowerShell, right-click, and choose
|
||||
**Run as administrator**. When asked if you want to allow this app
|
||||
to make changes to your device, click **Yes**.
|
||||
|
||||
In Powershell, since Github now requires TLS1.2, run the following:
|
||||
2. In PowerShell, since GitHub now requires TLS1.2, run the following:
|
||||
|
||||
```none
|
||||
```powershell
|
||||
[Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12
|
||||
```
|
||||
|
||||
Then run the following command to download
|
||||
Docker Compose, replacing `$dockerComposeVersion` with the specific
|
||||
version of Compose you want to use:
|
||||
Then run the following command to download the current stable release of
|
||||
Compose (v{{site.compose_version}}):
|
||||
|
||||
```none
|
||||
Invoke-WebRequest "https://github.com/docker/compose/releases/download/$dockerComposeVersion/docker-compose-Windows-x86_64.exe" -UseBasicParsing -OutFile $Env:ProgramFiles\Docker\Docker\resources\bin\docker-compose.exe
|
||||
```powershell
|
||||
Invoke-WebRequest "https://github.com/docker/compose/releases/download/{{site.compose_version}}/docker-compose-Windows-x86_64.exe" -UseBasicParsing -OutFile $Env:ProgramFiles\Docker\docker-compose.exe
|
||||
```
|
||||
|
||||
For example, to download Compose version {{site.compose_version}},
|
||||
the command is:
|
||||
**Note**: On Windows Server 2019, you can add the Compose executable to `$Env:ProgramFiles\Docker`. Because this directory is registered in the system `PATH`, you can run the `docker-compose --version` command on the subsequent step with no additional configuration.
|
||||
|
||||
```none
|
||||
Invoke-WebRequest "https://github.com/docker/compose/releases/download/{{site.compose_version}}/docker-compose-Windows-x86_64.exe" -UseBasicParsing -OutFile $Env:ProgramFiles\Docker\Docker\resources\bin\docker-compose.exe
|
||||
> To install a different version of Compose, substitute `{{site.compose_version}}`
|
||||
> with the version of Compose you want to use.
|
||||
|
||||
3. Test the installation.
|
||||
|
||||
```powershell
|
||||
docker-compose --version
|
||||
|
||||
docker-compose version {{site.compose_version}}, build 01110ad01
|
||||
```
|
||||
> Use the latest Compose release number in the download command.
|
||||
>
|
||||
> As already mentioned, the above command is an _example_, and
|
||||
it may become out-of-date once in a while. Always follow the
|
||||
command pattern shown above it. If you cut-and-paste an example,
|
||||
check which release it specifies and, if needed,
|
||||
replace `$dockerComposeVersion` with the release number that
|
||||
you want. Compose releases are also available for direct download
|
||||
on the [Compose repository release page on GitHub](https://github.com/docker/compose/releases){:target="_blank" class="_"}.
|
||||
{: .important}
|
||||
|
||||
2. Run the executable to install Compose.
|
||||
<hr>
|
||||
</div>
|
||||
<div id="linux" class="tab-pane fade" markdown="1">
|
||||
|
||||
### Install Compose on Linux systems
|
||||
|
||||
On **Linux**, you can download the Docker Compose binary from the [Compose
|
||||
On Linux, you can download the Docker Compose binary from the [Compose
|
||||
repository release page on GitHub](https://github.com/docker/compose/releases){:
|
||||
target="_blank" class="_"}. Follow the instructions from the link, which involve
|
||||
running the `curl` command in your terminal to download the binaries. These step
|
||||
by step instructions are also included below.
|
||||
running the `curl` command in your terminal to download the binaries. These step-by-step instructions are also included below.
|
||||
|
||||
1. Run this command to download the latest version of Docker Compose:
|
||||
1. Run this command to download the current stable release of Docker Compose:
|
||||
|
||||
```bash
|
||||
sudo curl -L "https://github.com/docker/compose/releases/download/{{site.compose_version}}/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
|
||||
```
|
||||
|
||||
> Use the latest Compose release number in the download command.
|
||||
>
|
||||
The above command is an _example_, and it may become out-of-date. To ensure you have the latest version, check the [Compose repository release page on GitHub](https://github.com/docker/compose/releases){: target="_blank" class="_"}.
|
||||
{: .important}
|
||||
> To install a different version of Compose, substitute `{{site.compose_version}}`
|
||||
> with the version of Compose you want to use.
|
||||
|
||||
If you have problems installing with `curl`, see
|
||||
[Alternative Install Options](install.md#alternative-install-options) tab above.
|
||||
|
@ -147,9 +160,9 @@ sudo ln -s /usr/local/bin/docker-compose /usr/bin/docker-compose
|
|||
$ docker-compose --version
|
||||
docker-compose version {{site.compose_version}}, build 1110ad01
|
||||
```
|
||||
<hr>
|
||||
</div>
|
||||
<div id="alternatives" class="tab-pane fade" markdown="1">
|
||||
|
||||
### Alternative install options
|
||||
|
||||
- [Install using pip](#install-using-pip)
|
||||
|
@ -180,34 +193,31 @@ sudo pip install docker-compose
|
|||
#### Install as a container
|
||||
|
||||
Compose can also be run inside a container, from a small bash script wrapper. To
|
||||
install compose as a container run this command. Be sure to replace the version
|
||||
number with the one that you want, if this example is out-of-date:
|
||||
install compose as a container run this command:
|
||||
|
||||
```bash
|
||||
$ sudo curl -L --fail https://github.com/docker/compose/releases/download/{{site.compose_version}}/run.sh -o /usr/local/bin/docker-compose
|
||||
$ sudo chmod +x /usr/local/bin/docker-compose
|
||||
```
|
||||
|
||||
> Use the latest Compose release number in the download command.
|
||||
>
|
||||
The above command is an _example_, and it may become out-of-date once in a
|
||||
while. Check which release it specifies and, if needed, replace the given
|
||||
release number with the one that you want. Compose releases are also listed and
|
||||
available for direct download on the [Compose repository release page on
|
||||
GitHub](https://github.com/docker/compose/releases){: target="_blank"
|
||||
class="_"}.
|
||||
</div>
|
||||
</div>
|
||||
|
||||
----
|
||||
|
||||
## Install pre-release builds
|
||||
|
||||
If you're interested in trying out a pre-release build, you can download release
|
||||
candidates from the [Compose repository release page on GitHub](https://github.com/docker/compose/releases){: target="_blank" class="_"}.
|
||||
Follow the instructions from the link, which involves running the `curl` command
|
||||
in your terminal to download the binaries.
|
||||
|
||||
Pre-releases built from the "master" branch are also available for download at
|
||||
[https://dl.bintray.com/docker-compose/master/](https://dl.bintray.com/docker-compose/master/){: target="_blank" class="_"}.
|
||||
|
||||
> Pre-release builds allow you to try out new features before they are released,
|
||||
> but may be less stable.
|
||||
{: .important}
|
||||
<hr>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
## Master builds
|
||||
|
||||
If you're interested in trying out a pre-release build, you can download a binary
|
||||
from
|
||||
[https://dl.bintray.com/docker-compose/master/](https://dl.bintray.com/docker-compose/master/).
|
||||
Pre-release builds allow you to try out new features before they are released,
|
||||
but may be less stable.
|
||||
|
||||
|
||||
## Upgrading
|
||||
|
@ -218,7 +228,7 @@ version 1.3, Compose uses Docker labels to keep track of containers, and your
|
|||
containers need to be recreated to add the labels.
|
||||
|
||||
If Compose detects containers that were created without labels, it refuses
|
||||
to run so that you don't end up with two sets of them. If you want to keep using
|
||||
to run, so that you don't end up with two sets of them. If you want to keep using
|
||||
your existing containers (for example, because they have data volumes you want
|
||||
to preserve), you can use Compose 1.5.x to migrate them with the following
|
||||
command:
|
||||
|
|
|
@ -34,7 +34,7 @@ when the daemon becomes unavailable. **Only do one of the following**.
|
|||
```
|
||||
|
||||
- Restart the Docker daemon. On Linux, you can avoid a restart (and avoid any
|
||||
downtime for your containers) by reload the Docker daemon. If you use
|
||||
downtime for your containers) by reloading the Docker daemon. If you use
|
||||
`systemd`, then use the command `systemctl reload docker`. Otherwise, send a
|
||||
`SIGHUP` signal to the `dockerd` process.
|
||||
|
||||
|
|
|
@ -56,7 +56,7 @@ driver options.
|
|||
|
||||
| Option | Required | Description |
|
||||
|:------------|:---------|:-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
|
||||
| `tag` | optional | Specify template to set `CONTAINER_TAG` and `SYSLOG_IDENTIFIER` value in journald logs. Refer to [log tag option documentation](/engine/admin/logging/log_tags/) to customize the log tag format |
|
||||
| `tag` | optional | Specify template to set `CONTAINER_TAG` and `SYSLOG_IDENTIFIER` value in journald logs. Refer to [log tag option documentation](/engine/admin/logging/log_tags/) to customize the log tag format. |
|
||||
| `labels` | optional | Comma-separated list of keys of labels, which should be included in message, if these labels are specified for the container. |
|
||||
| `env` | optional | Comma-separated list of keys of environment variables, which should be included in message, if these variables are specified for the container. |
|
||||
| `env-regex` | optional | Similar to and compatible with env. A regular expression to match logging-related environment variables. Used for advanced [log tag options](/engine/admin/logging/log_tags/). |
|
||||
|
|
|
@ -13,6 +13,10 @@ and writes them in files using the JSON format. The JSON format annotates each l
|
|||
origin (`stdout` or `stderr`) and its timestamp. Each log file contains information about
|
||||
only one container.
|
||||
|
||||
```json
|
||||
{"log":"Log line is here\n","stream":"stdout","time":"2019-01-01T11:11:11.111111111Z"}
|
||||
```
|
||||
|
||||
## Usage
|
||||
|
||||
To use the `json-file` driver as the default logging driver, set the `log-driver`
|
||||
|
|
|
@ -0,0 +1,55 @@
|
|||
---
|
||||
description: Describes how to use the local binary (Protobuf) logging driver.
|
||||
keywords: local, protobuf, docker, logging, driver
|
||||
redirect_from:
|
||||
- /engine/reference/logging/local/
|
||||
- /engine/admin/logging/local/
|
||||
title: local binary file Protobuf logging driver
|
||||
---
|
||||
|
||||
This `log-driver` writes to `local` binary files using Protobuf [Protocol Buffers](https://en.wikipedia.org/wiki/Protocol_Buffers)
|
||||
|
||||
## Usage
|
||||
|
||||
To use the `local` driver as the default logging driver, set the `log-driver`
|
||||
and `log-opt` keys to appropriate values in the `daemon.json` file, which is
|
||||
located in `/etc/docker/` on Linux hosts or
|
||||
`C:\ProgramData\docker\config\daemon.json` on Windows Server. For more information about
|
||||
configuring Docker using `daemon.json`, see
|
||||
[daemon.json](/engine/reference/commandline/dockerd.md#daemon-configuration-file).
|
||||
|
||||
The following example sets the log driver to `local`.
|
||||
|
||||
```json
|
||||
{
|
||||
"log-driver": "local",
|
||||
"log-opts": {}
|
||||
}
|
||||
```
|
||||
|
||||
> **Note**: `log-opt` configuration options in the `daemon.json` configuration
|
||||
> file must be provided as strings. Boolean and numeric values (such as the value
|
||||
> for `max-file` in the example above) must therefore be enclosed in quotes (`"`).
|
||||
|
||||
Restart Docker for the changes to take effect for newly created containers.
|
||||
|
||||
Existing containers will not use the new logging configuration.
|
||||
|
||||
You can set the logging driver for a specific container by using the
|
||||
`--log-driver` flag to `docker container create` or `docker run`:
|
||||
|
||||
```bash
|
||||
$ docker run \
|
||||
--log-driver local --log-opt compress="false" \
|
||||
alpine echo hello world
|
||||
```
|
||||
|
||||
### Options
|
||||
|
||||
The `json-file` logging driver supports the following logging options:
|
||||
|
||||
| Option | Description | Example value |
|
||||
|:------------|:--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|:-----------------------------------------|
|
||||
| `max-size` | The maximum size of each binary log file before rotation. A positive integer plus a modifier representing the unit of measure (`k`, `m`, or `g`). Defaults to `20m`. | `--log-opt max-size=10m` |
|
||||
| `max-file` | The maximum number of binary log files. If rotating the logs creates an excess file, the oldest file is removed. **Only effective when `max-size` is also set.** A positive integer. Defaults to `5`. | `--log-opt max-file=5` |
|
||||
| `compress` | Whether or not the binary files should be compressed. Defaults to `true` | `--log-opt compress=true` |
|
|
@ -0,0 +1,17 @@
|
|||
---
|
||||
description: Third-party configuration tools
|
||||
keywords: third-party, tools, monitoring, configuration, usage, docker, daemon
|
||||
redirect_from:
|
||||
- /config/thirdparty/monitoring/
|
||||
title: Work with third-party monitoring tools
|
||||
---
|
||||
|
||||
You can configure Docker to use third-party monitoring tools. This topic lists various third-party tools you can use to monitor Docker.
|
||||
|
||||
* [Collect Docker metrics using Prometheus](/config/thirdparty/prometheus/)
|
||||
|
||||
* [Sysdig Monitoring Solution Brief for Docker Enterprise Edition](https://success.docker.com/article/sysdig-monitoring)
|
||||
|
||||
* [Datadog Monitoring Solution Brief for Docker Enterprise Edition](https://success.docker.com/article/datadog-monitoring)
|
||||
|
||||
>**Note**: Docker no longer maintains the previously listed documentation about using Sysdig and Datadog from within Docker.
|
|
@ -1,400 +0,0 @@
|
|||
---
|
||||
description: Learn how to install the commercially supported version of Docker Engine.
|
||||
keywords: docker, engine, dtr, install
|
||||
title: Install CS Docker Engine
|
||||
redirect_from:
|
||||
- /cs-engine/1.12/install/
|
||||
---
|
||||
|
||||
Follow these instructions to install CS Docker Engine, the commercially
|
||||
supported version of Docker Engine.
|
||||
|
||||
CS Docker Engine can be installed on the following operating systems:
|
||||
|
||||
* [CentOS 7.1/7.2 & RHEL 7.0/7.1/7.2 (YUM-based systems)](#install-on-centos-7172--rhel-707172-yum-based-systems)
|
||||
* [Ubuntu 14.04 LTS](#install-on-ubuntu-1404-lts)
|
||||
* [SUSE Linux Enterprise 12](#install-on-suse-linux-enterprise-123)
|
||||
|
||||
You can install CS Docker Engine using a repository or using packages.
|
||||
|
||||
- If you [use a repository](#install-using-a-repository), your operating system
|
||||
will notify you when updates are available and you can upgrade or downgrade
|
||||
easily, but you need an internet connection. This approach is recommended.
|
||||
|
||||
- If you [use packages](#install-using-packages), you can install CS Docker
|
||||
Engine on air-gapped systems that have no internet connection. However, you
|
||||
are responsible for manually checking for updates and managing upgrades.
|
||||
|
||||
## Prerequisites
|
||||
|
||||
To install CS Docker Engine, you need root or sudo privileges and you need
|
||||
access to a command line on the system.
|
||||
|
||||
## Install using a repository
|
||||
|
||||
### Install on CentOS 7.1/7.2 & RHEL 7.0/7.1/7.2/7.3 (YUM-based systems)
|
||||
|
||||
This section explains how to install on CentOS 7.1/7.2 & RHEL 7.0/7.1/7.2/7.3. Only
|
||||
these versions are supported. CentOS 7.0 is **not** supported. On RHEL,
|
||||
depending on your current level of updates, you may need to reboot your server
|
||||
to update its RHEL kernel.
|
||||
|
||||
1. Add the Docker public key for CS Docker Engine packages:
|
||||
|
||||
```bash
|
||||
$ sudo rpm --import "https://sks-keyservers.net/pks/lookup?op=get&search=0xee6d536cf7dc86e2d7d56f59a178ac6c6238f52e"
|
||||
```
|
||||
|
||||
> **Note**: If the key server above does not respond, you can try one of these:
|
||||
>
|
||||
> - pgp.mit.edu
|
||||
> - keyserver.ubuntu.com
|
||||
|
||||
2. Install yum-utils if necessary:
|
||||
|
||||
```bash
|
||||
$ sudo yum install -y yum-utils
|
||||
```
|
||||
|
||||
3. Add the Docker repository:
|
||||
|
||||
```bash
|
||||
$ sudo yum-config-manager --add-repo https://packages.docker.com/1.12/yum/repo/main/centos/7
|
||||
```
|
||||
|
||||
This adds the repository of the latest version of CS Docker Engine. You can
|
||||
customize the URL to install an older version.
|
||||
|
||||
4. Install Docker CS Engine:
|
||||
|
||||
- **Latest version**:
|
||||
|
||||
```bash
|
||||
$ sudo yum makecache fast
|
||||
|
||||
$ sudo yum install docker-engine
|
||||
```
|
||||
|
||||
- **Specific version**:
|
||||
|
||||
On production systems, you should install a specific version rather than
|
||||
relying on the latest.
|
||||
|
||||
1. List the available versions:
|
||||
|
||||
```bash
|
||||
$ yum list docker-engine.x86_64 --showduplicates |sort -r
|
||||
```
|
||||
|
||||
The second column represents the version.
|
||||
|
||||
2. Install a specific version by adding the version after `docker-engine`,
|
||||
separated by a hyphen (`-`):
|
||||
|
||||
```bash
|
||||
$ sudo yum install docker-engine-<version>
|
||||
```
|
||||
|
||||
5. Configure `devicemapper`:
|
||||
|
||||
By default, the `devicemapper` graph driver does not come pre-configured in
|
||||
a production-ready state. Follow the documented step by step instructions to
|
||||
[configure devicemapper with direct-lvm for production](../../engine/userguide/storagedriver/device-mapper-driver/#configure-direct-lvm-mode-for-production)
|
||||
to achieve the best performance and reliability for your environment.
|
||||
|
||||
6. Configure the Docker daemon to start automatically when the system starts,
|
||||
and start it now.
|
||||
|
||||
```bash
|
||||
$ sudo systemctl enable docker.service
|
||||
$ sudo systemctl start docker.service
|
||||
```
|
||||
|
||||
7. Confirm the Docker daemon is running:
|
||||
|
||||
```bash
|
||||
$ sudo docker info
|
||||
```
|
||||
|
||||
8. Only users with `sudo` access can run `docker` commands.
|
||||
Optionally, add non-sudo access to the Docker socket by adding your user
|
||||
to the `docker` group.
|
||||
|
||||
```bash
|
||||
$ sudo usermod -a -G docker $USER
|
||||
```
|
||||
|
||||
9. Log out and log back in to have your new permissions take effect.
|
||||
|
||||
|
||||
### Install on Ubuntu 14.04 LTS or 16.04 LTS
|
||||
|
||||
1. Install packages to allow `apt` to use a repository over HTTPS:
|
||||
|
||||
```bash
|
||||
$ sudo apt-get update
|
||||
|
||||
$ sudo apt-get install --no-install-recommends \
|
||||
apt-transport-https \
|
||||
curl \
|
||||
software-properties-common
|
||||
```
|
||||
|
||||
Optionally, install additional kernel modules to add AUFS support.
|
||||
|
||||
```bash
|
||||
$ sudo apt-get install -y --no-install-recommends \
|
||||
linux-image-extra-$(uname -r) \
|
||||
linux-image-extra-virtual
|
||||
```
|
||||
|
||||
2. Download and import Docker's public key for CS packages:
|
||||
|
||||
```bash
|
||||
$ curl -fsSL 'https://sks-keyservers.net/pks/lookup?op=get&search=0xee6d536cf7dc86e2d7d56f59a178ac6c6238f52e' | sudo apt-key add -
|
||||
```
|
||||
|
||||
>**Note**: If the key server above does not respond, you can try one of these:
|
||||
>
|
||||
> - pgp.mit.edu
|
||||
> - keyserver.ubuntu.com
|
||||
|
||||
3. Add the repository. In the command below, the `lsb_release -cs` sub-command
|
||||
returns the name of your Ubuntu version, like `xenial` or `trusty`.
|
||||
|
||||
```bash
|
||||
$ sudo add-apt-repository \
|
||||
"deb https://packages.docker.com/1.12/apt/repo/ \
|
||||
ubuntu-$(lsb_release -cs) \
|
||||
main"
|
||||
```
|
||||
|
||||
4. Install CS Docker Engine:
|
||||
|
||||
- **Latest version**:
|
||||
|
||||
```bash
|
||||
$ sudo apt-get update
|
||||
|
||||
$ sudo apt-get -y install docker-engine
|
||||
```
|
||||
|
||||
- **Specific version**:
|
||||
|
||||
On production systems, you should install a specific version rather than
|
||||
relying on the latest.
|
||||
|
||||
1. List the available versions:
|
||||
|
||||
```bash
|
||||
$ sudo apt-get update
|
||||
|
||||
$ apt-cache madison docker-engine
|
||||
```
|
||||
|
||||
The second column represents the version.
|
||||
|
||||
2. Install a specific version by adding the version after `docker-engine`,
|
||||
separated by an equals sign (`=`):
|
||||
|
||||
```bash
|
||||
$ sudo apt-get install docker-engine=<version>
|
||||
```
|
||||
|
||||
5. Confirm the Docker daemon is running:
|
||||
|
||||
```bash
|
||||
$ sudo docker info
|
||||
```
|
||||
|
||||
6. Only users with `sudo` access can run `docker` commands.
|
||||
Optionally, add non-sudo access to the Docker socket by adding your user
|
||||
to the `docker` group.
|
||||
|
||||
```bash
|
||||
$ sudo usermod -a -G docker $USER
|
||||
```
|
||||
|
||||
Log out and log back in to have your new permissions take effect.
|
||||
|
||||
### Install on SUSE Linux Enterprise 12.3
|
||||
|
||||
1. Refresh your repository:
|
||||
|
||||
```bash
|
||||
$ sudo zypper update
|
||||
```
|
||||
|
||||
2. Add the Docker repository and public key:
|
||||
|
||||
```bash
|
||||
$ sudo zypper ar -t YUM https://packages.docker.com/1.12/yum/repo/main/opensuse/12.3 docker-1.13
|
||||
$ sudo rpm --import 'https://sks-keyservers.net/pks/lookup?op=get&search=0xee6d536cf7dc86e2d7d56f59a178ac6c6238f52e'
|
||||
```
|
||||
|
||||
This adds the repository of the latest version of CS Docker Engine. You can
|
||||
customize the URL to install an older version.
|
||||
|
||||
**Note**: If the key server above does not respond, you can try one of these:
|
||||
>
|
||||
> - pgp.mit.edu
|
||||
> - keyserver.ubuntu.com
|
||||
|
||||
3. Install CS Docker Engine.
|
||||
|
||||
- **Latest version**:
|
||||
|
||||
```bash
|
||||
$ sudo zypper refresh
|
||||
|
||||
$ sudo zypper install docker-engine
|
||||
```
|
||||
|
||||
- **Specific version**:
|
||||
|
||||
On production systems, you should install a specific version rather than
|
||||
relying on the latest.
|
||||
|
||||
1. List the available versions:
|
||||
|
||||
```bash
|
||||
$ sudo zypper refresh
|
||||
|
||||
$ zypper search -s --match-exact -t package docker-engine
|
||||
```
|
||||
|
||||
The third column is the version string.
|
||||
|
||||
2. Install a specific version by adding the version after `docker-engine`,
|
||||
separated by a hyphen (`-`):
|
||||
|
||||
```bash
|
||||
$ sudo zypper install docker-engine-<version>
|
||||
```
|
||||
|
||||
4. Configure the Docker daemon to start automatically when the system starts,
|
||||
and start it now.
|
||||
|
||||
```bash
|
||||
$ sudo systemctl enable docker.service
|
||||
$ sudo systemctl start docker.service
|
||||
```
|
||||
|
||||
5. Confirm the Docker daemon is running:
|
||||
|
||||
```bash
|
||||
$ sudo docker info
|
||||
```
|
||||
|
||||
6. Only users with `sudo` access can run `docker` commands.
|
||||
Optionally, add non-sudo access to the Docker socket by adding your user
|
||||
to the `docker` group.
|
||||
|
||||
```bash
|
||||
$ sudo usermod -a -G docker $USER
|
||||
```
|
||||
|
||||
Log out and log back in to have your new permissions take effect.
|
||||
|
||||
7. [Configure Btrfs for graph storage](/engine/userguide/storagedriver/btrfs-driver.md).
|
||||
This is the only graph storage driver supported on SLES.
|
||||
|
||||
## Install using packages
|
||||
|
||||
If you need to install Docker on an air-gapped system with no access to the
|
||||
internet, use the [package download link table](#package-download-links) to
|
||||
download the Docker package for your operating system, then install it using the
|
||||
[appropriate command](#general-commands). You are responsible for manually
|
||||
upgrading Docker when a new version is available, and also for satisfying
|
||||
Docker's dependencies.
|
||||
|
||||
### General commands
|
||||
|
||||
To install Docker from packages, use the following commands:
|
||||
|
||||
| Operating system | Command |
|
||||
|-----------------------|---------|
|
||||
| RHEL / CentOS / SLES | `$ sudo yum install /path/to/package.rpm` |
|
||||
| Ubuntu | `$ sudo dpkg -i /path/to/package.deb` |
|
||||
|
||||
### Package download links
|
||||
|
||||
{% assign rpm-prefix = "https://packages.docker.com/1.12/yum/repo/main" %}
|
||||
{% assign deb-prefix = "https://packages.docker.com/1.12/apt/repo/pool/main/d/docker-engine" %}
|
||||
|
||||
#### CS Docker Engine 1.12.6
|
||||
|
||||
{% comment %} Check on the S3 bucket for packages.docker.com for the versions. {% endcomment %}
|
||||
{% assign rpm-version = "1.12.6.cs8-1" %}
|
||||
{% assign rpm-rhel-version = "1.12.6.cs8-1" %}
|
||||
{% assign deb-version = "1.12.6~cs8-0" %}
|
||||
|
||||
| Operating system | Package links |
|
||||
|-----------------------|--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
|
||||
| RHEL 7.x and CentOS 7 | [docker-engine]({{ rpm-prefix }}/centos/7/Packages/docker-engine-{{ rpm-version}}.el7.centos.x86_64.rpm), [docker-engine-debuginfo]({{ rpm-prefix }}/centos/7/Packages/docker-engine-debuginfo-{{ rpm-version }}.el7.centos.x86_64.rpm), [docker-engine-selinux]({{ rpm-prefix }}/centos/7/Packages/docker-engine-selinux-{{ rpm-version}}1.el7.centos.noarch.rpm) |
|
||||
| RHEL 7.2 (only use if you have problems with `selinux` with the packages above) | [docker-engine]({{ rpm-prefix }}/rhel/7.2/Packages/docker-engine-{{ rpm-rhel-version }}.el7.centos.x86_64.rpm), [docker-engine-debuginfo]({{ rpm-prefix }}/rhel/7.2/Packages/docker-engine-debuginfo-{{ rpm-rhel-version }}.el7.centos.x86_64.rpm), [docker-engine-selinux]({{ rpm-prefix }}/rhel/7.2/Packages/docker-engine-selinux-{{ rpm-rhel-version }}.el7.centos.noarch.rpm) |
|
||||
| SLES 12 | [docker-engine]({{ rpm-prefix }}/opensuse/12.3/Packages/docker-engine-{{ rpm-version }}.x86_64.rpm) |
|
||||
| Ubuntu Xenial | [docker-engine]({{ deb-prefix }}/docker-engine_{{ deb-version }}~ubuntu-xenial_amd64.deb) |
|
||||
| Ubuntu Wily | [docker-engine]({{ deb-prefix }}/docker-engine_{{ deb-version }}~ubuntu-wily_amd64.deb) |
|
||||
| Ubuntu Trusty | [docker-engine]({{ deb-prefix }}/docker-engine_{{ deb-version }}~ubuntu-trusty_amd64.deb) |
|
||||
| Ubuntu Precise | [docker-engine]({{ deb-prefix }}/docker-engine_{{ deb-version }}~ubuntu-precisel_amd64.deb) |
|
||||
|
||||
#### CS Docker Engine 1.12.5
|
||||
|
||||
{% comment %} Check on the S3 bucket for packages.docker.com for the versions. {% endcomment %}
|
||||
{% assign rpm-version = "1.12.5.cs5-1" %}
|
||||
{% assign deb-version = "1.12.5~cs5-0" %}
|
||||
|
||||
| Operating system | Package links |
|
||||
|-----------------------|--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
|
||||
| RHEL 7.x and CentOS 7 | [docker-engine]({{ rpm-prefix }}/centos/7/Packages/docker-engine-{{ rpm-version}}.el7.centos.x86_64.rpm), [docker-engine-debuginfo]({{ rpm-prefix }}/centos/7/Packages/docker-engine-debuginfo-{{ rpm-version }}.el7.centos.x86_64.rpm), [docker-engine-selinux]({{ rpm-prefix }}/centos/7/Packages/docker-engine-selinux-{{ rpm-version}}1.el7.centos.noarch.rpm) |
|
||||
| SLES 12 | [docker-engine]({{ rpm-prefix }}/opensuse/12.3/Packages/docker-engine-{{ rpm-version }}.x86_64.rpm) |
|
||||
| Ubuntu Xenial | [docker-engine]({{ deb-prefix }}/docker-engine_{{ deb-version }}~ubuntu-xenial_amd64.deb) |
|
||||
| Ubuntu Wily | [docker-engine]({{ deb-prefix }}/docker-engine_{{ deb-version }}~ubuntu-wily_amd64.deb) |
|
||||
| Ubuntu Trusty | [docker-engine]({{ deb-prefix }}/docker-engine_{{ deb-version }}~ubuntu-trusty_amd64.deb) |
|
||||
| Ubuntu Precise | [docker-engine]({{ deb-prefix }}/docker-engine_{{ deb-version }}~ubuntu-precisel_amd64.deb) |
|
||||
|
||||
#### CS Docker Engine 1.12.3
|
||||
|
||||
{% comment %} Check on the S3 bucket for packages.docker.com for the versions. {% endcomment %}
|
||||
{% assign rpm-version = "1.12.3.cs4-1" %}
|
||||
{% assign deb-version = "1.12.3~cs4-0" %}
|
||||
|
||||
| Operating system | Package links |
|
||||
|-----------------------|--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
|
||||
| RHEL 7.x and CentOS 7 | [docker-engine]({{ rpm-prefix }}/centos/7/Packages/docker-engine-{{ rpm-version}}.el7.centos.x86_64.rpm), [docker-engine-debuginfo]({{ rpm-prefix }}/centos/7/Packages/docker-engine-debuginfo-{{ rpm-version }}.el7.centos.x86_64.rpm), [docker-engine-selinux]({{ rpm-prefix }}/centos/7/Packages/docker-engine-selinux-{{ rpm-version}}1.el7.centos.noarch.rpm) |
|
||||
| SLES 12 | [docker-engine]({{ rpm-prefix }}/opensuse/12.3/Packages/docker-engine-{{ rpm-version }}.x86_64.rpm) |
|
||||
| Ubuntu Xenial | [docker-engine]({{ deb-prefix }}/docker-engine_{{ deb-version }}~ubuntu-xenial_amd64.deb) |
|
||||
| Ubuntu Wily | [docker-engine]({{ deb-prefix }}/docker-engine_{{ deb-version }}~ubuntu-wily_amd64.deb) |
|
||||
| Ubuntu Trusty | [docker-engine]({{ deb-prefix }}/docker-engine_{{ deb-version }}~ubuntu-trusty_amd64.deb) |
|
||||
| Ubuntu Precise | [docker-engine]({{ deb-prefix }}/docker-engine_{{ deb-version }}~ubuntu-precisel_amd64.deb) |
|
||||
|
||||
#### CS Docker Engine 1.12.2
|
||||
|
||||
{% comment %} Check on the S3 bucket for packages.docker.com for the versions. {% endcomment %}
|
||||
{% assign rpm-version = "1.12.2.cs2-1" %}
|
||||
{% assign deb-version = "1.12.2~cs2-0" %}
|
||||
|
||||
| Operating system | Package links |
|
||||
|-----------------------|--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
|
||||
| RHEL 7.x and CentOS 7 | [docker-engine]({{ rpm-prefix }}/centos/7/Packages/docker-engine-{{ rpm-version}}.el7.centos.x86_64.rpm), [docker-engine-debuginfo]({{ rpm-prefix }}/centos/7/Packages/docker-engine-debuginfo-{{ rpm-version }}.el7.centos.x86_64.rpm), [docker-engine-selinux]({{ rpm-prefix }}/centos/7/Packages/docker-engine-selinux-{{ rpm-version}}1.el7.centos.noarch.rpm) |
|
||||
| SLES 12 | [docker-engine]({{ rpm-prefix }}/opensuse/12.3/Packages/docker-engine-{{ rpm-version }}.x86_64.rpm) |
|
||||
| Ubuntu Xenial | [docker-engine]({{ deb-prefix }}/docker-engine_{{ deb-version }}~ubuntu-xenial_amd64.deb) |
|
||||
| Ubuntu Wily | [docker-engine]({{ deb-prefix }}/docker-engine_{{ deb-version }}~ubuntu-wily_amd64.deb) |
|
||||
| Ubuntu Trusty | [docker-engine]({{ deb-prefix }}/docker-engine_{{ deb-version }}~ubuntu-trusty_amd64.deb) |
|
||||
| Ubuntu Precise | [docker-engine]({{ deb-prefix }}/docker-engine_{{ deb-version }}~ubuntu-precisel_amd64.deb) |
|
||||
|
||||
#### CS Docker Engine 1.12.1
|
||||
|
||||
{% comment %} Check on the S3 bucket for packages.docker.com for the versions. {% endcomment %}
|
||||
{% assign rpm-version = "1.12.1.cs1-1" %}
|
||||
{% assign deb-version = "1.12.1~cs1-0" %}
|
||||
|
||||
| Operating system | Package links |
|
||||
|-----------------------|--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
|
||||
| RHEL 7.x and CentOS 7 | [docker-engine]({{ rpm-prefix }}/centos/7/Packages/docker-engine-{{ rpm-version}}.el7.centos.x86_64.rpm), [docker-engine-debuginfo]({{ rpm-prefix }}/centos/7/Packages/docker-engine-debuginfo-{{ rpm-version }}.el7.centos.x86_64.rpm), [docker-engine-selinux]({{ rpm-prefix }}/centos/7/Packages/docker-engine-selinux-{{ rpm-version}}1.el7.centos.noarch.rpm) |
|
||||
| SLES 12 | [docker-engine]({{ rpm-prefix }}/opensuse/12.3/Packages/docker-engine-{{ rpm-version }}.x86_64.rpm) |
|
||||
| Ubuntu Xenial | [docker-engine]({{ deb-prefix }}/docker-engine_{{ deb-version }}~ubuntu-xenial_amd64.deb) |
|
||||
| Ubuntu Wily | [docker-engine]({{ deb-prefix }}/docker-engine_{{ deb-version }}~ubuntu-wily_amd64.deb) |
|
||||
| Ubuntu Trusty | [docker-engine]({{ deb-prefix }}/docker-engine_{{ deb-version }}~ubuntu-trusty_amd64.deb) |
|
||||
| Ubuntu Precise | [docker-engine]({{ deb-prefix }}/docker-engine_{{ deb-version }}~ubuntu-precisel_amd64.deb) |
|
|
@ -1,8 +0,0 @@
|
|||
---
|
||||
description: The release notes for CS Docker Engine.
|
||||
keywords: docker, engine, release notes
|
||||
title: Commercially Supported Docker Engine release notes
|
||||
---
|
||||
|
||||
* [Release notes](release-notes.md)
|
||||
* [Prior release notes](prior-release-notes.md)
|
|
@ -1,341 +0,0 @@
|
|||
---
|
||||
description: Archived release notes for commercially supported Docker Engine
|
||||
keywords: docker, documentation, about, technology, understanding, enterprise, hub, registry, release, commercially supported Docker Engine
|
||||
redirect_from:
|
||||
- /docker-trusted-registry/cse-prior-release-notes/
|
||||
- /docker-trusted-registry/cs-engine/release-notes/prior-release-notes/
|
||||
- /cs-engine/release-notes/prior-release-notes/
|
||||
title: Release notes archive for Commercially Supported Docker Engine.
|
||||
---
|
||||
|
||||
This document contains the previous versions of the commercially supported
|
||||
Docker Engine release notes. It includes issues, fixes, and new features.
|
||||
|
||||
Refer to the [detailed list](https://github.com/moby/moby/releases) of all changes since the release of CS Engine 1.10.3-cs3
|
||||
|
||||
## CS Engine 1.10.3-cs4
|
||||
(12 Jan 2017)
|
||||
|
||||
Bumps RunC version to address CVE-2016-9962.
|
||||
|
||||
## CS Engine 1.10.3-cs3
|
||||
(25 April 2016)
|
||||
|
||||
This release addresses the following issue:
|
||||
|
||||
A vulnerability in the Go standard runtime libraries allowed a maliciously crafted client certificate to be used to cause an infinite loop in a TLS server. This can lead to a Denial of Service against the Docker Engine if it is deployed such that it uses TLS client certificate authentication. This vulnerability has been fixed in this release. We consider this a low-impact issue, due to complexity of attack. Customers should consider upgrading if their deployed Docker Engines are exposed to potentially malicious network attackers.
|
||||
|
||||
This issue is resolved by using Go runtime v1.5.4 which was released to address this vulnerability
|
||||
|
||||
* https://github.com/moby/moby/pull/21977
|
||||
* https://github.com/moby/moby/pull/21987
|
||||
|
||||
## CS Engine 1.10.3-cs2
|
||||
(18 March 2016)
|
||||
|
||||
Bug fix release picking up changes from Docker 1.10.3 release.
|
||||
|
||||
Refer to the [detailed list](https://github.com/moby/moby/releases/tag/v1.10.3) of all changes since the release of CS Engine 1.10.2-cs1
|
||||
|
||||
## CS Engine 1.10.2-cs1
|
||||
(22 February 2016)
|
||||
|
||||
In this release the CS Engine is supported on SUSE Linux Enterprise 12 OS.
|
||||
|
||||
Refer to the [detailed list](https://github.com/moby/moby/releases) of all changes since the release of CS Engine 1.9.1.
|
||||
|
||||
## CS Engine 1.9.1-cs3
|
||||
(6 January 2016)
|
||||
|
||||
This release addresses the following issues:
|
||||
|
||||
* The commercially supported Engine 1.9.1-cs3 now supports multi-host networking
|
||||
for all the kernels that the base CS Engine is supported on.
|
||||
|
||||
>**Note**: Centos 7 has its firewall enabled by default and it prevents the VXLAN tunnel from communicating. If this applies to you, then after installing the CS Engine, execute the following command in the Linux host:
|
||||
|
||||
sudo firewall-cmd --zone=public --permanent --add-port=4789/udp
|
||||
|
||||
|
||||
* Corrected an issue where Docker didn't remove the Masquerade NAT rule from `iptables` when the network was removed. This caused the gateway address to be
|
||||
incorrectly propagated as the source address of a connection.
|
||||
|
||||
* Fixed an issue where if the daemon started multiple containers concurrently, then the `/etc/hosts` files were incompletely populated. This issue occurred randomly.
|
||||
|
||||
* Corrected an issue where the same IP address for different Docker containers resulted in network connection inconsistencies. Now each container has a separate IP address.
|
||||
|
||||
* Corrected an issue where the IPv6 gateway was not created when using custom networks although the network had a configured gateway.
|
||||
|
||||
* Fixed an issue where users might have experienced a panic error if the daemon was started with the `—cluster-store` option, but without the `—cluster-advertise` option.
|
||||
|
||||
## CS Engine 1.9.1-cs2
|
||||
(4 December 2015)
|
||||
|
||||
Starting with this release, upgrading minor versions, for example, from 1.9.0 to 1.9.1, is faster and easier.
|
||||
|
||||
You can refer to the detailed list of all changes since the release of CS Engine
|
||||
1.9.0
|
||||
https://github.com/moby/moby/releases.
|
||||
|
||||
## CS Engine 1.9.0
|
||||
(12 November 2015)
|
||||
|
||||
Highlighted feature summary:
|
||||
|
||||
* Network Management and Plugins. Networks are now first class objects that can be listed, created, deleted, inspected, and connected to or disconnected from a
|
||||
container. They can be manipulated outside of the container themselves and are
|
||||
fully manageable on its own lifecycle. You can also use plugins to extend
|
||||
network functionality.
|
||||
|
||||
* Docker, Inc. now provides support for the in-box Overlay (for cross-host networking) and Bridge network plugins. You can find more information about how
|
||||
to manage networks and using network plugins in the [documentation](/engine/userguide/networking/index.md).
|
||||
|
||||
* Volume Management and Plugins. Volumes also become discrete, manageable objects in Docker. Volumes can be listed, created, deleted, and inspected.
|
||||
Similar to networks, they have their own managed lifecycle outside of the
|
||||
container. Plugins allow others to write and extend the functionality of volumes
|
||||
or provide integration with other types of storage.
|
||||
|
||||
* The in-box volume driver is included and supported. You can find more information about how to manage volumes and using volume plugins in the
|
||||
documentation.
|
||||
|
||||
* Docker Content Trust. Use Content Trust to both verify the integrity and the publisher of all the data received from a registry over any channel. Content Trust is currently only supported using Docker Hub notary servers.
|
||||
|
||||
* Updated the release cadence of the CS Docker Engine. Starting with this version, Docker supports **every** major release of Docker Engine from open
|
||||
source with three releases under support at one time. This means you’ll be able
|
||||
to take advantage of the latest and greatest features and you won’t have to wait
|
||||
for a supported release to take advantage of a specific feature.
|
||||
|
||||
Refer to the [detailed list](https://github.com/moby/moby/releases) of all changes since the release of CS Engine 1.6.
|
||||
|
||||
## CS Engine 1.6.2-cs7
|
||||
(12 October 2015)
|
||||
|
||||
As part of our ongoing security efforts, <a href="http://blog.docker.com/2015/10/security-release-docker-1-8-3-1-6-2-cs7" target="_blank">a vulnerability was discovered</a> that affects the way content
|
||||
is stored and retrieved within the Docker Engine and CS Docker Engine. Today we
|
||||
are releasing a security update that fixes this issue in both Docker Engine 1.8.3 and CS Docker Engine 1.6.2-cs7. The <a href="https://github.com/moby/moby/blob/master/CHANGELOG.md#161-2015-10-12" target="_blank">change log for Docker Engine 1.8.3</a> has a complete list of all the changes incorporated into both the open source and commercially
|
||||
supported releases.
|
||||
|
||||
We recommend that users upgrade to CS Docker Engine 1.6.2-cs7. If you are unable
|
||||
to upgrade to CS Docker Engine 1.6.2-cs7 right away, remember to only pull
|
||||
content from trusted sources.
|
||||
|
||||
To keep up to date on all the latest Docker Security news, make sure you check
|
||||
out our [Security page](http://www.docker.com/docker-security), subscribe to our mailing list, or find us in #docker-security.
|
||||
|
||||
## CS Docker Engine 1.6.2-cs6
|
||||
(23 July 2015)
|
||||
|
||||
Certifies support for CentOS 7.1.
|
||||
|
||||
## CS Docker Engine 1.6.2-cs5
|
||||
(21 May 2015)
|
||||
|
||||
For customers running Docker Engine on [supported versions of RedHat Enterprise Linux](https://www.docker.com/enterprise/support/) with SELinux enabled, the `docker build` and `docker run` commands will not have DNS host name resolution and bind-mounted volumes may not be accessible. As a result, customers with
|
||||
SELinux will be unable to use hostname-based network access in either `docker build` or `docker run`, nor will they be able to `docker run` containers that use `--volume` or `-v` bind-mounts (with an incorrect SELinux label) in their environment. By installing Docker Engine 1.6.2-cs5, customers can use Docker as intended on RHEL with SELinux enabled.
|
||||
|
||||
For example, you see will failures such as:
|
||||
|
||||
```bash
|
||||
[root@dtr ~]# docker -v
|
||||
Docker version 1.6.0-cs2, build b8dd430
|
||||
[root@dtr ~]# ping dtr.home.org.au
|
||||
PING dtr.home.org.au (10.10.10.104) 56(84) bytes of data.
|
||||
64 bytes from dtr.home.gateway (10.10.10.104): icmp_seq=1 ttl=64 time=0.663 ms
|
||||
^C
|
||||
--- dtr.home.org.au ping statistics ---
|
||||
2 packets transmitted, 2 received, 0% packet loss, time 1001ms
|
||||
rtt min/avg/max/mdev = 0.078/0.370/0.663/0.293 ms
|
||||
[root@dtr ~]# docker run --rm -it debian ping dtr.home.org.au
|
||||
ping: unknown host
|
||||
[root@dtr ~]# docker run --rm -it debian cat /etc/resolv.conf
|
||||
cat: /etc/resolv.conf: Permission denied
|
||||
[root@dtr ~]# docker run --rm -it debian apt-get update
|
||||
Err http://httpredir.debian.org jessie InRelease
|
||||
|
||||
Err http://security.debian.org jessie/updates InRelease
|
||||
|
||||
Err http://httpredir.debian.org jessie-updates InRelease
|
||||
|
||||
Err http://security.debian.org jessie/updates Release.gpg
|
||||
Could not resolve 'security.debian.org'
|
||||
Err http://httpredir.debian.org jessie Release.gpg
|
||||
Could not resolve 'httpredir.debian.org'
|
||||
Err http://httpredir.debian.org jessie-updates Release.gpg
|
||||
Could not resolve 'httpredir.debian.org'
|
||||
[output truncated]
|
||||
```
|
||||
|
||||
or when running a `docker build`:
|
||||
|
||||
```bash
|
||||
[root@dtr ~]# docker build .
|
||||
Sending build context to Docker daemon 11.26 kB
|
||||
Sending build context to Docker daemon
|
||||
Step 0 : FROM fedora
|
||||
---> e26efd418c48
|
||||
Step 1 : RUN yum install httpd
|
||||
---> Running in cf274900ea35
|
||||
|
||||
One of the configured repositories failed (Fedora 21 - x86_64),
|
||||
and yum doesn't have enough cached data to continue. At this point the only
|
||||
safe thing yum can do is fail. There are a few ways to work "fix" this:
|
||||
|
||||
[output truncated]
|
||||
```
|
||||
|
||||
**Affected Versions**: All previous versions of Docker Engine when SELinux is
|
||||
enabled.
|
||||
|
||||
Docker **highly recommends** that all customers running previous versions of Docker Engine update to this release.
|
||||
|
||||
### **How to workaround this issue**
|
||||
|
||||
Customers who choose not to install this update have two options. The first
|
||||
option is to disable SELinux. This is *not recommended* for production systems
|
||||
where SELinux is typically required.
|
||||
|
||||
The second option is to pass the following parameter in to `docker run`.
|
||||
|
||||
--security-opt=label:type:docker_t
|
||||
|
||||
This parameter cannot be passed to the `docker build` command.
|
||||
|
||||
### **Upgrade notes**
|
||||
|
||||
When upgrading, make sure you stop Docker Trusted Registry first, perform the Engine upgrade, and then restart Docker Trusted Registry.
|
||||
|
||||
If you are running with SELinux enabled, previous Docker Engine releases allowed
|
||||
you to bind-mount additional volumes or files inside the container as follows:
|
||||
|
||||
$ docker run -it -v /home/user/foo.txt:/foobar.txt:ro <imagename>
|
||||
|
||||
In the 1.6.2-cs5 release, you must ensure additional bind-mounts have the
|
||||
correct SELinux context. For example, if you want to mount `foobar.txt` as
|
||||
read-only into the container, do the following to create and test your
|
||||
bind-mount:
|
||||
|
||||
1. Add the `z` option to the bind mount when you specify `docker run`.
|
||||
|
||||
```bash
|
||||
$ docker run -it -v /home/user/foo.txt:/foobar.txt:ro,z <imagename>
|
||||
```
|
||||
|
||||
2. Exec into your new container.
|
||||
|
||||
For example, if your container is `bashful_curie`, open a shell on the
|
||||
container:
|
||||
|
||||
```bash
|
||||
$ docker exec -it bashful_curie bash
|
||||
```
|
||||
|
||||
3. Use `cat` to check the permissions on the mounted file.
|
||||
|
||||
```bash
|
||||
$ cat /foobar.txt
|
||||
the contents of foobar appear
|
||||
```
|
||||
|
||||
If you see the file's contents, your mount succeeded. If you receive a
|
||||
`Permission denied` message and/or the `/var/log/audit/audit.log` file on your
|
||||
Docker host contains an AVC Denial message, the mount did not succeed.
|
||||
|
||||
type=AVC msg=audit(1432145409.197:7570): avc: denied { read } for pid=21167 comm="cat" name="foobar.txt" dev="xvda2" ino=17704136 scontext=system_u:system_r:svirt_lxc_net_t:s0:c909,c965 tcontext=unconfined_u:object_r:user_home_t:s0 tclass=file
|
||||
|
||||
Recheck your command line to make sure you passed in the `z` option.
|
||||
|
||||
|
||||
## CS Engine 1.6.2-cs4
|
||||
(13 May 2015)
|
||||
|
||||
Fix mount regression for `/sys`.
|
||||
|
||||
## CS Engine 1.6.1-cs3
|
||||
(11 May 2015)
|
||||
|
||||
Docker Engine version 1.6.1 has been released to address several vulnerabilities
|
||||
and is immediately available for all supported platforms. Users are advised to
|
||||
upgrade existing installations of the Docker Engine and use 1.6.1 for new installations.
|
||||
|
||||
It should be noted that each of the vulnerabilities allowing privilege escalation
|
||||
may only be exploited by a malicious Dockerfile or image. Users are advised to
|
||||
run their own images and/or images built by trusted parties, such as those in
|
||||
the official images library.
|
||||
|
||||
Send any questions to security@docker.com.
|
||||
|
||||
|
||||
### **[CVE-2015-3629](https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2015-3629) Symlink traversal on container respawn allows local privilege escalation**
|
||||
|
||||
Libcontainer version 1.6.0 introduced changes which facilitated a mount namespace
|
||||
breakout upon respawn of a container. This allowed malicious images to write
|
||||
files to the host system and escape containerization.
|
||||
|
||||
Libcontainer and Docker Engine 1.6.1 have been released to address this
|
||||
vulnerability. Users running untrusted images are encouraged to upgrade Docker Engine.
|
||||
|
||||
Discovered by Tõnis Tiigi.
|
||||
|
||||
|
||||
### **[CVE-2015-3627](https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2015-3627) Insecure opening of file-descriptor 1 leading to privilege escalation**
|
||||
|
||||
The file-descriptor passed by libcontainer to the pid-1 process of a container
|
||||
has been found to be opened prior to performing the chroot, allowing insecure
|
||||
open and symlink traversal. This allows malicious container images to trigger
|
||||
a local privilege escalation.
|
||||
|
||||
Libcontainer and Docker Engine 1.6.1 have been released to address this
|
||||
vulnerability. Users running untrusted images are encouraged to upgrade
|
||||
Docker Engine.
|
||||
|
||||
Discovered by Tõnis Tiigi.
|
||||
|
||||
### **[CVE-2015-3630](https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2015-3630) Read/write proc paths allow host modification & information disclosure**
|
||||
|
||||
Several paths underneath /proc were writable from containers, allowing global
|
||||
system manipulation and configuration. These paths included `/proc/asound`,
|
||||
`/proc/timer_stats`, `/proc/latency_stats`, and `/proc/fs`.
|
||||
|
||||
By allowing writes to `/proc/fs`, it has been noted that CIFS volumes could be
|
||||
forced into a protocol downgrade attack by a root user operating inside of a
|
||||
container. Machines having loaded the timer_stats module were vulnerable to
|
||||
having this mechanism enabled and consumed by a container.
|
||||
|
||||
We are releasing Docker Engine 1.6.1 to address this vulnerability. All
|
||||
versions up to 1.6.1 are believed vulnerable. Users running untrusted
|
||||
images are encouraged to upgrade.
|
||||
|
||||
Discovered by Eric Windisch of the Docker Security Team.
|
||||
|
||||
### **[CVE-2015-3631](https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2015-3631) Volume mounts allow LSM profile escalation**
|
||||
|
||||
By allowing volumes to override files of `/proc` within a mount namespace, a user
|
||||
could specify arbitrary policies for Linux Security Modules, including setting
|
||||
an unconfined policy underneath AppArmor, or a `docker_t` policy for processes
|
||||
managed by SELinux. In all versions of Docker up until 1.6.1, it is possible for
|
||||
malicious images to configure volume mounts such that files of proc may be overridden.
|
||||
|
||||
We are releasing Docker Engine 1.6.1 to address this vulnerability. All versions
|
||||
up to 1.6.1 are believed vulnerable. Users running untrusted images are encouraged
|
||||
to upgrade.
|
||||
|
||||
Discovered by Eric Windisch of the Docker Security Team.
|
||||
|
||||
### **AppArmor policy improvements**
|
||||
|
||||
The 1.6.1 release also marks preventative additions to the AppArmor policy.
|
||||
Recently, several CVEs against the kernel have been reported whereby mount
|
||||
namespaces could be circumvented through the use of the `sys_mount` syscall from
|
||||
inside of an unprivileged Docker container. In all reported cases, the
|
||||
AppArmor policy included in libcontainer and shipped with Docker has been
|
||||
sufficient to deflect these attacks. However, we have deemed it prudent to
|
||||
proactively tighten the policy further by outright denying the use of the
|
||||
`sys_mount` syscall.
|
||||
|
||||
Because this addition is preventative, no CVE-ID is requested.
|
||||
|
||||
## CS Engine 1.6.0-cs2
|
||||
(23 Apr 2015)
|
||||
|
||||
First release, see the [Docker Engine 1.6.0 Release notes](/v1.6/release-notes/)
|
||||
for more details.
|
|
@ -1,221 +0,0 @@
|
|||
---
|
||||
description: Commercially supported Docker Engine release notes
|
||||
keywords: docker, documentation, about, technology, understanding, enterprise, hub, registry, Commercially Supported Docker Engine, release notes
|
||||
redirect_from:
|
||||
- /docker-trusted-registry/cse-release-notes/
|
||||
- /docker-trusted-registry/cs-engine/release-notes/release-notes/
|
||||
- /cs-engine/release-notes/release-notes/
|
||||
title: Commercially Supported Engine release notes
|
||||
---
|
||||
|
||||
This document describes the latest changes, additions, known issues, and fixes
|
||||
for the commercially supported Docker Engine (CS Engine).
|
||||
|
||||
The CS Engine is functionally equivalent to the corresponding Docker Engine that
|
||||
it references. However, a commercially supported release also includes
|
||||
back-ported fixes (security-related and priority defects) from the open source.
|
||||
It incorporates defect fixes that you can use in environments where new features
|
||||
cannot be adopted as quickly for consistency and compatibility reasons.
|
||||
|
||||
## Prior versions
|
||||
|
||||
These notes refer to the current and immediately prior releases of the
|
||||
CS Engine. For notes on older versions, see the [CS Engine prior release notes archive](prior-release-notes.md).
|
||||
|
||||
## CS Engine 1.12.6-cs13
|
||||
(28 Jul 2017)
|
||||
|
||||
* Fix packaging issue where packages were missing a `containerd` patch.
|
||||
This resolves an issue with a deadlock in containerd related to healtchecks.
|
||||
* Fix a deadlock on cancelling healthcecks. [#28462](https://github.com/moby/moby/pull/28462)
|
||||
|
||||
## CS Engine 1.12.6-cs12
|
||||
(01 Jun 2017)
|
||||
|
||||
* Fix an issue where if a volume using the local volume driver which has
|
||||
mount options fails to unmount on container exit, the data in the mount may be
|
||||
lost if the user attempts to subsequently remove the volume. [#32327](https://github.com/docker/docker/pulls/32327)
|
||||
|
||||
## CS Engine 1.12.6-cs11
|
||||
(11 May 2017)
|
||||
|
||||
* Fix an issue with overlay networks L2 miss notifications not being handled in
|
||||
some cases [#1642](https://github.com/docker/libnetwork/pull/1642)
|
||||
|
||||
## CS Engine 1.12.6-cs10
|
||||
(6 Mar 2017)
|
||||
|
||||
* Fix concurrency issue in libnetwork
|
||||
|
||||
## CS Engine 1.12.6-cs9
|
||||
(28 Feb 2017)
|
||||
|
||||
* Fixes an issue causing containerd to deadlock [#336](https://github.com/docker/containerd/pull/336)
|
||||
* Fixes an issue where encrypted overlay networks stop working [#30727](https://github.com/docker/docker/issues/30727)
|
||||
|
||||
## CS Engine 1.12.6-cs8
|
||||
(8 Feb 2017)
|
||||
|
||||
This release addresses the following issues:
|
||||
|
||||
* Addresses performance issues introduced by external KV-Store access with the
|
||||
`docker network ls` endpoint with large amounts of overlay networks and containers
|
||||
attached to those networks
|
||||
|
||||
* Addresses an inconsistent mac -> vtep binding issue when using overlay networks
|
||||
|
||||
* Adds a new repository for RHEL 7.2 users, to deal with issues
|
||||
users have encountered when installing the docker-engine-selinux package
|
||||
on systems pinned to 7.2 packages that are older than those available in the
|
||||
normal 7.2 install. This change relates to packaging changes for
|
||||
[1.12.6-cs7](#cs-engine-1126-cs7).
|
||||
|
||||
Users experiencing issues installing the selinux package should switch to this
|
||||
repository. See [install instructions](/cs-engine/install.md) for more details.
|
||||
Only switch to this repository if you encounter problems installing the
|
||||
selinux packages from the centos/7 repo.
|
||||
|
||||
## CS Engine 1.12.6-cs7
|
||||
(24 Jan 2017)
|
||||
|
||||
This release addresses the following issues:
|
||||
|
||||
* [#28406](https://github.com/docker/docker/issues/28406) Fix conflicts introduced
|
||||
by the updated `selinux-policy` base package from RHEL/CentOS 7.3
|
||||
* [#26639](https://github.com/docker/docker/issues/26639) Resolves hostnames passed
|
||||
to the local volume driver for nfs mount options.
|
||||
* [#26111](https://github.com/docker/docker/issues/26111) Fix issue with adding
|
||||
iptables rules due to xtables lock message change.
|
||||
|
||||
## CS Engine 1.12.6-cs6
|
||||
(10 Jan 2017)
|
||||
|
||||
Bumps RunC version to address CVE-2016-9962.
|
||||
|
||||
Refer to the [detailed list](https://github.com/docker/docker/releases/tag/v1.12.6) of all
|
||||
changes since the release of CS Engine 1.12.5-cs5.
|
||||
|
||||
## CS Engine 1.12.5-cs5
|
||||
(21 Dec 2016)
|
||||
|
||||
Refer to the [detailed list](https://github.com/docker/docker/releases/tag/v1.12.5) of all
|
||||
changes since the release of CS Engine 1.12.3-cs4.
|
||||
|
||||
## CS Engine 1.12.3-cs4
|
||||
(11 Nov 2016)
|
||||
|
||||
This releases addresses the following issues:
|
||||
|
||||
* [#27370](https://github.com/docker/docker/issues/27370) Fix `--net-alias` for
|
||||
`--attachable` networks
|
||||
* [#28051](https://github.com/docker/docker/issues/28051) Fix an issue removing
|
||||
a `--attachable` network by ID.
|
||||
|
||||
## CS Engine 1.12.3-cs3
|
||||
(27 Oct 2016)
|
||||
|
||||
Refer to the [detailed list](https://github.com/docker/docker/releases) of all
|
||||
changes since the release of CS Engine 1.12.2-cs2.
|
||||
|
||||
## CS Engine 1.12.2-cs2
|
||||
(13 Oct 2016)
|
||||
|
||||
Refer to the [detailed list](https://github.com/docker/docker/releases) of all
|
||||
changes since the release of CS Engine 1.12.1-cs1.
|
||||
|
||||
## CS Engine 1.12.1-cs1
|
||||
(20 Sep 2016)
|
||||
|
||||
Refer to the [detailed list](https://github.com/docker/docker/releases) of all
|
||||
changes since the release of CS Engine 1.11.2-cs5.
|
||||
|
||||
This release addresses the following issues:
|
||||
|
||||
* [#25962](https://github.com/docker/docker/pull/25962) Allow normal containers
|
||||
to connect to swarm-mode overlay network
|
||||
* Various bug fixes in swarm mode networking
|
||||
|
||||
## CS Engine 1.11.2-cs8
|
||||
(01 Jun 2017)
|
||||
|
||||
* Fix an issue where if a volume using the local volume driver which has
|
||||
mount options fails to unmount on container exit, the data in the mount may be
|
||||
lost if the user attempts to subsequently remove the volume. [#32327](https://github.com/docker/docker/pulls/32327)
|
||||
|
||||
## CS Engine 1.11.2-cs7
|
||||
(24 Jan 2017)
|
||||
|
||||
This release addresses the following issues:
|
||||
|
||||
* [#26639](https://github.com/docker/docker/issues/26639) Resolves hostnames passed
|
||||
to the local volume driver for nfs mount options.
|
||||
* [#26111](https://github.com/docker/docker/issues/26111) Fix issue with adding
|
||||
iptables rules due to xtables lock message change.
|
||||
* [#1572](https://github.com/docker/libnetwork/issues/1572) Fix daemon panic
|
||||
* [#1130](https://github.com/docker/libnetwork/pull/1130) Fix IPAM out of sync
|
||||
issue on ungraceful shutdown.
|
||||
|
||||
## CS Engine 1.11.2-cs6
|
||||
(12 Jan 2017)
|
||||
|
||||
Bumps RunC version to address CVE-2016-9962.
|
||||
|
||||
## CS Engine 1.11.2-cs5
|
||||
(13 Sep 2016)
|
||||
|
||||
This release addresses the following issues:
|
||||
|
||||
* Make the docker daemon ignore the `SIGPIPE` signal
|
||||
[#19728](https://github.com/docker/docker/issues/19728)
|
||||
* Fix race in libdevicemapper symlink handling
|
||||
[#24671](https://github.com/docker/docker/issues/24671)
|
||||
* Generate additional logging when unmarshalling devicemapper metadata
|
||||
[#23974](https://github.com/docker/docker/pull/23974)
|
||||
* Drop queries in root domain when ndots is set
|
||||
[#1441](https://github.com/docker/libnetwork/pull/1441)
|
||||
|
||||
## CS Engine 1.11.2-cs4
|
||||
(16 Aug 2016)
|
||||
|
||||
This release addresses the following issues:
|
||||
|
||||
* Change systemd kill mode to `process` so systemd only stops the docker daemon
|
||||
[#21933](https://github.com/docker/docker/issues/21933)
|
||||
* Fix dropped external DNS responses when greater than 512 bytes
|
||||
[#1373](https://github.com/docker/libnetwork/pull/1373)
|
||||
* Remove UDP connection caching in embedded DNS server
|
||||
[#1352](https://github.com/docker/libnetwork/pull/1352)
|
||||
* Fix issue where truncated DNS replies were discarded by the embedded DNS server
|
||||
[#1351](https://github.com/docker/libnetwork/pull/1351)
|
||||
|
||||
## CS Engine 1.11.2-cs3
|
||||
(7 Jun 2016)
|
||||
|
||||
This release addresses the following issues:
|
||||
|
||||
* Fix potential panic when running `docker build`
|
||||
[#23032](https://github.com/docker/docker/pull/23032)
|
||||
* Fix interpretation of `--user` parameter
|
||||
[#22998](https://github.com/docker/docker/pull/22998)
|
||||
* Fix a bug preventing container statistics from being correctly reported
|
||||
[#22955](https://github.com/docker/docker/pull/22955)
|
||||
* Fix an issue preventing containers from being restarted after daemon restart
|
||||
[#22947](https://github.com/docker/docker/pull/22947)
|
||||
* Fix a possible deadlock on image deletion and container attach
|
||||
[#22918](https://github.com/docker/docker/pull/22918)
|
||||
* Fix an issue causing `docker ps` to hang when using devicemapper
|
||||
[#22168](https://github.com/docker/docker/pull/22168)
|
||||
* Fix a bug preventing to `docker exec` into a container when using
|
||||
devicemapper [#22168](https://github.com/docker/docker/pull/22168)
|
||||
|
||||
## CS Engine 1.11.1-cs2
|
||||
(17 May 2016)
|
||||
|
||||
This release fixes the following issue which prevented DTR containers to be automatically restarted on a docker daemon restart:
|
||||
|
||||
https://github.com/docker/docker/issues/22486
|
||||
|
||||
## CS Engine 1.11.1-cs1
|
||||
(27 April 2016)
|
||||
|
||||
In this release the CS Engine is supported on RHEL 7.2 OS
|
|
@ -1,274 +0,0 @@
|
|||
---
|
||||
description: Learn how to install the commercially supported version of Docker Engine.
|
||||
keywords: docker, engine, dtr, upgrade
|
||||
redirect_from:
|
||||
- /docker-trusted-registry/cs-engine/upgrade/
|
||||
- /cs-engine/upgrade/
|
||||
title: Upgrade Commercially Supported Docker Engine
|
||||
---
|
||||
|
||||
This article explains how to upgrade your CS Docker Engine.
|
||||
|
||||
The upgrade process depends on the version that is currently installed and the
|
||||
version that you want to upgrade to:
|
||||
|
||||
* [Upgrade from the same minor version](upgrade.md#upgrade-from-the-same-minor-version)
|
||||
* [Upgrade from the same major version](upgrade.md#upgrade-from-the-same-major-version)
|
||||
* [Upgrade from a legacy version](upgrade.md#upgrade-from-a-legacy-version)
|
||||
|
||||
Before starting the upgrade, make sure you stop all containers running on the
|
||||
host. This ensures your containers have time for cleaning up before exiting,
|
||||
thus avoiding data loss or corruption.
|
||||
|
||||
## Upgrade from the same minor version
|
||||
|
||||
Use these instructions if you're upgrading your CS Docker Engine within the
|
||||
same minor version. As an example, from 1.1.0 to 1.1.1.
|
||||
|
||||
### CentOS 7.1 & RHEL 7.0/7.1
|
||||
Use these instructions to upgrade YUM-based systems.
|
||||
|
||||
1. Update your docker-engine package:
|
||||
|
||||
```bash
|
||||
$ sudo yum upgrade docker-engine
|
||||
```
|
||||
|
||||
2. Check that the CS Docker Engine is running:
|
||||
|
||||
```bash
|
||||
$ sudo docker info
|
||||
```
|
||||
|
||||
### Ubuntu 14.04 LTS
|
||||
Use these instructions to upgrade APT-based systems.
|
||||
|
||||
1. Update your docker-engine package:
|
||||
|
||||
```bash
|
||||
$ sudo apt-get update && sudo apt-get upgrade docker-engine
|
||||
```
|
||||
|
||||
2. Check that the CS Docker Engine is running:
|
||||
|
||||
```bash
|
||||
$ sudo docker info
|
||||
```
|
||||
|
||||
### SUSE Enterprise 12.3
|
||||
|
||||
1. Update your docker-engine package:
|
||||
|
||||
```bash
|
||||
$ sudo zypper upgrade docker-engine
|
||||
```
|
||||
|
||||
2. Check that the CS Docker Engine is running:
|
||||
|
||||
```bash
|
||||
$ sudo docker info
|
||||
```
|
||||
|
||||
|
||||
## Upgrade from the same major version
|
||||
|
||||
Use these instructions if you're upgrading your CS Docker Engine within the
|
||||
same major version. As an example, from 1.1.x to 1.2.x.
|
||||
|
||||
|
||||
### CentOS 7.1 & RHEL 7.0/7.1
|
||||
Use these instructions to upgrade YUM-based systems.
|
||||
|
||||
1. Add the Docker Engine repository.
|
||||
|
||||
```bash
|
||||
$ sudo yum-config-manager --add-repo https://packages.docker.com/1.12/yum/repo/main/centos/7
|
||||
```
|
||||
|
||||
This adds the repository of the latest version of CS Docker Engine. You can
|
||||
customize the URL to install other versions.
|
||||
|
||||
2. Install the new package:
|
||||
|
||||
```bash
|
||||
$ sudo yum update docker-engine
|
||||
```
|
||||
|
||||
3. Check that the CS Engine is running:
|
||||
|
||||
```bash
|
||||
$ sudo docker info
|
||||
```
|
||||
|
||||
### Ubuntu 14.04 LTS
|
||||
Use these instructions to update APT-based systems.
|
||||
|
||||
|
||||
1. Add the docker engine repository.
|
||||
|
||||
```bash
|
||||
$ echo "deb https://packages.docker.com/1.12/apt/repo ubuntu-trusty main" | sudo tee /etc/apt/sources.list.d/docker.list
|
||||
```
|
||||
|
||||
This adds the repository of the latest version of CS Docker Engine for the
|
||||
Ubuntu Trusty distribution. Change the "ubuntu-trusty" string to the
|
||||
distribution you're using:
|
||||
|
||||
* debian-jessie (Debian 8)
|
||||
* debian-stretch (future release)
|
||||
* debian-wheezy (Debian 7)
|
||||
* ubuntu-precise (Ubuntu 12.04)
|
||||
* ubuntu-trusty (Ubuntu 14.04)
|
||||
* ubuntu-utopic (Ubuntu 14.10)
|
||||
* ubuntu-vivid (Ubuntu 15.04)
|
||||
* ubuntu-wily (Ubuntu 15.10)
|
||||
|
||||
2. Update your docker-engine package.
|
||||
|
||||
```bash
|
||||
$ sudo apt-get update && sudo apt-get upgrade docker-engine
|
||||
```
|
||||
|
||||
3. Check that the CS Engine is running:
|
||||
|
||||
```bash
|
||||
$ sudo docker info
|
||||
```
|
||||
|
||||
#### SUSE Enterprise 12.3
|
||||
|
||||
1. Add the docker engine repository.
|
||||
|
||||
```bash
|
||||
$ sudo zypper ar -t YUM https://packages.docker.com/1.12/yum/repo/main/opensuse/12.3 docker-1.12
|
||||
```
|
||||
|
||||
This adds the repository of the latest version of CS Docker Engine. You
|
||||
can customize the URL to install other versions.
|
||||
|
||||
2. Install the new package:
|
||||
|
||||
```bash
|
||||
$ sudo zypper update docker-engine
|
||||
```
|
||||
|
||||
3. Check that the CS Engine is running:
|
||||
|
||||
```bash
|
||||
$ sudo docker info
|
||||
```
|
||||
|
||||
|
||||
## Upgrade from a legacy version
|
||||
|
||||
Use these instructions if you're upgrading your CS Docker Engine from a version
|
||||
prior to 1.9. In this case, first uninstall CS Docker Engine, and
|
||||
then install the latest version.
|
||||
|
||||
### CentOS 7.1 & RHEL 7.0/7.1
|
||||
Use these instructions to upgrade YUM-based systems.
|
||||
|
||||
1. Remove the current CS Engine:
|
||||
|
||||
```bash
|
||||
$ sudo yum remove docker-engine-cs
|
||||
```
|
||||
|
||||
2. Add the Docker public key for CS packages:
|
||||
|
||||
```bash
|
||||
$ sudo rpm --import "https://sks-keyservers.net/pks/lookup?op=get&search=0xee6d536cf7dc86e2d7d56f59a178ac6c6238f52e"
|
||||
```
|
||||
|
||||
**Note**: If the key server above does not respond, you can try one of these:
|
||||
- pgp.mit.edu
|
||||
- keyserver.ubuntu.com
|
||||
|
||||
3. Install yum-utils if necessary:
|
||||
|
||||
```bash
|
||||
$ sudo yum install -y yum-utils
|
||||
```
|
||||
|
||||
4. Add the repository for the new version and disable the old one.
|
||||
|
||||
```bash
|
||||
$ sudo yum-config-manager --add-repo https://packages.docker.com/1.12/yum/repo/main/centos/7
|
||||
$ sudo yum-config-manager --disable 'Docker_cs*'
|
||||
```
|
||||
|
||||
This adds the repository of the latest version of CS Docker Engine. You
|
||||
can customize the URL to install other versions.
|
||||
|
||||
5. Install the new package:
|
||||
|
||||
```bash
|
||||
$ sudo yum install docker-engine
|
||||
```
|
||||
|
||||
6. Enable the Docker daemon as a service and start it.
|
||||
|
||||
```bash
|
||||
$ sudo systemctl enable docker.service
|
||||
$ sudo systemctl start docker.service
|
||||
```
|
||||
|
||||
### Ubuntu 14.04 LTS
|
||||
Use these instructions to update APT-based systems.
|
||||
|
||||
|
||||
1. Remove the current Engine:
|
||||
|
||||
```bash
|
||||
$ sudo apt-get remove docker-engine-cs
|
||||
```
|
||||
|
||||
2. Add the Docker public key for CS packages:
|
||||
|
||||
```bash
|
||||
$ curl -s 'https://sks-keyservers.net/pks/lookup?op=get&search=0xee6d536cf7dc86e2d7d56f59a178ac6c6238f52e' | sudo apt-key add --import
|
||||
```
|
||||
|
||||
**Note**: If the key server above does not respond, you can try one of these:
|
||||
- pgp.mit.edu
|
||||
- keyserver.ubuntu.com
|
||||
|
||||
3. Install the HTTPS helper for apt (your system may already have it):
|
||||
|
||||
```bash
|
||||
$ sudo apt-get update && sudo apt-get install apt-transport-https
|
||||
```
|
||||
|
||||
4. Install additional virtual drivers not in the parent image.
|
||||
|
||||
```bash
|
||||
$ sudo apt-get install -y linux-image-extra-virtual
|
||||
```
|
||||
|
||||
You may need to reboot your server after updating the LTS kernel.
|
||||
|
||||
5. Add the repository for the new version:
|
||||
|
||||
```bash
|
||||
$ echo "deb https://packages.docker.com/1.12/apt/repo ubuntu-trusty main" | sudo tee /etc/apt/sources.list.d/docker.list
|
||||
```
|
||||
|
||||
This adds the repository of the latest version of CS Docker Engine for the
|
||||
Ubuntu Trusty distribution. Change the "ubuntu-trusty" string to the
|
||||
distribution you're using:
|
||||
|
||||
* debian-jessie (Debian 8)
|
||||
* debian-stretch (future release)
|
||||
* debian-wheezy (Debian 7)
|
||||
* ubuntu-precise (Ubuntu 12.04)
|
||||
* ubuntu-trusty (Ubuntu 14.04)
|
||||
* ubuntu-utopic (Ubuntu 14.10)
|
||||
* ubuntu-vivid (Ubuntu 15.04)
|
||||
* ubuntu-wily (Ubuntu 15.10)
|
||||
|
||||
|
||||
6. Install the upgraded package:
|
||||
|
||||
```bash
|
||||
$ sudo apt-get upgrade docker-engine
|
||||
```
|
|
@ -1,341 +0,0 @@
|
|||
---
|
||||
title: Install CS Docker Engine
|
||||
description: Learn how to install the commercially supported version of Docker Engine.
|
||||
keywords: docker, engine, install
|
||||
redirect_from:
|
||||
- /docker-trusted-registry/install/engine-ami-launch/
|
||||
- /docker-trusted-registry/install/install-csengine/
|
||||
- /docker-trusted-registry/cs-engine/install/
|
||||
- /cs-engine/install/
|
||||
---
|
||||
|
||||
Follow these instructions to install CS Docker Engine, the commercially
|
||||
supported version of Docker Engine.
|
||||
|
||||
CS Docker Engine can be installed on the following operating systems:
|
||||
|
||||
* [CentOS 7.1/7.2 & RHEL 7.0/7.1/7.2/7.3 (YUM-based systems)](#install-on-centos-7172--rhel-70717273-yum-based-systems)
|
||||
* [Ubuntu 14.04 LTS or 16.04 LTS](#install-on-ubuntu-1404-lts-or-1604-lts)
|
||||
* [SUSE Linux Enterprise 12](#install-on-suse-linux-enterprise-123)
|
||||
|
||||
You can install CS Docker Engine using a repository or using packages.
|
||||
|
||||
- If you [use a repository](#install-using-a-repository), your operating system
|
||||
will notify you when updates are available and you can upgrade or downgrade
|
||||
easily, but you need an internet connection. This approach is recommended.
|
||||
|
||||
- If you [use packages](#install-using-packages), you can install CS Docker
|
||||
Engine on air-gapped systems that have no internet connection. However, you
|
||||
are responsible for manually checking for updates and managing upgrades.
|
||||
|
||||
## Prerequisites
|
||||
|
||||
To install CS Docker Engine, you need root or sudo privileges and you need
|
||||
access to a command line on the system.
|
||||
|
||||
## Install using a repository
|
||||
|
||||
### Install on CentOS 7.1/7.2 & RHEL 7.0/7.1/7.2/7.3 (YUM-based systems)
|
||||
|
||||
This section explains how to install on CentOS 7.1/7.2 & RHEL 7.0/7.1/7.2/7.3. Only
|
||||
these versions are supported. CentOS 7.0 is **not** supported. On RHEL,
|
||||
depending on your current level of updates, you may need to reboot your server
|
||||
to update its RHEL kernel.
|
||||
|
||||
1. Add the Docker public key for CS Docker Engine packages:
|
||||
|
||||
```bash
|
||||
$ sudo rpm --import "https://sks-keyservers.net/pks/lookup?op=get&search=0xee6d536cf7dc86e2d7d56f59a178ac6c6238f52e"
|
||||
```
|
||||
|
||||
> **Note**: If the key server above does not respond, you can try one of these:
|
||||
>
|
||||
> - pgp.mit.edu
|
||||
> - keyserver.ubuntu.com
|
||||
|
||||
2. Install yum-utils if necessary:
|
||||
|
||||
```bash
|
||||
$ sudo yum install -y yum-utils
|
||||
```
|
||||
|
||||
3. Add the Docker repository:
|
||||
|
||||
```bash
|
||||
$ sudo yum-config-manager --add-repo https://packages.docker.com/1.13/yum/repo/main/centos/7
|
||||
```
|
||||
|
||||
This adds the repository of the latest version of CS Docker Engine. You can
|
||||
customize the URL to install an older version.
|
||||
|
||||
4. Install Docker CS Engine:
|
||||
|
||||
- **Latest version**:
|
||||
|
||||
```bash
|
||||
$ sudo yum makecache fast
|
||||
|
||||
$ sudo yum install docker-engine
|
||||
```
|
||||
|
||||
- **Specific version**:
|
||||
|
||||
On production systems, you should install a specific version rather than
|
||||
relying on the latest.
|
||||
|
||||
1. List the available versions:
|
||||
|
||||
```bash
|
||||
$ yum list docker-engine.x86_64 --showduplicates |sort -r
|
||||
```
|
||||
|
||||
The second column represents the version.
|
||||
|
||||
2. Install a specific version by adding the version after `docker-engine`,
|
||||
separated by a hyphen (`-`):
|
||||
|
||||
```bash
|
||||
$ sudo yum install docker-engine-<version>
|
||||
```
|
||||
|
||||
5. Configure `devicemapper`:
|
||||
|
||||
By default, the `devicemapper` graph driver does not come pre-configured in
|
||||
a production-ready state. Follow the documented step by step instructions to
|
||||
[configure devicemapper with direct-lvm for production](/engine/userguide/storagedriver/device-mapper-driver/#configure-direct-lvm-mode-for-production)
|
||||
to achieve the best performance and reliability for your environment.
|
||||
|
||||
6. Configure the Docker daemon to start automatically when the system starts,
|
||||
and start it now.
|
||||
|
||||
```bash
|
||||
$ sudo systemctl enable docker.service
|
||||
$ sudo systemctl start docker.service
|
||||
```
|
||||
|
||||
7. Confirm the Docker daemon is running:
|
||||
|
||||
```bash
|
||||
$ sudo docker info
|
||||
```
|
||||
|
||||
8. Only users with `sudo` access can run `docker` commands.
|
||||
Optionally, add non-sudo access to the Docker socket by adding your user
|
||||
to the `docker` group.
|
||||
|
||||
```bash
|
||||
$ sudo usermod -a -G docker $USER
|
||||
```
|
||||
|
||||
9. Log out and log back in to have your new permissions take effect.
|
||||
|
||||
### Install on Ubuntu 14.04 LTS or 16.04 LTS
|
||||
|
||||
1. Install packages to allow `apt` to use a repository over HTTPS:
|
||||
|
||||
```bash
|
||||
$ sudo apt-get update
|
||||
|
||||
$ sudo apt-get install --no-install-recommends \
|
||||
apt-transport-https \
|
||||
curl \
|
||||
software-properties-common
|
||||
```
|
||||
|
||||
Optionally, install additional kernel modules to add AUFS support.
|
||||
|
||||
```bash
|
||||
$ sudo apt-get install -y --no-install-recommends \
|
||||
linux-image-extra-$(uname -r) \
|
||||
linux-image-extra-virtual
|
||||
```
|
||||
|
||||
2. Download and import Docker's public key for CS packages:
|
||||
|
||||
```bash
|
||||
$ curl -fsSL 'https://sks-keyservers.net/pks/lookup?op=get&search=0xee6d536cf7dc86e2d7d56f59a178ac6c6238f52e' | sudo apt-key add -
|
||||
```
|
||||
|
||||
> **Note**: If the key server above does not respond, you can try one of these:
|
||||
>
|
||||
> - pgp.mit.edu
|
||||
> - keyserver.ubuntu.com
|
||||
|
||||
3. Add the repository. In the command below, the `lsb_release -cs` sub-command
|
||||
returns the name of your Ubuntu version, like `xenial` or `trusty`.
|
||||
|
||||
```bash
|
||||
$ sudo add-apt-repository \
|
||||
"deb https://packages.docker.com/1.13/apt/repo/ \
|
||||
ubuntu-$(lsb_release -cs) \
|
||||
main"
|
||||
```
|
||||
|
||||
4. Install CS Docker Engine:
|
||||
|
||||
- **Latest version**:
|
||||
|
||||
```bash
|
||||
$ sudo apt-get update
|
||||
|
||||
$ sudo apt-get -y install docker-engine
|
||||
```
|
||||
|
||||
- **Specific version**:
|
||||
|
||||
On production systems, you should install a specific version rather than
|
||||
relying on the latest.
|
||||
|
||||
1. List the available versions:
|
||||
|
||||
```bash
|
||||
$ sudo apt-get update
|
||||
|
||||
$ apt-cache madison docker-engine
|
||||
```
|
||||
|
||||
The second column represents the version.
|
||||
|
||||
2. Install a specific version by adding the version after `docker-engine`,
|
||||
separated by an equals sign (`=`):
|
||||
|
||||
```bash
|
||||
$ sudo apt-get install docker-engine=<version>
|
||||
```
|
||||
|
||||
5. Confirm the Docker daemon is running:
|
||||
|
||||
```bash
|
||||
$ sudo docker info
|
||||
```
|
||||
|
||||
6. Only users with `sudo` access can run `docker` commands.
|
||||
Optionally, add non-sudo access to the Docker socket by adding your user
|
||||
to the `docker` group.
|
||||
|
||||
```bash
|
||||
$ sudo usermod -a -G docker $USER
|
||||
```
|
||||
|
||||
Log out and log back in to have your new permissions take effect.
|
||||
|
||||
### Install on SUSE Linux Enterprise 12.3
|
||||
|
||||
1. Refresh your repository:
|
||||
|
||||
```bash
|
||||
$ sudo zypper update
|
||||
```
|
||||
|
||||
2. Add the Docker repository and public key:
|
||||
|
||||
```bash
|
||||
$ sudo zypper ar -t YUM https://packages.docker.com/1.13/yum/repo/main/opensuse/12.3 docker-1.13
|
||||
$ sudo rpm --import 'https://sks-keyservers.net/pks/lookup?op=get&search=0xee6d536cf7dc86e2d7d56f59a178ac6c6238f52e'
|
||||
```
|
||||
|
||||
This adds the repository of the latest version of CS Docker Engine. You can
|
||||
customize the URL to install an older version.
|
||||
|
||||
> **Note**: If the key server above does not respond, you can try one of these:
|
||||
>
|
||||
> - pgp.mit.edu
|
||||
> - keyserver.ubuntu.com
|
||||
|
||||
3. Install CS Docker Engine.
|
||||
|
||||
- **Latest version**:
|
||||
|
||||
```bash
|
||||
$ sudo zypper refresh
|
||||
|
||||
$ sudo zypper install docker-engine
|
||||
```
|
||||
|
||||
- **Specific version**:
|
||||
|
||||
On production systems, you should install a specific version rather than
|
||||
relying on the latest.
|
||||
|
||||
1. List the available versions:
|
||||
|
||||
```bash
|
||||
$ sudo zypper refresh
|
||||
|
||||
$ zypper search -s --match-exact -t package docker-engine
|
||||
```
|
||||
|
||||
The third column is the version string.
|
||||
|
||||
2. Install a specific version by adding the version after `docker-engine`,
|
||||
separated by a hyphen (`-`):
|
||||
|
||||
```bash
|
||||
$ sudo zypper install docker-engine-<version>
|
||||
```
|
||||
|
||||
4. Configure the Docker daemon to start automatically when the system starts,
|
||||
and start it now.
|
||||
|
||||
```bash
|
||||
$ sudo systemctl enable docker.service
|
||||
$ sudo systemctl start docker.service
|
||||
```
|
||||
|
||||
5. Confirm the Docker daemon is running:
|
||||
|
||||
```bash
|
||||
$ sudo docker info
|
||||
```
|
||||
|
||||
6. Only users with `sudo` access can run `docker` commands.
|
||||
Optionally, add non-sudo access to the Docker socket by adding your user
|
||||
to the `docker` group.
|
||||
|
||||
```bash
|
||||
$ sudo usermod -a -G docker $USER
|
||||
```
|
||||
|
||||
Log out and log back in to have your new permissions take effect.
|
||||
|
||||
7. [Configure Btrfs for graph storage](/engine/userguide/storagedriver/btrfs-driver.md).
|
||||
This is the only graph storage driver supported on SLES.
|
||||
|
||||
## Install using packages
|
||||
|
||||
If you need to install Docker on an air-gapped system with no access to the
|
||||
internet, use the [package download link table](#package-download-links) to
|
||||
download the Docker package for your operating system, then install it using the
|
||||
[appropriate command](#general-commands). You are responsible for manually
|
||||
upgrading Docker when a new version is available, and also for satisfying
|
||||
Docker's dependencies.
|
||||
|
||||
### General commands
|
||||
|
||||
To install Docker from packages, use the following commands:
|
||||
|
||||
| Operating system | Command |
|
||||
|-----------------------|---------|
|
||||
| RHEL / CentOS / SLES | `$ sudo yum install /path/to/package.rpm` |
|
||||
| Ubuntu | `$ sudo dpkg -i /path/to/package.deb` |
|
||||
|
||||
### Package download links
|
||||
|
||||
{% assign rpm-prefix = "https://packages.docker.com/1.13/yum/repo/main" %}
|
||||
{% assign deb-prefix = "https://packages.docker.com/1.13/apt/repo/pool/main/d/docker-engine" %}
|
||||
|
||||
#### CS Docker Engine 1.13.1
|
||||
|
||||
{% comment %} Check on the S3 bucket for packages.docker.com for the versions. {% endcomment %}
|
||||
{% assign rpm-version = "1.13.1.cs8-1" %}
|
||||
{% assign rpm-rhel-version = "1.13.1.cs8-1" %}
|
||||
{% assign deb-version = "1.13.1~cs8-0" %}
|
||||
|
||||
| Operating system | Package links |
|
||||
|-----------------------|--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
|
||||
| RHEL 7.x and CentOS 7 | [docker-engine]({{ rpm-prefix }}/centos/7/Packages/docker-engine-{{ rpm-version}}.el7.centos.x86_64.rpm), [docker-engine-debuginfo]({{ rpm-prefix }}/centos/7/Packages/docker-engine-debuginfo-{{ rpm-version }}.el7.centos.x86_64.rpm), [docker-engine-selinux]({{ rpm-prefix }}/centos/7/Packages/docker-engine-selinux-{{ rpm-version}}.el7.centos.noarch.rpm) |
|
||||
| RHEL 7.2 (only use if you have problems with `selinux` with the packages above) | [docker-engine]({{ rpm-prefix }}/rhel/7.2/Packages/docker-engine-{{ rpm-rhel-version }}.el7.centos.x86_64.rpm), [docker-engine-debuginfo]({{ rpm-prefix }}/rhel/7.2/Packages/docker-engine-debuginfo-{{ rpm-rhel-version }}.el7.centos.x86_64.rpm), [docker-engine-selinux]({{ rpm-prefix }}/rhel/7.2/Packages/docker-engine-selinux-{{ rpm-rhel-version }}.el7.centos.noarch.rpm) |
|
||||
| SLES 12 | [docker-engine]({{ rpm-prefix }}/opensuse/12.3/Packages/docker-engine-{{ rpm-version }}.x86_64.rpm) |
|
||||
| Ubuntu Xenial | [docker-engine]({{ deb-prefix }}/docker-engine_{{ deb-version }}~ubuntu-xenial_amd64.deb) |
|
||||
| Ubuntu Trusty | [docker-engine]({{ deb-prefix }}/docker-engine_{{ deb-version }}~ubuntu-trusty_amd64.deb) |
|
||||
| Ubuntu Precise | [docker-engine]({{ deb-prefix }}/docker-engine_{{ deb-version }}~ubuntu-precisel_amd64.deb) |
|
|
@ -1,136 +0,0 @@
|
|||
---
|
||||
title: CS Docker Engine 1.13 release notes
|
||||
description: Commercially supported Docker Engine release notes
|
||||
keywords: docker, engine, install, release notes
|
||||
redirect_from:
|
||||
- /docker-trusted-registry/cs-engine/release-notes/
|
||||
- /cs-engine/release-notes/
|
||||
---
|
||||
|
||||
This document describes the latest changes, additions, known issues, and fixes
|
||||
for the commercially supported Docker Engine (CS Engine).
|
||||
|
||||
The CS Engine is functionally equivalent to the corresponding Docker Engine that
|
||||
it references. However, a commercially supported release also includes
|
||||
back-ported fixes (security-related and priority defects) from the open source.
|
||||
It incorporates defect fixes that you can use in environments where new features
|
||||
cannot be adopted as quickly for consistency and compatibility reasons.
|
||||
|
||||
[Looking for the release notes for Docker CS Engine 1.12?](/cs-engine/1.12/release-notes/index.md)
|
||||
|
||||
## CS Engine 1.13.1-cs9 (2017-12-13)
|
||||
|
||||
* Handle cleanup DNS for attachable container to prevent leak in name resolution
|
||||
[docker/libnetwork#1999](https://github.com/docker/libnetwork/pull/1999)
|
||||
* When a node is removed, delete all of its attachment tasks so networks use
|
||||
by those tasks can be removed [docker/swarmkit#2417](https://github.com/docker/swarmkit/pull/2417)
|
||||
* Increase gRPC request timeout to 20 seconds for sending snapshots to prevent
|
||||
`context deadline exceeded` errors [docker/swarmkit#2406](https://github.com/docker/swarmkit/pull/2406)
|
||||
* Avoid using a map for log attributes to prevent panic
|
||||
[moby/moby#34174](https://github.com/moby/moby/pull/34174)
|
||||
* Fix "raw" mode with the Splunk logging driver
|
||||
[moby/moby#34520](https://github.com/moby/moby/pull/34520)
|
||||
* Don't unmount entire plugin manager tree on remove
|
||||
[moby/moby#33422](https://github.com/moby/moby/pull/33422)
|
||||
* Redact secret data on secret creation [moby/moby#33884](https://github.com/moby/moby/pull/33884)
|
||||
* Sort secrets and configs to ensure idempotence and prevent
|
||||
`docker stack deploy` from useless restart of services [docker/cli#509](https://github.com/docker/cli/pull/509)
|
||||
* Automatically set `may_detach_mounts=1` on startup to prevent
|
||||
`device or resource busy` errors [moby/moby#34886](https://github.com/moby/moby/pull/34886)
|
||||
* Don't abort when setting `may_detach_mounts`
|
||||
[moby/moby#35172](https://github.com/moby/moby/pull/35172)
|
||||
|
||||
## CS Engine 1.13.1-cs8 (2017-11-17)
|
||||
|
||||
* Protect health monitor channel to prevent engine panic [moby/moby#35482](https://github.com/moby/moby/pull/35482)
|
||||
|
||||
## CS Engine 1.13.1-cs7 (2017-10-13)
|
||||
|
||||
* Fix logic in network resource reaping to prevent memory leak [docker/libnetwork#1944](https://github.com/docker/libnetwork/pull/1944) [docker/libnetwork#1960](https://github.com/docker/libnetwork/pull/1960)
|
||||
* Increase max GRPC message size to 128MB for larger snapshots so newly added managers can successfully join [docker/swarmkit#2375](https://github.com/docker/swarmkit/pull/2375)
|
||||
|
||||
## CS Engine 1.13.1-cs6 (2017-08-24)
|
||||
|
||||
* Fix daemon panic on docker image push [moby/moby#33105](https://github.com/moby/moby/pull/33105)
|
||||
* Fix panic in concurrent network creation/deletion operations [docker/libnetwork#1861](https://github.com/docker/libnetwork/pull/1861)
|
||||
* Improve network db stability under stressful situations [docker/libnetwork#1860](https://github.com/docker/libnetwork/pull/1860)
|
||||
* Enable TCP Keep-Alive in Docker client [docker/cli#415](https://github.com/docker/cli/pull/415)
|
||||
* Lock goroutine to OS thread while changing NS [docker/libnetwork#1911](https://github.com/docker/libnetwork/pull/1911)
|
||||
* Ignore PullOptions for running tasks [docker/swarmkit#2351](https://github.com/docker/swarmkit/pull/2351)
|
||||
|
||||
## CS Engine 1.13.1-cs5 (21 Jul 2017)
|
||||
|
||||
* Add more locking to storage drivers [#31136](https://github.com/moby/moby/pull/31136)
|
||||
* Prevent data race on `docker network connect/disconnect` [#33456](https://github.com/moby/moby/pull/33456)
|
||||
* Improve service discovery reliability [#1796](https://github.com/docker/libnetwork/pull/1796) [#18078](https://github.com/docker/libnetwork/pull/1808)
|
||||
* Fix resource leak in swarm mode [#2215](https://github.com/docker/swarmkit/pull/2215)
|
||||
* Optimize `docker system df` for volumes on NFS [#33620](https://github.com/moby/moby/pull/33620)
|
||||
* Fix validation bug with host-mode ports in swarm mode [#2177](https://github.com/docker/swarmkit/pull/2177)
|
||||
* Fix potential crash in swarm mode [#2268](https://github.com/docker/swarmkit/pull/2268)
|
||||
* Improve network control-plane reliability [#1704](https://github.com/docker/libnetwork/pull/1704)
|
||||
* Do not error out when selinux relabeling is not supported on volume filesystem [#33831](https://github.com/moby/moby/pull/33831)
|
||||
* Remove debugging code for aufs ebusy errors [#31665](https://github.com/moby/moby/pull/31665)
|
||||
* Prevent resource leak on healthchecks [#33781](https://github.com/moby/moby/pull/33781)
|
||||
* Fix issue where containerd supervisor may exit prematurely [#32590](https://github.com/moby/moby/pull/32590)
|
||||
* Fix potential containerd crash [#2](https://github.com/docker/containerd/pull/2)
|
||||
* Ensure server details are set in client even when an error is returned [#33827](https://github.com/moby/moby/pull/33827)
|
||||
* Fix issue where slow/dead `docker logs` clients can block the container [#33897](https://github.com/moby/moby/pull/33897)
|
||||
* Fix potential panic on Windows when running as a service [#32244](https://github.com/moby/moby/pull/32244)
|
||||
|
||||
## CS Engine 1.13.1-cs4 (01 Jun 2017)
|
||||
|
||||
Backports all fixes from [17.03.2](https://github.com/moby/moby/releases/tag/v17.03.2-ce)
|
||||
|
||||
**Note**: This release includes a fix for potential data loss under certain
|
||||
circumstances with the local (built-in) volume driver.
|
||||
|
||||
## CS Engine 1.13.1-cs3
|
||||
(30 Mar 2017)
|
||||
|
||||
Backports all fixes from 17.03.1
|
||||
|
||||
* Fix issue with swarm CA timeouts [#2063](https://github.com/docker/swarmkit/pull/2063) [#2064](https://github.com/docker/swarmkit/pull/2064/files)
|
||||
|
||||
## CS Engine 1.13.1-cs2 (23 Feb 2017)
|
||||
|
||||
### Client
|
||||
|
||||
* Fix panic in `docker stats --format` [#30776](https://github.com/docker/docker/pull/30776)
|
||||
|
||||
### Contrib
|
||||
|
||||
* Update various `bash` and `zsh` completion scripts [#30823](https://github.com/docker/docker/pull/30823), [#30945](https://github.com/docker/docker/pull/30945) and more...
|
||||
* Block obsolete socket families in default seccomp profile - mitigates unpatched kernels' CVE-2017-6074 [#29076](https://github.com/docker/docker/pull/29076)
|
||||
|
||||
### Networking
|
||||
|
||||
* Fix bug on overlay encryption keys rotation in cross-datacenter swarm [#30727](https://github.com/docker/docker/pull/30727)
|
||||
* Fix side effect panic in overlay encryption and network control plane communication failure ("No installed keys could decrypt the message") on frequent swarm leader re-election [#25608](https://github.com/docker/docker/pull/25608)
|
||||
* Several fixes around system responsiveness and datapath programming when using overlay network with external kv-store [docker/libnetwork#1639](https://github.com/docker/libnetwork/pull/1639), [docker/libnetwork#1632](https://github.com/docker/libnetwork/pull/1632) and more...
|
||||
* Discard incoming plain vxlan packets for encrypted overlay network [#31170](https://github.com/docker/docker/pull/31170)
|
||||
* Release the network attachment on allocation failure [#31073](https://github.com/docker/docker/pull/31073)
|
||||
* Fix port allocation when multiple published ports map to the same target port [docker/swarmkit#1835](https://github.com/docker/swarmkit/pull/1835)
|
||||
|
||||
### Runtime
|
||||
|
||||
* Fix a deadlock in docker logs [#30223](https://github.com/docker/docker/pull/30223)
|
||||
* Fix CPU spin waiting for log write events [#31070](https://github.com/docker/docker/pull/31070)
|
||||
* Fix a possible crash when using journald [#31231](https://github.com/docker/docker/pull/31231) [#31263](https://github.com/docker/docker/pull/31231)
|
||||
* Fix a panic on close of nil channel [#31274](https://github.com/docker/docker/pull/31274)
|
||||
* Fix duplicate mount point for `--volumes-from` in `docker run` [#29563](https://github.com/docker/docker/pull/29563)
|
||||
* Fix `--cache-from` does not cache last step [#31189](https://github.com/docker/docker/pull/31189)
|
||||
* Fix issue with lock contention while performing container size calculation [#31159](https://github.com/docker/docker/pull/31159)
|
||||
|
||||
### Swarm Mode
|
||||
|
||||
* Shutdown leaks an error when the container was never started [#31279](https://github.com/docker/docker/pull/31279)
|
||||
* Fix possibility of tasks getting stuck in the "NEW" state during a leader failover [docker/swarmkit#1938](https://github.com/docker/swarmkit/pull/1938)
|
||||
* Fix extraneous task creations for global services that led to confusing replica counts in `docker service ls` [docker/swarmkit#1957](https://github.com/docker/swarmkit/pull/1957)
|
||||
* Fix problem that made rolling updates slow when `task-history-limit` was set to 1 [docker/swarmkit#1948](https://github.com/docker/swarmkit/pull/1948)
|
||||
* Restart tasks elsewhere, if appropriate, when they are shut down as a result of nodes no longer satisfying constraints [docker/swarmkit#1958](https://github.com/docker/swarmkit/pull/1958)
|
||||
|
||||
## CS Engine 1.13.1-cs1 (08 Feb 2017)
|
||||
|
||||
Refer to the detailed lists of changes since the release of CS Engine 1.12.6-cs8
|
||||
by reviewing the changes in [v1.13.0](https://github.com/docker/docker/releases/tag/v1.13.0)
|
||||
and [v1.13.1](https://github.com/docker/docker/releases/tag/v1.13.1).
|
|
@ -1,268 +0,0 @@
|
|||
---
|
||||
title: Upgrade Commercially Supported Docker Engine
|
||||
description: Learn how to upgrade the commercially supported version of Docker Engine.
|
||||
keywords: docker, engine, upgrade
|
||||
---
|
||||
|
||||
This article explains how to upgrade your CS Docker Engine.
|
||||
|
||||
The upgrade process depends on the version that is currently installed and the
|
||||
version that you want to upgrade to:
|
||||
|
||||
* [Upgrade from the same minor version](upgrade.md#upgrade-from-the-same-minor-version)
|
||||
* [Upgrade from the same major version](upgrade.md#upgrade-from-the-same-major-version)
|
||||
* [Upgrade from a legacy version](upgrade.md#upgrade-from-a-legacy-version)
|
||||
|
||||
Before starting the upgrade, make sure you stop all containers running on the
|
||||
host. This ensures your containers have time for cleaning up before exiting,
|
||||
thus avoiding data loss or corruption.
|
||||
|
||||
## Upgrade from the same minor version
|
||||
|
||||
Use these instructions if you're upgrading your CS Docker Engine within the
|
||||
same minor version. As an example, from 1.1.0 to 1.1.1.
|
||||
|
||||
### CentOS 7.1 & RHEL 7.0/7.1/7.2
|
||||
Use these instructions to upgrade YUM-based systems.
|
||||
|
||||
1. Update your docker-engine package:
|
||||
|
||||
```bash
|
||||
$ sudo yum upgrade docker-engine
|
||||
```
|
||||
|
||||
2. Check that the CS Docker Engine is running:
|
||||
|
||||
```bash
|
||||
$ sudo docker info
|
||||
```
|
||||
|
||||
### Ubuntu 14.04 LTS or 16.04 LTS
|
||||
Use these instructions to upgrade APT-based systems.
|
||||
|
||||
1. Update your docker-engine package:
|
||||
|
||||
```bash
|
||||
$ sudo apt-get update && sudo apt-get upgrade docker-engine
|
||||
```
|
||||
|
||||
2. Check that the CS Docker Engine is running:
|
||||
|
||||
```bash
|
||||
$ sudo docker info
|
||||
```
|
||||
|
||||
### SUSE Enterprise 12.3
|
||||
|
||||
1. Update your docker-engine package:
|
||||
|
||||
```bash
|
||||
$ sudo zypper upgrade docker-engine
|
||||
```
|
||||
|
||||
2. Check that the CS Docker Engine is running:
|
||||
|
||||
```bash
|
||||
$ sudo docker info
|
||||
```
|
||||
|
||||
|
||||
## Upgrade from the same major version
|
||||
|
||||
Use these instructions if you're upgrading your CS Docker Engine within the
|
||||
same major version. As an example, from 1.1.x to 1.2.x.
|
||||
|
||||
|
||||
### CentOS 7.1 & RHEL 7.0/7.1/7.2
|
||||
Use these instructions to upgrade YUM-based systems.
|
||||
|
||||
1. Add the Docker Engine repository.
|
||||
|
||||
```bash
|
||||
$ sudo yum-config-manager --add-repo https://packages.docker.com/1.13/yum/repo/main/centos/7
|
||||
```
|
||||
|
||||
This adds the repository of the latest version of CS Docker Engine. You can
|
||||
customize the URL to install other versions.
|
||||
|
||||
2. Install the new package:
|
||||
|
||||
```bash
|
||||
$ sudo yum update docker-engine
|
||||
```
|
||||
|
||||
3. Check that the CS Engine is running:
|
||||
|
||||
```bash
|
||||
$ sudo docker info
|
||||
```
|
||||
|
||||
### Ubuntu 14.04 LTS or 16.04 LTS
|
||||
Use these instructions to update APT-based systems.
|
||||
|
||||
|
||||
1. Add the docker engine repository.
|
||||
|
||||
```bash
|
||||
$ echo "deb https://packages.docker.com/1.13/apt/repo ubuntu-trusty main" | sudo tee /etc/apt/sources.list.d/docker.list
|
||||
```
|
||||
|
||||
This adds the repository of the latest version of CS Docker Engine for the
|
||||
Ubuntu Trusty distribution. Change the "ubuntu-trusty" string to the
|
||||
distribution you're using:
|
||||
|
||||
* debian-jessie (Debian 8)
|
||||
* debian-stretch (future release)
|
||||
* debian-wheezy (Debian 7)
|
||||
* ubuntu-precise (Ubuntu 12.04)
|
||||
* ubuntu-trusty (Ubuntu 14.04)
|
||||
* ubuntu-xenial (Ubuntu 16.04)
|
||||
|
||||
2. Update your docker-engine package.
|
||||
|
||||
```bash
|
||||
$ sudo apt-get update && sudo apt-get upgrade docker-engine
|
||||
```
|
||||
|
||||
3. Check that the CS Engine is running:
|
||||
|
||||
```bash
|
||||
$ sudo docker info
|
||||
```
|
||||
|
||||
#### SUSE Enterprise 12.3
|
||||
|
||||
1. Add the docker engine repository.
|
||||
|
||||
```bash
|
||||
$ sudo zypper ar -t YUM https://packages.docker.com/1.13/yum/repo/main/opensuse/12.3 docker-1.13
|
||||
```
|
||||
|
||||
This adds the repository of the latest version of CS Docker Engine. You
|
||||
can customize the URL to install other versions.
|
||||
|
||||
2. Install the new package:
|
||||
|
||||
```bash
|
||||
$ sudo zypper update docker-engine
|
||||
```
|
||||
|
||||
3. Check that the CS Engine is running:
|
||||
|
||||
```bash
|
||||
$ sudo docker info
|
||||
```
|
||||
|
||||
|
||||
## Upgrade from a legacy version
|
||||
|
||||
Use these instructions if you're upgrading your CS Docker Engine from a version
|
||||
prior to 1.9. In this case, first uninstall CS Docker Engine, and
|
||||
then install the latest version.
|
||||
|
||||
### CentOS 7.1 & RHEL 7.0/7.1
|
||||
Use these instructions to upgrade YUM-based systems.
|
||||
|
||||
1. Remove the current CS Engine:
|
||||
|
||||
```bash
|
||||
$ sudo yum remove docker-engine-cs
|
||||
```
|
||||
|
||||
2. Add the Docker public key for CS packages:
|
||||
|
||||
```bash
|
||||
$ sudo rpm --import "https://sks-keyservers.net/pks/lookup?op=get&search=0xee6d536cf7dc86e2d7d56f59a178ac6c6238f52e"
|
||||
```
|
||||
|
||||
Note: if the key server above does not respond, you can try one of these:
|
||||
- pgp.mit.edu
|
||||
- keyserver.ubuntu.com
|
||||
|
||||
3. Install yum-utils if necessary:
|
||||
|
||||
```bash
|
||||
$ sudo yum install -y yum-utils
|
||||
```
|
||||
|
||||
4. Add the repository for the new version and disable the old one.
|
||||
|
||||
```bash
|
||||
$ sudo yum-config-manager --add-repo https://packages.docker.com/1.13/yum/repo/main/centos/7
|
||||
$ sudo yum-config-manager --disable 'Docker_cs*'
|
||||
```
|
||||
|
||||
This adds the repository of the latest version of CS Docker Engine. You
|
||||
can customize the URL to install other versions.
|
||||
|
||||
5. Install the new package:
|
||||
|
||||
```bash
|
||||
$ sudo yum install docker-engine
|
||||
```
|
||||
|
||||
6. Enable the Docker daemon as a service and start it.
|
||||
|
||||
```bash
|
||||
$ sudo systemctl enable docker.service
|
||||
$ sudo systemctl start docker.service
|
||||
```
|
||||
|
||||
### Ubuntu 14.04 LTS
|
||||
Use these instructions to update APT-based systems.
|
||||
|
||||
|
||||
1. Remove the current Engine:
|
||||
|
||||
```bash
|
||||
$ sudo apt-get remove docker-engine-cs
|
||||
```
|
||||
|
||||
2. Add the Docker public key for CS packages:
|
||||
|
||||
```bash
|
||||
$ curl -s 'https://sks-keyservers.net/pks/lookup?op=get&search=0xee6d536cf7dc86e2d7d56f59a178ac6c6238f52e' | sudo apt-key add --import
|
||||
```
|
||||
|
||||
Note: if the key server above does not respond, you can try one of these:
|
||||
- pgp.mit.edu
|
||||
- keyserver.ubuntu.com
|
||||
|
||||
3. Install the HTTPS helper for apt (your system may already have it):
|
||||
|
||||
```bash
|
||||
$ sudo apt-get update && sudo apt-get install apt-transport-https
|
||||
```
|
||||
|
||||
4. Install additional virtual drivers not in the parent image.
|
||||
|
||||
```bash
|
||||
$ sudo apt-get install -y linux-image-extra-virtual
|
||||
```
|
||||
|
||||
You may need to reboot your server after updating the LTS kernel.
|
||||
|
||||
5. Add the repository for the new version:
|
||||
|
||||
```bash
|
||||
$ echo "deb https://packages.docker.com/1.13/apt/repo ubuntu-trusty main" | sudo tee /etc/apt/sources.list.d/docker.list
|
||||
```
|
||||
|
||||
This adds the repository of the latest version of CS Docker Engine for the
|
||||
Ubuntu Trusty distribution. Change the "ubuntu-trusty" string to the
|
||||
distribution you're using:
|
||||
|
||||
* debian-jessie (Debian 8)
|
||||
* debian-stretch (future release)
|
||||
* debian-wheezy (Debian 7)
|
||||
* ubuntu-precise (Ubuntu 12.04)
|
||||
* ubuntu-trusty (Ubuntu 14.04)
|
||||
* ubuntu-xenial (Ubuntu 16.04)
|
||||
|
||||
|
||||
|
||||
6. Install the upgraded package:
|
||||
|
||||
```bash
|
||||
$ sudo apt-get upgrade docker-engine
|
||||
```
|
|
@ -67,9 +67,11 @@ On a healthy cluster the output will be `[]`.
|
|||
|
||||
Starting in DTR 2.5.5, you can run RethinkCLI from a separate image. First, set an environment variable for your DTR replica ID:
|
||||
|
||||
{% raw %}
|
||||
```bash
|
||||
REPLICA_ID=$(docker inspect -f '{{.Name}}' $(docker ps -q -f name=dtr-rethink) | cut -f 3 -d '-')
|
||||
```
|
||||
{% endraw %}
|
||||
|
||||
RethinkDB stores data in different databases that contain multiple tables. Run the following command to get into interactive mode
|
||||
and query the contents of the DB:
|
||||
|
|
|
@ -1,149 +0,0 @@
|
|||
---
|
||||
description: Set up and configure content trust and signing policy for use with a continuous integration system
|
||||
keywords: cup, trust, notary, security, continuous integration
|
||||
title: Use trusted images for continuous integration
|
||||
---
|
||||
|
||||
The document provides a minimal example on setting up Docker Content Trust (DCT) in
|
||||
Universal Control Plane (UCP) for use with a Continuous Integration (CI) system. It
|
||||
covers setting up the necessary accounts and trust delegations to restrict only those
|
||||
images built by your CI system to be deployed to your UCP managed cluster.
|
||||
|
||||
## Set up UCP accounts and teams
|
||||
|
||||
The first step is to create a user account for your CI system. For the purposes of
|
||||
this document we will assume you are using Jenkins as your CI system and will therefore
|
||||
name the account "jenkins". As an admin user logged in to UCP, navigate to "User Management"
|
||||
and select "Add User". Create a user with the name "jenkins" and set a strong password.
|
||||
|
||||
Next, create a team called "CI" and add the "jenkins" user to this team. All signing
|
||||
policy is team based, so if we want to grant only a single user the ability to sign images
|
||||
destined to be deployed on the cluster, we must create a team for this one user.
|
||||
|
||||
## Set up the signing policy
|
||||
|
||||
While still logged in as an admin, navigate to "Admin Settings" and select the "Content Trust"
|
||||
subsection. Select the checkbox to enable content trust and in the select box that appears,
|
||||
select the "CI" team we have just created. Save the settings.
|
||||
|
||||
This policy will require that every image that referenced in a `docker image pull`,
|
||||
`docker container run`, or `docker service create` must be signed by a key corresponding
|
||||
to a member of the "CI" team. In this case, the only member is the "jenkins" user.
|
||||
|
||||
## Create keys for the Jenkins user
|
||||
|
||||
The signing policy implementation uses the certificates issued in user client bundles
|
||||
to connect a signature to a user. Using an incognito browser window (or otherwise),
|
||||
log in to the "jenkins" user account you created earlier. Download a client bundle for
|
||||
this user. It is also recommended to change the description associated with the public
|
||||
key stored in UCP such that you can identify in the future which key is being used for
|
||||
signing.
|
||||
|
||||
Each time a user retrieves a new client bundle, a new keypair is generated. It is therefore
|
||||
necessary to keep track of a specific bundle that a user chooses to designate as their signing bundle.
|
||||
|
||||
Once you have decompressed the client bundle, the only two files you need for the purposes
|
||||
of signing are `cert.pem` and `key.pem`. These represent the public and private parts of
|
||||
the user's signing identity respectively. We will load the `key.pem` file onto the Jenkins
|
||||
servers, and use `cert.pem` to create delegations for the "jenkins" user in our
|
||||
Trusted Collection.
|
||||
|
||||
## Prepare the Jenkins server
|
||||
|
||||
### Load `key.pem` on Jenkins
|
||||
|
||||
You will need to use the notary client to load keys onto your Jenkins server. Simply run
|
||||
`notary -d /path/to/.docker/trust key import /path/to/key.pem`. You will be asked to set
|
||||
a password to encrypt the key on disk. For automated signing, this password can be configured
|
||||
into the environment under the variable name `DOCKER_CONTENT_TRUST_REPOSITORY_PASSPHRASE`. The `-d`
|
||||
flag to the command specifies the path to the `trust` subdirectory within the server's `docker`
|
||||
configuration directory. Typically this is found at `~/.docker/trust`.
|
||||
|
||||
### Enable content trust
|
||||
|
||||
There are two ways to enable content trust: globally, and per operation. To enabled content
|
||||
trust globally, set the environment variable `DOCKER_CONTENT_TRUST=1`. To enable on a per
|
||||
operation basis, wherever you run `docker image push` in your Jenkins scripts, add the flag
|
||||
`--disable-content-trust=false`. You may wish to use this second option if you only want
|
||||
to sign some images.
|
||||
|
||||
The Jenkins server is now prepared to sign images, but we need to create delegations referencing
|
||||
the key to give it the necessary permissions.
|
||||
|
||||
## Initialize a repository
|
||||
|
||||
Any commands displayed in this section should _not_ be run from the Jenkins server. You
|
||||
will most likely want to run them from your local system.
|
||||
|
||||
If this is a new repository, create it in Docker Trusted Registry (DTR) or Docker Hub,
|
||||
depending on which you use to store your images, before proceeding further.
|
||||
|
||||
We will now initialize the trust data and create the delegation that provides the Jenkins
|
||||
key with permissions to sign content. The following commands initialize the trust data and
|
||||
rotate snapshotting responsibilities to the server. This is necessary to ensure human involvement
|
||||
is not required to publish new content.
|
||||
|
||||
```
|
||||
notary -s https://my_notary_server.com -d ~/.docker/trust init my_repository
|
||||
notary -s https://my_notary_server.com -d ~/.docker/trust key rotate my_repository snapshot -r
|
||||
notary -s https://my_notary_server.com -d ~/.docker/trust publish my_repository
|
||||
```
|
||||
|
||||
The `-s` flag specifies the server hosting a notary service. If you are operating against
|
||||
Docker Hub, this will be `https://notary.docker.io`. If you are operating against your own DTR
|
||||
instance, this will be the same hostname you use in image names when running docker commands preceded
|
||||
by the `https://` scheme. For example, if you would run `docker image push my_dtr:4443/me/an_image` the value
|
||||
of the `-s` flag would be expected to be `https://my_dtr:4443`.
|
||||
|
||||
If you use DTR, the name of the repository should be identical to the full name you use
|
||||
in a `docker image push` command. If you use Docker Hub, the name you use in a `docker image push`
|
||||
must be preceded by `docker.io/`. For instance, if you ran `docker image push me/alpine`, you then
|
||||
use `notary init docker.io/me/alpine`.
|
||||
|
||||
For brevity, we will exclude the `-s` and `-d` flags from subsequent command, but be aware you
|
||||
will still need to provide them for the commands to work correctly.
|
||||
|
||||
Now that the repository is initialized, we need to create the delegations for Jenkins. Docker
|
||||
Content Trust treats a delegation role called `targets/releases` specially. It considers this
|
||||
delegation to contain the canonical list of published images for the repository. For this reason,
|
||||
you should add all users to this delegation with the following command:
|
||||
|
||||
```
|
||||
notary delegation add my_repository targets/releases --all-paths /path/to/cert.pem
|
||||
```
|
||||
|
||||
This solves a number of prioritization problems that would result from the need to determine
|
||||
which delegation should ultimately be trusted for a specific image. However, since any user
|
||||
can sign the `targets/releases` role it is not trusted
|
||||
in determining if a signing policy has been met. Therefore, you also need to create a
|
||||
delegation specifically for Jenkins:
|
||||
|
||||
```
|
||||
notary delegation add my_repository targets/jenkins --all-paths /path/to/cert.pem
|
||||
```
|
||||
|
||||
We will then publish both these updates (remember to add the correct `-s` and `-d` flags):
|
||||
|
||||
```
|
||||
notary publish my_repository
|
||||
```
|
||||
|
||||
Informational (Advanced): If we included the `targets/releases` role in determining if a signing policy
|
||||
had been met, we would run into the situation of images being opportunistically deployed when
|
||||
an appropriate user signs. In the scenario we have described so far, only images signed by
|
||||
the "CI" team (containing only the "jenkins" user) should be deployable. If a user "Moby" could
|
||||
also sign images but was not part of the "CI" team, they might sign and publish a new `targets/releases`
|
||||
that contained their image. UCP would refuse to deploy this image because it was not signed
|
||||
by the "CI" team. However, the next time Jenkins published an image, it would update and sign
|
||||
the `targets/releases` role as whole, enabling "Moby" to deploy their image.
|
||||
|
||||
## Conclusion
|
||||
|
||||
With the Trusted Collection initialized, and delegations created, the Jenkins server will
|
||||
now use the key we imported to sign any images we push to this repository.
|
||||
|
||||
Through either the Docker CLI, or the UCP browser interface, we will find that any images
|
||||
that do not meet our signing policy cannot be used. The signing policy we set up requires
|
||||
that the "CI" team must have signed any image we attempt to `docker image pull`, `docker container run`,
|
||||
or `docker service create`, and the only member of that team is the "jenkins" user. This
|
||||
restricts us to only running images that were published by our Jenkins CI system.
|
|
@ -1,11 +1,11 @@
|
|||
---
|
||||
title: Upgrade to UCP 2.2
|
||||
title: Upgrade to UCP 3.0
|
||||
description: Learn how to upgrade Docker Universal Control Plane with minimal impact to your users.
|
||||
keywords: UCP, upgrade, update
|
||||
---
|
||||
|
||||
This page guides you in upgrading Docker Universal Control Plane (UCP) to
|
||||
version 2.2.
|
||||
version 3.0.
|
||||
|
||||
Before upgrading to a new version of UCP, check the
|
||||
[release notes](../../release-notes/index.md) for this version for information
|
||||
|
@ -37,8 +37,8 @@ This allows you to recover if something goes wrong during the upgrade process.
|
|||
> Upgrading and backup archives
|
||||
>
|
||||
> The backup archive is version-specific, so you can't use it during the
|
||||
> upgrade process. For example, if you create a backup archive for a UCP 2.1
|
||||
> swarm, you can't use the archive file after you upgrade to UCP 2.2.
|
||||
> upgrade process. For example, if you create a backup archive for a UCP 2.2
|
||||
> swarm, you can't use the archive file after you upgrade to UCP 3.0.
|
||||
|
||||
## Upgrade Docker Engine
|
||||
|
||||
|
@ -112,13 +112,13 @@ all the nodes managed by UCP are healthy.
|
|||
|
||||
## Recommended upgrade paths
|
||||
|
||||
If you're running a UCP version that's lower than 2.1, first upgrade to the
|
||||
latest 2.1 version, then upgrade to 2.2. Use these rules for your upgrade
|
||||
path to UCP 2.2:
|
||||
If you're running a UCP version that's lower than 2.2, first upgrade to the
|
||||
latest 2.2 version, then upgrade to 3.0. Use these rules for your upgrade
|
||||
path to UCP 3.0:
|
||||
|
||||
- From UCP 1.1: UCP 1.1 -> UCP 2.1 -> UCP 2.2
|
||||
- From UCP 2.0: UCP 2.0 -> UCP 2.1 -> UCP 2.2
|
||||
- From UCP 2.1: UCP 2.1 -> UCP 2.2
|
||||
- From UCP 1.1: UCP 1.1 -> UCP 2.2 -> UCP 3.0
|
||||
- From UCP 2.0: UCP 2.0 -> UCP 2.2 -> UCP 3.0
|
||||
- From UCP 2.2: UCP 2.2 -> UCP 3.0
|
||||
|
||||
## Where to go next
|
||||
|
||||
|
|
|
@ -5,13 +5,13 @@ keywords: ucp, architecture
|
|||
---
|
||||
|
||||
Universal Control Plane is a containerized application that runs on
|
||||
[Docker Enterprise Edition](/ee/index.md) and extends its functionality
|
||||
to make it easier to deploy, configure, and monitor your applications at scale.
|
||||
[Docker Enterprise Edition](/ee/index.md), extending its functionality
|
||||
to simplify the deployment, configuration, and monitoring of your applications at scale.
|
||||
|
||||
UCP also secures Docker with role-based access control so that only authorized
|
||||
users can make changes and deploy applications to your Docker cluster.
|
||||
|
||||

|
||||
{: .with-border}
|
||||
|
||||
Once Universal Control Plane (UCP) instance is deployed, developers and IT
|
||||
operations no longer interact with Docker Engine directly, but interact with
|
||||
|
@ -25,7 +25,7 @@ the Docker CLI client and Docker Compose.
|
|||
Docker UCP leverages the clustering and orchestration functionality provided
|
||||
by Docker.
|
||||
|
||||

|
||||
{: .with-border}
|
||||
|
||||
A swarm is a collection of nodes that are in the same Docker cluster.
|
||||
[Nodes](/engine/swarm/key-concepts.md) in a Docker swarm operate in one of two
|
||||
|
@ -66,38 +66,89 @@ on a node depend on whether the node is a manager or a worker.
|
|||
> on Windows, the `ucp-agent` component is named `ucp-agent-win`.
|
||||
> [Learn about architecture-specific images](admin/install/architecture-specific-images.md).
|
||||
|
||||
Internally, UCP uses the following components:
|
||||
|
||||
* Calico 3.0.1
|
||||
* Kubernetes 1.8.11
|
||||
|
||||
### UCP components in manager nodes
|
||||
|
||||
Manager nodes run all UCP services, including the web UI and data stores that
|
||||
persist the state of UCP. These are the UCP services running on manager nodes:
|
||||
|
||||
| UCP component | Description |
|
||||
|:--------------------|:---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
|
||||
| ucp-agent | Monitors the node and ensures the right UCP services are running |
|
||||
| ucp-reconcile | When ucp-agent detects that the node is not running the right UCP components, it starts the ucp-reconcile container to converge the node to its desired state. It is expected for the ucp-reconcile container to remain in an exited state when the node is healthy. |
|
||||
| ucp-auth-api | The centralized service for identity and authentication used by UCP and DTR |
|
||||
| ucp-auth-store | Stores authentication configurations and data for users, organizations, and teams |
|
||||
| ucp-auth-worker | Performs scheduled LDAP synchronizations and cleans authentication and authorization data |
|
||||
| ucp-client-root-ca | A certificate authority to sign client bundles |
|
||||
| ucp-cluster-root-ca | A certificate authority used for TLS communication between UCP components |
|
||||
| ucp-controller | The UCP web server |
|
||||
| ucp-dsinfo | Docker system information collection script to assist with troubleshooting |
|
||||
| ucp-kv | Used to store the UCP configurations. Don't use it in your applications, since it's for internal use only |
|
||||
| ucp-metrics | Used to collect and process metrics for a node, like the disk space available |
|
||||
| ucp-proxy | A TLS proxy. It allows secure access to the local Docker Engine to UCP components |
|
||||
| ucp-swarm-manager | Used to provide backwards-compatibility with Docker Swarm |
|
||||
| UCP component | Description |
|
||||
|:--------------------------------|:----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
|
||||
| k8s_calico-kube-controllers | A cluster-scoped Kubernetes controller used to coordinate Calico networking. Runs on one manager node only. |
|
||||
| k8s_calico-node | The Calico node agent, which coordinates networking fabric according to the cluster-wide Calico configuration. Part of the `calico-node` daemonset. Runs on all nodes. Configure the CNI plugin by using the `--cni-installer-url` flag. If this flag isn't set, UCP uses Calico as the default CNI plugin. |
|
||||
| k8s_install-cni_calico-node | A container that's responsible for installing the Calico CNI plugin binaries and configuration on each host. Part of the `calico-node` daemonset. Runs on all nodes. |
|
||||
| k8s_POD_calico-node | Pause container for the `calico-node` pod. |
|
||||
| k8s_POD_calico-kube-controllers | Pause container for the `calico-kube-controllers` pod. |
|
||||
| k8s_POD_compose | Pause container for the `compose` pod. |
|
||||
| k8s_POD_kube-dns | Pause container for the `kube-dns` pod. |
|
||||
| k8s_ucp-dnsmasq-nanny | A dnsmasq instance used in the Kubernetes DNS Service. Part of the `kube-dns` deployment. Runs on one manager node only. |
|
||||
| k8s_ucp-kube-compose | A custom Kubernetes resource component that's responsible for translating Compose files into Kubernetes constructs. Part of the `compose` deployment. Runs on one manager node only. |
|
||||
| k8s_ucp-kube-dns | The main Kubernetes DNS Service, used by pods to [resolve service names](https://v1-8.docs.kubernetes.io/docs/concepts/services-networking/dns-pod-service/). Part of the `kube-dns` deployment. Runs on one manager node only. Provides service discovery for Kubernetes services and pods. A set of three containers deployed via Kubernetes as a single pod. |
|
||||
| k8s_ucp-kubedns-sidecar | Health checking and metrics daemon of the Kubernetes DNS Service. Part of the `kube-dns` deployment. Runs on one manager node only. |
|
||||
| ucp-agent | Monitors the node and ensures the right UCP services are running. |
|
||||
| ucp-auth-api | The centralized service for identity and authentication used by UCP and DTR. |
|
||||
| ucp-auth-store | Stores authentication configurations and data for users, organizations, and teams. |
|
||||
| ucp-auth-worker | Performs scheduled LDAP synchronizations and cleans authentication and authorization data. |
|
||||
| ucp-client-root-ca | A certificate authority to sign client bundles. |
|
||||
| ucp-cluster-root-ca | A certificate authority used for TLS communication between UCP components. |
|
||||
| ucp-controller | The UCP web server. |
|
||||
| ucp-dsinfo | Docker system information collection script to assist with troubleshooting. |
|
||||
| ucp-interlock | Monitors swarm workloads configured to use Layer 7 routing. Only runs when you enable Layer 7 routing. |
|
||||
| ucp-interlock-proxy | A service that provides load balancing and proxying for swarm workloads. Only runs when you enable Layer 7 routing. |
|
||||
| ucp-kube-apiserver | A master component that serves the Kubernetes API. It persists its state in `etcd` directly, and all other components communicate with API server directly. |
|
||||
| ucp-kube-controller-manager | A master component that manages the desired state of controllers and other Kubernetes objects. It monitors the API server and performs background tasks when needed. |
|
||||
| ucp-kubelet | The Kubernetes node agent running on every node, which is responsible for running Kubernetes pods, reporting the health of the node, and monitoring resource usage. |
|
||||
| ucp-kube-proxy | The networking proxy running on every node, which enables pods to contact Kubernetes services and other pods, via cluster IP addresses. |
|
||||
| ucp-kube-scheduler | A master component that handles scheduling of pods. It communicates with the API server only to obtain workloads that need to be scheduled. |
|
||||
| ucp-kv | Used to store the UCP configurations. Don't use it in your applications, since it's for internal use only. Also used by Kubernetes components. |
|
||||
| ucp-metrics | Used to collect and process metrics for a node, like the disk space available. |
|
||||
| ucp-proxy | A TLS proxy. It allows secure access to the local Docker Engine to UCP components. |
|
||||
| ucp-reconcile | When ucp-agent detects that the node is not running the right UCP components, it starts the ucp-reconcile container to converge the node to its desired state. It is expected for the ucp-reconcile container to remain in an exited state when the node is healthy. |
|
||||
| ucp-swarm-manager | Used to provide backwards-compatibility with Docker Swarm. |
|
||||
|
||||
|
||||
### UCP components in worker nodes
|
||||
|
||||
Worker nodes are the ones where you run your applications. These are the UCP
|
||||
services running on worker nodes:
|
||||
|
||||
| UCP component | Description |
|
||||
|:--------------|:---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
|
||||
| ucp-agent | Monitors the node and ensures the right UCP services are running |
|
||||
| ucp-dsinfo | Docker system information collection script to assist with troubleshooting |
|
||||
| ucp-reconcile | When ucp-agent detects that the node is not running the right UCP components, it starts the ucp-reconcile container to converge the node to its desired state. It is expected for the ucp-reconcile container to remain in an exited state when the node is healthy. |
|
||||
| ucp-proxy | A TLS proxy. It allows secure access to the local Docker Engine to UCP components |
|
||||
| UCP component | Description |
|
||||
|:----------------------------|:---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
|
||||
| k8s_calico-node | The Calico node agent, which coordinates networking fabric according to the cluster-wide Calico configuration. Part of the `calico-node` daemonset. Runs on all nodes. |
|
||||
| k8s_install-cni_calico-node | A container that's responsible for installing the Calico CNI plugin binaries and configuration on each host. Part of the `calico-node` daemonset. Runs on all nodes. |
|
||||
| k8s_POD_calico-node | "Pause" container for the Calico-node pod. By default, this container is hidden, but you can see it by running `docker ps -a`. |
|
||||
| ucp-agent | Monitors the node and ensures the right UCP services are running |
|
||||
| ucp-interlock-extension | Helper service that reconfigures the ucp-interlock-proxy service based on the swarm workloads that are running. |
|
||||
| ucp-interlock-proxy | A service that provides load balancing and proxying for swarm workloads. Only runs when you enable Layer 7 routing. |
|
||||
| ucp-dsinfo | Docker system information collection script to assist with troubleshooting |
|
||||
| ucp-kubelet | The kubernetes node agent running on every node, which is responsible for running Kubernetes pods, reporting the health of the node, and monitoring resource usage |
|
||||
| ucp-kube-proxy | The networking proxy running on every node, which enables pods to contact Kubernetes services and other pods, via cluster IP addresses |
|
||||
| ucp-reconcile | When ucp-agent detects that the node is not running the right UCP components, it starts the ucp-reconcile container to converge the node to its desired state. It is expected for the ucp-reconcile container to remain in an exited state when the node is healthy. |
|
||||
| ucp-proxy | A TLS proxy. It allows secure access to the local Docker Engine to UCP components |
|
||||
|
||||
## Pause containers
|
||||
|
||||
Every pod in Kubernetes has a _pause_ container, which is an "empty" container
|
||||
that bootstraps the pod to establish all of the namespaces. Pause containers
|
||||
hold the cgroups, reservations, and namespaces of a pod before its individual
|
||||
containers are created. The pause container's image is always present, so the
|
||||
allocation of the pod's resources is instantaneous.
|
||||
|
||||
By default, pause containers are hidden, but you can see them by running
|
||||
`docker ps -a`.
|
||||
|
||||
```
|
||||
docker ps -a | grep -I pause
|
||||
|
||||
8c9707885bf6 dockereng/ucp-pause:3.0.0-6d332d3 "/pause" 47 hours ago Up 47 hours k8s_POD_calico-kube-controllers-559f6948dc-5c84l_kube-system_d00e5130-1bf4-11e8-b426-0242ac110011_0
|
||||
258da23abbf5 dockereng/ucp-pause:3.0.0-6d332d3 "/pause" 47 hours ago Up 47 hours k8s_POD_kube-dns-6d46d84946-tqpzr_kube-system_d63acec6-1bf4-11e8-b426-0242ac110011_0
|
||||
2e27b5d31a06 dockereng/ucp-pause:3.0.0-6d332d3 "/pause" 47 hours ago Up 47 hours k8s_POD_compose-698cf787f9-dxs29_kube-system_d5866b3c-1bf4-11e8-b426-0242ac110011_0
|
||||
5d96dff73458 dockereng/ucp-pause:3.0.0-6d332d3 "/pause" 47 hours ago Up 47 hours k8s_POD_calico-node-4fjgv_kube-system_d043a0ea-1bf4-11e8-b426-0242ac110011_0
|
||||
```
|
||||
|
||||
## Volumes used by UCP
|
||||
|
||||
|
@ -129,6 +180,16 @@ driver.
|
|||
By default, the data for these volumes can be found at
|
||||
`/var/lib/docker/volumes/<volume-name>/_data`.
|
||||
|
||||
## Configurations use by UCP
|
||||
|
||||
| Configuration name | Description |
|
||||
|:-------------------------------|:-------------------------------------------------------------------------------------------------|
|
||||
| com.docker.interlock.extension | Configuration for the Interlock extension service that monitors and configures the proxy service |
|
||||
| com.docker.interlock.proxy | Configuration for the service responsible for handling user requests and routing them |
|
||||
| com.docker.license | The Docker EE license |
|
||||
| com.docker.ucp.config | The UCP controller configuration. Most of the settings available on the UCP UI are stored here |
|
||||
| com.docker.ucp.interlock.conf | Configuration for the core Interlock service |
|
||||
|
||||
## How you interact with UCP
|
||||
|
||||
There are two ways to interact with UCP: the web UI or the CLI.
|
||||
|
@ -136,17 +197,16 @@ There are two ways to interact with UCP: the web UI or the CLI.
|
|||
You can use the UCP web UI to manage your swarm, grant and revoke user
|
||||
permissions, deploy, configure, manage, and monitor your applications.
|
||||
|
||||

|
||||
{: .with-border}
|
||||
|
||||
UCP also exposes the standard Docker API, so you can continue using existing
|
||||
tools like the Docker CLI client. Since UCP secures your cluster with role-based
|
||||
access control, you need to configure your Docker CLI client and other client
|
||||
tools to authenticate your requests using
|
||||
[client certificates](user/access-ucp/index.md) that you can download
|
||||
[client certificates](user-access/index.md) that you can download
|
||||
from your UCP profile page.
|
||||
|
||||
|
||||
## Where to go next
|
||||
|
||||
* [System requirements](admin/install/system-requirements.md)
|
||||
* [Plan your installation](admin/install/system-requirements.md)
|
||||
- [System requirements](admin/install/system-requirements.md)
|
||||
- [Plan your installation](admin/install/plan-installation.md)
|
||||
|
|
After Width: | Height: | Size: 76 KiB |
After Width: | Height: | Size: 176 KiB |
After Width: | Height: | Size: 135 KiB |
After Width: | Height: | Size: 66 KiB |
After Width: | Height: | Size: 89 KiB |
After Width: | Height: | Size: 94 KiB |
After Width: | Height: | Size: 52 KiB |
After Width: | Height: | Size: 84 KiB |
After Width: | Height: | Size: 63 KiB |
After Width: | Height: | Size: 108 KiB |
After Width: | Height: | Size: 87 KiB |
After Width: | Height: | Size: 156 KiB |
After Width: | Height: | Size: 59 KiB |
After Width: | Height: | Size: 100 KiB |
After Width: | Height: | Size: 91 KiB |
After Width: | Height: | Size: 40 KiB |
After Width: | Height: | Size: 85 KiB |
After Width: | Height: | Size: 78 KiB |
After Width: | Height: | Size: 52 KiB |
After Width: | Height: | Size: 62 KiB |
After Width: | Height: | Size: 231 KiB |
After Width: | Height: | Size: 269 KiB |
After Width: | Height: | Size: 274 KiB |
After Width: | Height: | Size: 307 KiB |
After Width: | Height: | Size: 164 KiB |
After Width: | Height: | Size: 77 KiB |
After Width: | Height: | Size: 152 KiB |
|
@ -0,0 +1,204 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<svg width="740px" height="321px" viewBox="0 0 740 321" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" style="background: #FFFFFF;">
|
||||
<!-- Generator: Sketch 49 (51002) - http://www.bohemiancoding.com/sketch -->
|
||||
<title>interlock-architecture-1</title>
|
||||
<desc>Created with Sketch.</desc>
|
||||
<defs>
|
||||
<circle id="path-1" cx="4" cy="4" r="4"></circle>
|
||||
<circle id="path-2" cx="4" cy="4" r="4"></circle>
|
||||
<circle id="path-3" cx="4" cy="4" r="4"></circle>
|
||||
<circle id="path-4" cx="4" cy="4" r="4"></circle>
|
||||
<circle id="path-5" cx="4" cy="4" r="4"></circle>
|
||||
<circle id="path-6" cx="4" cy="5" r="4"></circle>
|
||||
<circle id="path-7" cx="4" cy="5" r="4"></circle>
|
||||
</defs>
|
||||
<g id="interlock-architecture-1" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
|
||||
<g id="all" transform="translate(6.000000, 5.000000)">
|
||||
<text id="Docker-swarm-managed" font-family="OpenSans-Semibold, Open Sans" font-size="10" font-weight="500" fill="#E0E4E7">
|
||||
<tspan x="8" y="297">Docker swarm managed with UCP</tspan>
|
||||
</text>
|
||||
<g id="nodes" transform="translate(133.000000, 100.000000)">
|
||||
<g id="workers" transform="translate(122.000000, 0.000000)">
|
||||
<g id="node-4" transform="translate(248.000000, 0.000000)">
|
||||
<g id="ucp" transform="translate(1.000000, 112.000000)">
|
||||
<rect id="Rectangle-138" fill="#439FD1" x="0" y="0" width="106" height="22" rx="2"></rect>
|
||||
<text id="UCP" font-family="OpenSans, Open Sans" font-size="10" font-weight="normal" fill="#FFFFFF">
|
||||
<tspan x="43.6953125" y="15">UCP </tspan>
|
||||
</text>
|
||||
</g>
|
||||
<g id="wordpress-copy" transform="translate(1.000000, 89.000000)">
|
||||
<rect id="Rectangle-138" fill="#00B6B5" x="0" y="0" width="106" height="22" rx="2"></rect>
|
||||
<text id="interlock-proxy:80" font-family="OpenSans, Open Sans" font-size="10" font-weight="normal" fill="#FFFFFF">
|
||||
<tspan x="11.3442383" y="15">interlock-proxy:80</tspan>
|
||||
</text>
|
||||
</g>
|
||||
<g id="label">
|
||||
<g id="node-label">
|
||||
<path d="M0,2.00295631 C0,0.896754086 0.897702336,0 1.99174577,0 L71,0 L71,10.6452381 C71,16.5244408 66.2312425,21.2904762 60.3513837,21.2904762 L0,21.2904762 L0,2.00295631 Z" id="Rectangle-127" fill="#445D6E"></path>
|
||||
<text id="worker-node" font-family="OpenSans, Open Sans" font-size="8" font-weight="normal" fill="#FFFFFF">
|
||||
<tspan x="6" y="14">worker node</tspan>
|
||||
</text>
|
||||
</g>
|
||||
</g>
|
||||
<rect id="node-border" stroke="#445D6E" stroke-width="2" x="0" y="0" width="108" height="135" rx="2"></rect>
|
||||
</g>
|
||||
<g id="node-3" transform="translate(124.000000, 0.000000)">
|
||||
<g id="ucp" transform="translate(1.000000, 112.000000)">
|
||||
<rect id="Rectangle-138" fill="#439FD1" x="0" y="0" width="106" height="22" rx="2"></rect>
|
||||
<text id="UCP" font-family="OpenSans, Open Sans" font-size="10" font-weight="normal" fill="#FFFFFF">
|
||||
<tspan x="43.6953125" y="15">UCP </tspan>
|
||||
</text>
|
||||
</g>
|
||||
<g id="wordpress-copy" transform="translate(1.000000, 89.000000)">
|
||||
<rect id="Rectangle-138" fill="#00B6B5" x="0" y="0" width="106" height="22" rx="2"></rect>
|
||||
<text id="interlock-proxy:80" font-family="OpenSans, Open Sans" font-size="10" font-weight="normal" fill="#FFFFFF">
|
||||
<tspan x="11.3442383" y="15">interlock-proxy:80</tspan>
|
||||
</text>
|
||||
</g>
|
||||
<g id="label">
|
||||
<g id="node-label">
|
||||
<path d="M0,2.00295631 C0,0.896754086 0.897702336,0 1.99174577,0 L71,0 L71,10.6452381 C71,16.5244408 66.2312425,21.2904762 60.3513837,21.2904762 L0,21.2904762 L0,2.00295631 Z" id="Rectangle-127" fill="#445D6E"></path>
|
||||
<text id="worker-node" font-family="OpenSans, Open Sans" font-size="8" font-weight="normal" fill="#FFFFFF">
|
||||
<tspan x="6" y="14">worker node</tspan>
|
||||
</text>
|
||||
</g>
|
||||
</g>
|
||||
<rect id="node-border" stroke="#445D6E" stroke-width="2" x="0" y="0" width="108" height="135" rx="2"></rect>
|
||||
</g>
|
||||
<g id="node-2">
|
||||
<g id="ucp" transform="translate(1.000000, 112.000000)">
|
||||
<rect id="Rectangle-138" fill="#439FD1" x="0" y="0" width="106" height="22" rx="2"></rect>
|
||||
<text id="UCP" font-family="OpenSans, Open Sans" font-size="10" font-weight="normal" fill="#FFFFFF">
|
||||
<tspan x="43.6953125" y="15">UCP </tspan>
|
||||
</text>
|
||||
</g>
|
||||
<g id="extension" transform="translate(1.000000, 89.000000)">
|
||||
<rect id="Rectangle-138" fill="#00B6B5" x="0" y="0" width="106" height="22" rx="2"></rect>
|
||||
<text id="interlock-extension" font-family="OpenSans, Open Sans" font-size="10" font-weight="normal" fill="#FFFFFF">
|
||||
<tspan x="8.35400391" y="15">interlock-extension</tspan>
|
||||
</text>
|
||||
</g>
|
||||
<g id="wordpress-copy-2" transform="translate(1.000000, 66.000000)">
|
||||
<rect id="Rectangle-138" fill="#FFB463" x="0" y="0" width="106" height="22" rx="2"></rect>
|
||||
<text id="wordpress:8000" font-family="OpenSans, Open Sans" font-size="10" font-weight="normal" fill="#FFFFFF">
|
||||
<tspan x="16.0390625" y="15">wordpress:8000</tspan>
|
||||
</text>
|
||||
</g>
|
||||
<g id="label">
|
||||
<g id="node-label">
|
||||
<path d="M0,2.00295631 C0,0.896754086 0.897702336,0 1.99174577,0 L71,0 L71,10.6452381 C71,16.5244408 66.2312425,21.2904762 60.3513837,21.2904762 L0,21.2904762 L0,2.00295631 Z" id="Rectangle-127" fill="#445D6E"></path>
|
||||
<text id="worker-node" font-family="OpenSans, Open Sans" font-size="8" font-weight="normal" fill="#FFFFFF">
|
||||
<tspan x="6" y="14">worker node</tspan>
|
||||
</text>
|
||||
</g>
|
||||
</g>
|
||||
<rect id="node-border" stroke="#445D6E" stroke-width="2" x="0" y="0" width="108" height="135" rx="2"></rect>
|
||||
</g>
|
||||
</g>
|
||||
<g id="managers">
|
||||
<g id="node">
|
||||
<g id="ucp" transform="translate(1.000000, 112.000000)">
|
||||
<rect id="Rectangle-138" fill="#439FD1" x="0" y="0" width="106" height="22" rx="2"></rect>
|
||||
<text id="UCP" font-family="OpenSans, Open Sans" font-size="10" font-weight="normal" fill="#FFFFFF">
|
||||
<tspan x="43.6953125" y="15">UCP </tspan>
|
||||
</text>
|
||||
</g>
|
||||
<g id="interlock" transform="translate(1.000000, 89.000000)">
|
||||
<rect id="Rectangle-138" fill="#00B6B5" x="0" y="0" width="106" height="22" rx="2"></rect>
|
||||
<text id="ucp-interlock" font-family="OpenSans, Open Sans" font-size="10" font-weight="normal" fill="#FFFFFF">
|
||||
<tspan x="22.6435547" y="15">ucp-interlock</tspan>
|
||||
</text>
|
||||
</g>
|
||||
<g id="label">
|
||||
<g id="node-label">
|
||||
<path d="M0,2.00295631 C0,0.896754086 0.897702336,0 1.99174577,0 L71,0 L71,10.6452381 C71,16.5244408 66.2312425,21.2904762 60.3513837,21.2904762 L0,21.2904762 L0,2.00295631 Z" id="Rectangle-127" fill="#445D6E"></path>
|
||||
<text id="manager-node" font-family="OpenSans, Open Sans" font-size="8" font-weight="normal" fill="#FFFFFF">
|
||||
<tspan x="6" y="14">manager node</tspan>
|
||||
</text>
|
||||
</g>
|
||||
</g>
|
||||
<rect id="node-border" stroke="#445D6E" stroke-width="2" x="0" y="0" width="108" height="135" rx="2"></rect>
|
||||
</g>
|
||||
</g>
|
||||
</g>
|
||||
<g id="load-balancer" transform="translate(378.000000, 55.000000)">
|
||||
<g id="L7">
|
||||
<rect id="Rectangle-138" fill="#445D6E" x="0" y="0" width="234" height="22" rx="2"></rect>
|
||||
<text id="your-load-balancer" font-family="OpenSans, Open Sans" font-size="10" font-weight="normal" fill="#FFFFFF">
|
||||
<tspan x="73.4379883" y="15">your load balancer</tspan>
|
||||
</text>
|
||||
</g>
|
||||
<g id="arrow" transform="translate(175.000000, 33.000000) scale(1, -1) rotate(-90.000000) translate(-175.000000, -33.000000) translate(163.000000, 29.000000)">
|
||||
<path d="M2,4 L24,4" id="Line" stroke="#445D6E" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"></path>
|
||||
<g id="Oval">
|
||||
<use fill="#445D6E" fill-rule="evenodd" xlink:href="#path-1"></use>
|
||||
<circle stroke="#F7F8F9" stroke-width="2" cx="4" cy="4" r="5"></circle>
|
||||
</g>
|
||||
</g>
|
||||
<g id="arrow" transform="translate(57.000000, 33.000000) scale(1, -1) rotate(-90.000000) translate(-57.000000, -33.000000) translate(45.000000, 29.000000)">
|
||||
<path d="M2,4 L24,4" id="Line" stroke="#445D6E" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"></path>
|
||||
<g id="Oval">
|
||||
<use fill="#445D6E" fill-rule="evenodd" xlink:href="#path-2"></use>
|
||||
<circle stroke="#F7F8F9" stroke-width="2" cx="4" cy="4" r="5"></circle>
|
||||
</g>
|
||||
</g>
|
||||
</g>
|
||||
<path d="M0,92.9911272 C0,91.891458 0.895288359,91 1.99262649,91 L726.007374,91 C727.107871,91 728,91.8889081 728,92.9911272 L728,304.008873 C728,305.108542 727.104712,306 726.007374,306 L1.99262649,306 C0.892129269,306 0,305.111092 0,304.008873 L0,92.9911272 Z" id="group" stroke="#E0E4E7" stroke-width="2" stroke-dasharray="5,5,5,5"></path>
|
||||
<g id="user" transform="translate(420.000000, 0.000000)" fill="#82949E">
|
||||
<text id="http://wordpress.exa" font-family="OpenSans-Semibold, Open Sans" font-size="10" font-weight="500">
|
||||
<tspan x="0.129394531" y="42">http://wordpress.example.org</tspan>
|
||||
</text>
|
||||
<path d="M73,13 C76.59125,13 79.5,10.083125 79.5,6.5 C79.5,2.90875 76.59125,0 73,0 C69.40875,0 66.5,2.90875 66.5,6.5 C66.5,10.083125 69.40875,13 73,13 L73,13 Z M73,16.25 C68.669375,16.25 60,18.419375 60,22.75 L60,26 L86,26 L86,22.75 C86,18.419375 77.330625,16.25 73,16.25 L73,16.25 Z" id="Shape"></path>
|
||||
</g>
|
||||
<g id="networks" transform="translate(6.000000, 174.000000)">
|
||||
<g id="wordpress-net" transform="translate(351.000000, 0.000000)">
|
||||
<text font-family="OpenSans-Semibold, Open Sans" font-size="10" font-weight="500" fill="#E0E4E7">
|
||||
<tspan x="293.941406" y="75">wordpress-net</tspan>
|
||||
</text>
|
||||
<path d="M286.078683,72.7028593 L10.6033191,72.7028593" id="common" stroke="#E0E4E7" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"></path>
|
||||
<g id="arrow-3" transform="translate(253.500000, 47.000000) scale(1, -1) rotate(-90.000000) translate(-253.500000, -47.000000) translate(228.500000, 41.500000)">
|
||||
<g id="Oval">
|
||||
<use fill="#00B6B5" fill-rule="evenodd" xlink:href="#path-3"></use>
|
||||
<circle stroke="#F7F8F9" stroke-width="2" cx="4" cy="4" r="5"></circle>
|
||||
</g>
|
||||
<polyline id="Path-2" stroke="#E0E4E7" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" points="49.7028656 10.4773245 4.08975869 10.4773245 4.08975869 4.67693802"></polyline>
|
||||
</g>
|
||||
<g id="arrow-2" transform="translate(129.500000, 47.000000) scale(1, -1) rotate(-90.000000) translate(-129.500000, -47.000000) translate(104.500000, 41.500000)">
|
||||
<g id="Oval">
|
||||
<use fill="#00B6B5" fill-rule="evenodd" xlink:href="#path-4"></use>
|
||||
<circle stroke="#F7F8F9" stroke-width="2" cx="4" cy="4" r="5"></circle>
|
||||
</g>
|
||||
<polyline id="Path-2" stroke="#E0E4E7" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" points="49.7028656 10.4773245 4.08975869 10.4773245 4.08975869 4.67693802"></polyline>
|
||||
</g>
|
||||
<g id="arrow-1" transform="translate(5.500000, 36.000000) scale(1, -1) rotate(-90.000000) translate(-5.500000, -36.000000) translate(-30.500000, 30.500000)">
|
||||
<g id="Oval">
|
||||
<use fill="#FFB463" fill-rule="evenodd" xlink:href="#path-5"></use>
|
||||
<circle stroke="#F7F8F9" stroke-width="2" cx="4" cy="4" r="5"></circle>
|
||||
</g>
|
||||
<polyline id="Path-2" stroke="#E0E4E7" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" points="71.7028656 10.4773245 4.08975869 10.4773245 4.08975869 4.67693802"></polyline>
|
||||
</g>
|
||||
</g>
|
||||
<g id="ucp-interlock" transform="translate(0.000000, 22.000000)">
|
||||
<text font-family="OpenSans-Semibold, Open Sans" font-size="10" font-weight="500" fill="#E0E4E7">
|
||||
<tspan x="0.273925781" y="53">ucp-interlock</tspan>
|
||||
</text>
|
||||
<path d="M244.353587,50.7028593 L70.3892056,50.7028593" id="common" stroke="#E0E4E7" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"></path>
|
||||
<g id="arrow-2" transform="translate(248.500000, 25.000000) scale(1, -1) rotate(-90.000000) translate(-248.500000, -25.000000) translate(223.500000, 20.500000)">
|
||||
<g id="Oval">
|
||||
<use fill="#00B6B5" fill-rule="evenodd" xlink:href="#path-6"></use>
|
||||
<circle stroke="#F7F8F9" stroke-width="2" cx="4" cy="5" r="5"></circle>
|
||||
</g>
|
||||
<polyline id="Path-2" stroke="#E0E4E7" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" points="49.7028656 0.0354891765 4.08975869 0.0354891765 4.08975869 5.67693802"></polyline>
|
||||
</g>
|
||||
<g id="arrow-1" transform="translate(126.500000, 25.000000) scale(1, -1) rotate(-90.000000) translate(-126.500000, -25.000000) translate(101.500000, 20.500000)">
|
||||
<g id="Oval">
|
||||
<use fill="#00B6B5" fill-rule="evenodd" xlink:href="#path-7"></use>
|
||||
<circle stroke="#F7F8F9" stroke-width="2" cx="4" cy="5" r="5"></circle>
|
||||
</g>
|
||||
<polyline id="Path-2" stroke="#E0E4E7" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" points="49.7028656 0.0354891765 4.08975869 0.0354891765 4.08975869 5.67693802"></polyline>
|
||||
</g>
|
||||
</g>
|
||||
</g>
|
||||
</g>
|
||||
</g>
|
||||
</svg>
|
After Width: | Height: | Size: 16 KiB |
After Width: | Height: | Size: 122 KiB |
After Width: | Height: | Size: 169 KiB |
|
@ -0,0 +1,207 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<svg width="740px" height="310px" viewBox="0 0 740 310" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" style="background: #FFFFFF;">
|
||||
<!-- Generator: Sketch 49 (51002) - http://www.bohemiancoding.com/sketch -->
|
||||
<title>interlock-deploy-production-1</title>
|
||||
<desc>Created with Sketch.</desc>
|
||||
<defs>
|
||||
<circle id="path-1" cx="4" cy="4" r="4"></circle>
|
||||
<circle id="path-2" cx="4" cy="4" r="4"></circle>
|
||||
</defs>
|
||||
<g id="interlock-deploy-production-1" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
|
||||
<g id="all" transform="translate(9.000000, 10.000000)">
|
||||
<text id="Docker-swarm-managed" font-family="OpenSans-Semibold, Open Sans" font-size="10" font-weight="500" fill="#E0E4E7">
|
||||
<tspan x="7" y="281">Docker swarm managed with UCP</tspan>
|
||||
</text>
|
||||
<g id="nodes" transform="translate(8.000000, 100.000000)">
|
||||
<g id="workers" transform="translate(357.000000, 0.000000)">
|
||||
<g id="node" transform="translate(242.000000, 0.000000)">
|
||||
<text id="node-6" font-family="OpenSans-Semibold, Open Sans" font-size="10" font-weight="500" fill="#82949E">
|
||||
<tspan x="37.3129883" y="149">node-6</tspan>
|
||||
</text>
|
||||
<g id="ucp" transform="translate(1.000000, 112.000000)">
|
||||
<rect id="Rectangle-138" fill="#439FD1" x="0" y="0" width="106" height="22" rx="2"></rect>
|
||||
<text id="UCP" font-family="OpenSans, Open Sans" font-size="10" font-weight="normal" fill="#FFFFFF">
|
||||
<tspan x="43.6953125" y="15">UCP </tspan>
|
||||
</text>
|
||||
</g>
|
||||
<g id="wordpress-copy" transform="translate(1.000000, 89.000000)">
|
||||
<rect id="Rectangle-138" fill="#00B6B5" x="0" y="0" width="106" height="22" rx="2"></rect>
|
||||
<text id="interlock-proxy:80" font-family="OpenSans, Open Sans" font-size="10" font-weight="normal" fill="#FFFFFF">
|
||||
<tspan x="11.3442383" y="15">interlock-proxy:80</tspan>
|
||||
</text>
|
||||
</g>
|
||||
<g id="label">
|
||||
<g id="node-label">
|
||||
<path d="M0,2.00295631 C0,0.896754086 0.897702336,0 1.99174577,0 L71,0 L71,10.6452381 C71,16.5244408 66.2312425,21.2904762 60.3513837,21.2904762 L0,21.2904762 L0,2.00295631 Z" id="Rectangle-127" fill="#445D6E"></path>
|
||||
<text id="worker-node" font-family="OpenSans, Open Sans" font-size="8" font-weight="normal" fill="#FFFFFF">
|
||||
<tspan x="6" y="14">worker node</tspan>
|
||||
</text>
|
||||
</g>
|
||||
</g>
|
||||
<rect id="node-border" stroke="#445D6E" stroke-width="2" x="0" y="0" width="108" height="135" rx="2"></rect>
|
||||
</g>
|
||||
<g id="node" transform="translate(128.000000, 0.000000)">
|
||||
<text id="node-5" font-family="OpenSans-Semibold, Open Sans" font-size="10" font-weight="500" fill="#82949E">
|
||||
<tspan x="37.3129883" y="149">node-5</tspan>
|
||||
</text>
|
||||
<g id="ucp" transform="translate(1.000000, 112.000000)">
|
||||
<rect id="Rectangle-138" fill="#439FD1" x="0" y="0" width="106" height="22" rx="2"></rect>
|
||||
<text id="UCP" font-family="OpenSans, Open Sans" font-size="10" font-weight="normal" fill="#FFFFFF">
|
||||
<tspan x="43.6953125" y="15">UCP </tspan>
|
||||
</text>
|
||||
</g>
|
||||
<g id="wordpress" transform="translate(1.000000, 89.000000)">
|
||||
<rect id="Rectangle-138" fill="#00B6B5" x="0" y="0" width="106" height="22" rx="2"></rect>
|
||||
<text id="interlock-proxy:80" font-family="OpenSans, Open Sans" font-size="10" font-weight="normal" fill="#FFFFFF">
|
||||
<tspan x="10.8442383" y="15">interlock-proxy:80</tspan>
|
||||
</text>
|
||||
</g>
|
||||
<g id="wordpress-copy" transform="translate(12.000000, 70.000000)" fill="#FFFFFF" font-family="OpenSans, Open Sans" font-size="10" font-weight="normal">
|
||||
<text id="interlock-proxy:80">
|
||||
<tspan x="0.344238281" y="11">interlock-proxy:80</tspan>
|
||||
</text>
|
||||
</g>
|
||||
<g id="label">
|
||||
<g id="node-label">
|
||||
<path d="M0,2.00295631 C0,0.896754086 0.897702336,0 1.99174577,0 L71,0 L71,10.6452381 C71,16.5244408 66.2312425,21.2904762 60.3513837,21.2904762 L0,21.2904762 L0,2.00295631 Z" id="Rectangle-127" fill="#445D6E"></path>
|
||||
<text id="worker-node" font-family="OpenSans, Open Sans" font-size="8" font-weight="normal" fill="#FFFFFF">
|
||||
<tspan x="6" y="14">worker node</tspan>
|
||||
</text>
|
||||
</g>
|
||||
</g>
|
||||
<rect id="node-border" stroke="#445D6E" stroke-width="2" x="0" y="0" width="108" height="135" rx="2"></rect>
|
||||
</g>
|
||||
<g id="node-copy-3">
|
||||
<text id="node-4" font-family="OpenSans-Semibold, Open Sans" font-size="10" font-weight="500" fill="#82949E">
|
||||
<tspan x="37.3129883" y="149">node-4</tspan>
|
||||
</text>
|
||||
<g id="ucp" transform="translate(1.000000, 112.000000)">
|
||||
<rect id="Rectangle-138" fill="#439FD1" x="0" y="0" width="106" height="22" rx="2"></rect>
|
||||
<text id="UCP" font-family="OpenSans, Open Sans" font-size="10" font-weight="normal" fill="#FFFFFF">
|
||||
<tspan x="43.6953125" y="15">UCP </tspan>
|
||||
</text>
|
||||
</g>
|
||||
<g id="wordpress-copy" transform="translate(1.000000, 89.000000)">
|
||||
<rect id="Rectangle-138" fill="#00B6B5" x="0" y="0" width="106" height="22" rx="2"></rect>
|
||||
<text id="interlock-extension" font-family="OpenSans, Open Sans" font-size="10" font-weight="normal" fill="#FFFFFF">
|
||||
<tspan x="8.85400391" y="15">interlock-extension</tspan>
|
||||
</text>
|
||||
</g>
|
||||
<g id="wordpress-copy-2" transform="translate(1.000000, 66.000000)">
|
||||
<rect id="Rectangle-138" fill="#FFB463" x="0" y="0" width="106" height="22" rx="2"></rect>
|
||||
<text id="wordpress:8000" font-family="OpenSans, Open Sans" font-size="10" font-weight="normal" fill="#FFFFFF">
|
||||
<tspan x="16.0390625" y="15">wordpress:8000</tspan>
|
||||
</text>
|
||||
</g>
|
||||
<g id="label">
|
||||
<g id="node-label">
|
||||
<path d="M0,2.00295631 C0,0.896754086 0.897702336,0 1.99174577,0 L71,0 L71,10.6452381 C71,16.5244408 66.2312425,21.2904762 60.3513837,21.2904762 L0,21.2904762 L0,2.00295631 Z" id="Rectangle-127" fill="#445D6E"></path>
|
||||
<text id="worker-node" font-family="OpenSans, Open Sans" font-size="8" font-weight="normal" fill="#FFFFFF">
|
||||
<tspan x="6" y="14">worker node</tspan>
|
||||
</text>
|
||||
</g>
|
||||
</g>
|
||||
<rect id="node-border" stroke="#445D6E" stroke-width="2" x="0" y="0" width="108" height="135" rx="2"></rect>
|
||||
</g>
|
||||
</g>
|
||||
<g id="managers">
|
||||
<g id="node" transform="translate(228.000000, 0.000000)">
|
||||
<text id="node-3" font-family="OpenSans-Semibold, Open Sans" font-size="10" font-weight="500" fill="#82949E">
|
||||
<tspan x="37.3129883" y="149">node-3</tspan>
|
||||
</text>
|
||||
<g id="ucp" transform="translate(1.000000, 112.000000)">
|
||||
<rect id="Rectangle-138" fill="#439FD1" x="0" y="0" width="106" height="22" rx="2"></rect>
|
||||
<text id="UCP" font-family="OpenSans, Open Sans" font-size="10" font-weight="normal" fill="#FFFFFF">
|
||||
<tspan x="43.6953125" y="15">UCP </tspan>
|
||||
</text>
|
||||
</g>
|
||||
<g id="label">
|
||||
<g id="node-label">
|
||||
<path d="M0,2.00295631 C0,0.896754086 0.897702336,0 1.99174577,0 L71,0 L71,10.6452381 C71,16.5244408 66.2312425,21.2904762 60.3513837,21.2904762 L0,21.2904762 L0,2.00295631 Z" id="Rectangle-127" fill="#445D6E"></path>
|
||||
<text id="manager-node" font-family="OpenSans, Open Sans" font-size="8" font-weight="normal" fill="#FFFFFF">
|
||||
<tspan x="6" y="14">manager node</tspan>
|
||||
</text>
|
||||
</g>
|
||||
</g>
|
||||
<rect id="node-border" stroke="#445D6E" stroke-width="2" x="0" y="0" width="108" height="135" rx="2"></rect>
|
||||
</g>
|
||||
<g id="node-copy" transform="translate(114.000000, 0.000000)">
|
||||
<text id="node-2" font-family="OpenSans-Semibold, Open Sans" font-size="10" font-weight="500" fill="#82949E">
|
||||
<tspan x="37.3129883" y="149">node-2</tspan>
|
||||
</text>
|
||||
<g id="ucp" transform="translate(1.000000, 112.000000)">
|
||||
<rect id="Rectangle-138" fill="#439FD1" x="0" y="0" width="106" height="22" rx="2"></rect>
|
||||
<text id="UCP" font-family="OpenSans, Open Sans" font-size="10" font-weight="normal" fill="#FFFFFF">
|
||||
<tspan x="43.6953125" y="15">UCP </tspan>
|
||||
</text>
|
||||
</g>
|
||||
<g id="label">
|
||||
<g id="node-label">
|
||||
<path d="M0,2.00295631 C0,0.896754086 0.897702336,0 1.99174577,0 L71,0 L71,10.6452381 C71,16.5244408 66.2312425,21.2904762 60.3513837,21.2904762 L0,21.2904762 L0,2.00295631 Z" id="Rectangle-127" fill="#445D6E"></path>
|
||||
<text id="manager-node" font-family="OpenSans, Open Sans" font-size="8" font-weight="normal" fill="#FFFFFF">
|
||||
<tspan x="6" y="14">manager node</tspan>
|
||||
</text>
|
||||
</g>
|
||||
</g>
|
||||
<rect id="node-border" stroke="#445D6E" stroke-width="2" x="0" y="0" width="108" height="135" rx="2"></rect>
|
||||
</g>
|
||||
<g id="node-copy-2">
|
||||
<text id="node-1" font-family="OpenSans-Semibold, Open Sans" font-size="10" font-weight="500" fill="#82949E">
|
||||
<tspan x="37.3129883" y="149">node-1</tspan>
|
||||
</text>
|
||||
<g id="ucp" transform="translate(1.000000, 112.000000)">
|
||||
<rect id="Rectangle-138" fill="#439FD1" x="0" y="0" width="106" height="22" rx="2"></rect>
|
||||
<text id="UCP" font-family="OpenSans, Open Sans" font-size="10" font-weight="normal" fill="#FFFFFF">
|
||||
<tspan x="43.6953125" y="15">UCP </tspan>
|
||||
</text>
|
||||
</g>
|
||||
<g id="wordpress" transform="translate(1.000000, 89.000000)">
|
||||
<rect id="Rectangle-138" fill="#00B6B5" x="0" y="0" width="106" height="22" rx="2"></rect>
|
||||
<text id="ucp-interlock" font-family="OpenSans, Open Sans" font-size="10" font-weight="normal" fill="#FFFFFF">
|
||||
<tspan x="22.6435547" y="15">ucp-interlock</tspan>
|
||||
</text>
|
||||
</g>
|
||||
<g id="label">
|
||||
<g id="node-label">
|
||||
<path d="M0,2.00295631 C0,0.896754086 0.897702336,0 1.99174577,0 L71,0 L71,10.6452381 C71,16.5244408 66.2312425,21.2904762 60.3513837,21.2904762 L0,21.2904762 L0,2.00295631 Z" id="Rectangle-127" fill="#445D6E"></path>
|
||||
<text id="manager-node" font-family="OpenSans, Open Sans" font-size="8" font-weight="normal" fill="#FFFFFF">
|
||||
<tspan x="6" y="14">manager node</tspan>
|
||||
</text>
|
||||
</g>
|
||||
</g>
|
||||
<rect id="node-border" stroke="#445D6E" stroke-width="2" x="0" y="0" width="108" height="135" rx="2"></rect>
|
||||
</g>
|
||||
</g>
|
||||
</g>
|
||||
<g id="load-balancer" transform="translate(492.000000, 55.000000)">
|
||||
<g id="L7">
|
||||
<rect id="Rectangle-138" fill="#445D6E" x="0" y="0" width="224" height="22" rx="2"></rect>
|
||||
<text id="your-load-balancer" font-family="OpenSans, Open Sans" font-size="10" font-weight="normal" fill="#FFFFFF">
|
||||
<tspan x="68.4379883" y="15">your load balancer</tspan>
|
||||
</text>
|
||||
</g>
|
||||
<g id="arrow" transform="translate(170.000000, 33.000000) scale(1, -1) rotate(-90.000000) translate(-170.000000, -33.000000) translate(158.000000, 29.000000)">
|
||||
<path d="M2,4 L24,4" id="Line" stroke="#445D6E" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"></path>
|
||||
<g id="Oval">
|
||||
<use fill="#445D6E" fill-rule="evenodd" xlink:href="#path-1"></use>
|
||||
<circle stroke="#F7F8F9" stroke-width="2" cx="4" cy="4" r="5"></circle>
|
||||
</g>
|
||||
</g>
|
||||
<g id="arrow" transform="translate(56.000000, 33.000000) scale(1, -1) rotate(-90.000000) translate(-56.000000, -33.000000) translate(44.000000, 29.000000)">
|
||||
<path d="M2,4 L24,4" id="Line" stroke="#445D6E" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"></path>
|
||||
<g id="Oval">
|
||||
<use fill="#445D6E" fill-rule="evenodd" xlink:href="#path-2"></use>
|
||||
<circle stroke="#F7F8F9" stroke-width="2" cx="4" cy="4" r="5"></circle>
|
||||
</g>
|
||||
</g>
|
||||
</g>
|
||||
<path d="M0,89.0026084 C0,87.8965983 0.899745421,87 1.99463835,87 L721.005362,87 C722.10697,87 723,87.8872198 723,89.0026084 L723,288.997392 C723,290.103402 722.100255,291 721.005362,291 L1.99463835,291 C0.89303001,291 0,290.11278 0,288.997392 L0,89.0026084 Z" id="group" stroke="#E0E4E7" stroke-width="2" stroke-dasharray="5,5,5,5"></path>
|
||||
<g id="user" transform="translate(532.000000, 0.000000)" fill="#82949E">
|
||||
<text id="http://wordpress.exa" font-family="OpenSans-Semibold, Open Sans" font-size="10" font-weight="500">
|
||||
<tspan x="0.129394531" y="42">http://wordpress.example.org</tspan>
|
||||
</text>
|
||||
<path d="M73,13 C76.59125,13 79.5,10.083125 79.5,6.5 C79.5,2.90875 76.59125,0 73,0 C69.40875,0 66.5,2.90875 66.5,6.5 C66.5,10.083125 69.40875,13 73,13 L73,13 Z M73,16.25 C68.669375,16.25 60,18.419375 60,22.75 L60,26 L86,26 L86,22.75 C86,18.419375 77.330625,16.25 73,16.25 L73,16.25 Z" id="Shape"></path>
|
||||
</g>
|
||||
</g>
|
||||
</g>
|
||||
</svg>
|
After Width: | Height: | Size: 16 KiB |
|
@ -0,0 +1,198 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<svg width="740px" height="250px" viewBox="0 0 740 250" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
|
||||
<!-- Generator: Sketch 42 (36781) - http://www.bohemiancoding.com/sketch -->
|
||||
<title>use-domain-names-1</title>
|
||||
<desc>Created with Sketch.</desc>
|
||||
<defs>
|
||||
<circle id="path-1" cx="4" cy="4" r="4"></circle>
|
||||
<mask id="mask-2" maskContentUnits="userSpaceOnUse" maskUnits="objectBoundingBox" x="-2" y="-2" width="12" height="12">
|
||||
<rect x="-2" y="-2" width="12" height="12" fill="white"></rect>
|
||||
<use xlink:href="#path-1" fill="black"></use>
|
||||
</mask>
|
||||
<circle id="path-3" cx="4" cy="4" r="4"></circle>
|
||||
<mask id="mask-4" maskContentUnits="userSpaceOnUse" maskUnits="objectBoundingBox" x="-2" y="-2" width="12" height="12">
|
||||
<rect x="-2" y="-2" width="12" height="12" fill="white"></rect>
|
||||
<use xlink:href="#path-3" fill="black"></use>
|
||||
</mask>
|
||||
<circle id="path-5" cx="4" cy="4" r="4"></circle>
|
||||
<mask id="mask-6" maskContentUnits="userSpaceOnUse" maskUnits="objectBoundingBox" x="-2" y="-2" width="12" height="12">
|
||||
<rect x="-2" y="-2" width="12" height="12" fill="white"></rect>
|
||||
<use xlink:href="#path-5" fill="black"></use>
|
||||
</mask>
|
||||
<circle id="path-7" cx="4" cy="4" r="4"></circle>
|
||||
<mask id="mask-8" maskContentUnits="userSpaceOnUse" maskUnits="objectBoundingBox" x="-2" y="-2" width="12" height="12">
|
||||
<rect x="-2" y="-2" width="12" height="12" fill="white"></rect>
|
||||
<use xlink:href="#path-7" fill="black"></use>
|
||||
</mask>
|
||||
<circle id="path-9" cx="4" cy="4" r="4"></circle>
|
||||
<mask id="mask-10" maskContentUnits="userSpaceOnUse" maskUnits="objectBoundingBox" x="-2" y="-2" width="12" height="12">
|
||||
<rect x="-2" y="-2" width="12" height="12" fill="white"></rect>
|
||||
<use xlink:href="#path-9" fill="black"></use>
|
||||
</mask>
|
||||
</defs>
|
||||
<g id="ucp-diagrams" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
|
||||
<g id="use-domain-names-1">
|
||||
<g id="nodes" transform="translate(108.000000, 104.000000)">
|
||||
<g id="workers" transform="translate(321.000000, 0.000000)">
|
||||
<g id="node-1" transform="translate(107.000000, 0.000000)">
|
||||
<text id="192.168.99.104" font-family="OpenSans-Semibold, Open Sans" font-size="10" font-weight="500" fill="#82949E">
|
||||
<tspan x="13.4824219" y="116">192.168.99.104</tspan>
|
||||
</text>
|
||||
<g id="node">
|
||||
<g id="node-label">
|
||||
<path d="M0,2.00295631 C0,0.896754086 0.897702336,0 1.99174577,0 L71,0 L71,10.6452381 C71,16.5244408 66.2312425,21.2904762 60.3513837,21.2904762 L0,21.2904762 L0,2.00295631 Z" id="Rectangle-127" fill="#445D6E"></path>
|
||||
<text id="worker-node" font-family="OpenSans, Open Sans" font-size="8" font-weight="normal" fill="#FFFFFF">
|
||||
<tspan x="6" y="14">worker node</tspan>
|
||||
</text>
|
||||
</g>
|
||||
</g>
|
||||
<g id="app" transform="translate(1.000000, 79.000000)">
|
||||
<rect id="Rectangle-138" fill="#439FD1" x="0" y="0" width="95" height="22" rx="2"></rect>
|
||||
<text id="UCP" font-family="OpenSans, Open Sans" font-size="10" font-weight="normal" fill="#FFFFFF">
|
||||
<tspan x="38.1953125" y="15">UCP </tspan>
|
||||
</text>
|
||||
</g>
|
||||
<g id="app-copy" transform="translate(1.000000, 56.000000)">
|
||||
<rect id="Rectangle-138" fill="#FFB463" x="0" y="0" width="95" height="22" rx="2"></rect>
|
||||
<text id="wordpress:8000" font-family="OpenSans, Open Sans" font-size="10" font-weight="normal" fill="#FFFFFF">
|
||||
<tspan x="10.5390625" y="15">wordpress:8000</tspan>
|
||||
</text>
|
||||
</g>
|
||||
<rect id="node-border" stroke="#445D6E" stroke-width="2" x="0" y="0" width="97" height="102" rx="2"></rect>
|
||||
</g>
|
||||
<g id="node-1-copy">
|
||||
<text id="192.168.99.103" font-family="OpenSans-Semibold, Open Sans" font-size="10" font-weight="500" fill="#82949E">
|
||||
<tspan x="13.4824219" y="116">192.168.99.103</tspan>
|
||||
</text>
|
||||
<g id="node">
|
||||
<g id="node-label">
|
||||
<path d="M0,2.00295631 C0,0.896754086 0.897702336,0 1.99174577,0 L71,0 L71,10.6452381 C71,16.5244408 66.2312425,21.2904762 60.3513837,21.2904762 L0,21.2904762 L0,2.00295631 Z" id="Rectangle-127" fill="#E0E4E7"></path>
|
||||
<text id="worker-node" font-family="OpenSans, Open Sans" font-size="8" font-weight="normal" fill="#FFFFFF">
|
||||
<tspan x="6" y="14">worker node</tspan>
|
||||
</text>
|
||||
</g>
|
||||
</g>
|
||||
<g id="app" transform="translate(1.000000, 79.000000)">
|
||||
<rect id="Rectangle-138" fill="#A1CFE8" x="0" y="0" width="95" height="22" rx="2"></rect>
|
||||
<text id="UCP" font-family="OpenSans, Open Sans" font-size="10" font-weight="normal" fill="#FFFFFF">
|
||||
<tspan x="38.1953125" y="15">UCP</tspan>
|
||||
</text>
|
||||
</g>
|
||||
<rect id="node-border" stroke="#E0E4E7" stroke-width="2" x="0" y="0" width="97" height="102" rx="2"></rect>
|
||||
</g>
|
||||
</g>
|
||||
<g id="managers">
|
||||
<g id="node-1" transform="translate(214.000000, 0.000000)">
|
||||
<text id="192.168.99.102" font-family="OpenSans-Semibold, Open Sans" font-size="10" font-weight="500" fill="#82949E">
|
||||
<tspan x="13.4824219" y="116">192.168.99.102</tspan>
|
||||
</text>
|
||||
<g id="node">
|
||||
<g id="node-label">
|
||||
<path d="M0,2.00295631 C0,0.896754086 0.897702336,0 1.99174577,0 L71,0 L71,10.6452381 C71,16.5244408 66.2312425,21.2904762 60.3513837,21.2904762 L0,21.2904762 L0,2.00295631 Z" id="Rectangle-127" fill="#E0E4E7"></path>
|
||||
<text id="manager-node" font-family="OpenSans, Open Sans" font-size="8" font-weight="normal" fill="#FFFFFF">
|
||||
<tspan x="6" y="14">manager node</tspan>
|
||||
</text>
|
||||
</g>
|
||||
</g>
|
||||
<g id="app" transform="translate(1.000000, 79.000000)">
|
||||
<rect id="Rectangle-138" fill="#A1CFE8" x="0" y="0" width="95" height="22" rx="2"></rect>
|
||||
<text id="UCP" font-family="OpenSans, Open Sans" font-size="10" font-weight="normal" fill="#FFFFFF">
|
||||
<tspan x="38.1953125" y="15">UCP</tspan>
|
||||
</text>
|
||||
</g>
|
||||
<rect id="node-border" stroke="#E0E4E7" stroke-width="2" x="0" y="0" width="97" height="102" rx="2"></rect>
|
||||
</g>
|
||||
<g id="node-1-copy-3" transform="translate(107.000000, 0.000000)">
|
||||
<text id="192.168.99.101" font-family="OpenSans-Semibold, Open Sans" font-size="10" font-weight="500" fill="#82949E">
|
||||
<tspan x="13.4824219" y="116">192.168.99.101</tspan>
|
||||
</text>
|
||||
<g id="node">
|
||||
<g id="node-label">
|
||||
<path d="M0,2.00295631 C0,0.896754086 0.897702336,0 1.99174577,0 L71,0 L71,10.6452381 C71,16.5244408 66.2312425,21.2904762 60.3513837,21.2904762 L0,21.2904762 L0,2.00295631 Z" id="Rectangle-127" fill="#E0E4E7"></path>
|
||||
<text id="manager-node" font-family="OpenSans, Open Sans" font-size="8" font-weight="normal" fill="#FFFFFF">
|
||||
<tspan x="6" y="14">manager node</tspan>
|
||||
</text>
|
||||
</g>
|
||||
</g>
|
||||
<g id="app" transform="translate(1.000000, 79.000000)">
|
||||
<rect id="Rectangle-138" fill="#A1CFE8" x="0" y="0" width="95" height="22" rx="2"></rect>
|
||||
<text id="UCP" font-family="OpenSans, Open Sans" font-size="10" font-weight="normal" fill="#FFFFFF">
|
||||
<tspan x="38.1953125" y="15">UCP</tspan>
|
||||
</text>
|
||||
</g>
|
||||
<rect id="node-border" stroke="#E0E4E7" stroke-width="2" x="0" y="0" width="97" height="102" rx="2"></rect>
|
||||
</g>
|
||||
<g id="node-1-copy-2">
|
||||
<text id="192.168.99.100-copy-4" font-family="OpenSans-Semibold, Open Sans" font-size="10" font-weight="500" fill="#82949E">
|
||||
<tspan x="13.4824219" y="116">192.168.99.100</tspan>
|
||||
</text>
|
||||
<g id="node">
|
||||
<g id="node-label">
|
||||
<path d="M0,2.00295631 C0,0.896754086 0.897702336,0 1.99174577,0 L71,0 L71,10.6452381 C71,16.5244408 66.2312425,21.2904762 60.3513837,21.2904762 L0,21.2904762 L0,2.00295631 Z" id="Rectangle-127" fill="#E0E4E7"></path>
|
||||
<text id="manager-node" font-family="OpenSans, Open Sans" font-size="8" font-weight="normal" fill="#FFFFFF">
|
||||
<tspan x="6" y="14">manager node</tspan>
|
||||
</text>
|
||||
</g>
|
||||
</g>
|
||||
<g id="app" transform="translate(1.000000, 79.000000)">
|
||||
<rect id="Rectangle-138" fill="#A1CFE8" x="0" y="0" width="95" height="22" rx="2"></rect>
|
||||
<text id="UCP" font-family="OpenSans, Open Sans" font-size="10" font-weight="normal" fill="#FFFFFF">
|
||||
<tspan x="38.1953125" y="15">UCP</tspan>
|
||||
</text>
|
||||
</g>
|
||||
<rect id="node-border" stroke="#E0E4E7" stroke-width="2" x="0" y="0" width="97" height="102" rx="2"></rect>
|
||||
</g>
|
||||
</g>
|
||||
</g>
|
||||
<g id="load-balancer" transform="translate(107.000000, 59.000000)">
|
||||
<g id="lb">
|
||||
<rect id="Rectangle-138" fill="#445D6E" x="0" y="0" width="527" height="22" rx="2"></rect>
|
||||
<text id="swarm-routing-mesh" font-family="OpenSans, Open Sans" font-size="10" font-weight="normal" fill="#FFFFFF">
|
||||
<tspan x="214.819415" y="15">swarm routing mesh</tspan>
|
||||
</text>
|
||||
</g>
|
||||
<g id="arrow-copy-2" transform="translate(477.500000, 32.500000) scale(1, -1) rotate(-90.000000) translate(-477.500000, -32.500000) translate(465.500000, 28.500000)">
|
||||
<path d="M2,4 L24,4" id="Line" stroke="#445D6E" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"></path>
|
||||
<g id="Oval">
|
||||
<use fill="#445D6E" fill-rule="evenodd" xlink:href="#path-1"></use>
|
||||
<use stroke="#F7F8F9" mask="url(#mask-2)" stroke-width="4" xlink:href="#path-1"></use>
|
||||
</g>
|
||||
</g>
|
||||
<g id="arrow-copy-3" transform="translate(370.500000, 32.500000) scale(1, -1) rotate(-90.000000) translate(-370.500000, -32.500000) translate(358.500000, 28.500000)">
|
||||
<path d="M2,4 L24,4" id="Line" stroke="#E0E4E7" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"></path>
|
||||
<g id="Oval">
|
||||
<use fill="#E0E4E7" fill-rule="evenodd" xlink:href="#path-3"></use>
|
||||
<use stroke="#F7F8F9" mask="url(#mask-4)" stroke-width="4" xlink:href="#path-3"></use>
|
||||
</g>
|
||||
</g>
|
||||
<g id="arrow-copy-4" transform="translate(263.500000, 32.500000) scale(1, -1) rotate(-90.000000) translate(-263.500000, -32.500000) translate(251.500000, 28.500000)">
|
||||
<path d="M2,4 L24,4" id="Line" stroke="#E0E4E7" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"></path>
|
||||
<g id="Oval">
|
||||
<use fill="#E0E4E7" fill-rule="evenodd" xlink:href="#path-5"></use>
|
||||
<use stroke="#F7F8F9" mask="url(#mask-6)" stroke-width="4" xlink:href="#path-5"></use>
|
||||
</g>
|
||||
</g>
|
||||
<g id="arrow-copy-5" transform="translate(156.500000, 32.500000) scale(1, -1) rotate(-90.000000) translate(-156.500000, -32.500000) translate(144.500000, 28.500000)">
|
||||
<path d="M2,4 L24,4" id="Line" stroke="#E0E4E7" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"></path>
|
||||
<g id="Oval">
|
||||
<use fill="#E0E4E7" fill-rule="evenodd" xlink:href="#path-7"></use>
|
||||
<use stroke="#F7F8F9" mask="url(#mask-8)" stroke-width="4" xlink:href="#path-7"></use>
|
||||
</g>
|
||||
</g>
|
||||
<g id="arrow-copy-6" transform="translate(49.500000, 32.500000) scale(1, -1) rotate(-90.000000) translate(-49.500000, -32.500000) translate(37.500000, 28.500000)">
|
||||
<path d="M2,4 L24,4" id="Line" stroke="#E0E4E7" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"></path>
|
||||
<g id="Oval">
|
||||
<use fill="#E0E4E7" fill-rule="evenodd" xlink:href="#path-9"></use>
|
||||
<use stroke="#F7F8F9" mask="url(#mask-10)" stroke-width="4" xlink:href="#path-9"></use>
|
||||
</g>
|
||||
</g>
|
||||
</g>
|
||||
<g id="user" transform="translate(321.000000, 4.000000)" fill="#82949E">
|
||||
<text id="192.168.99.100:8000" font-family="OpenSans-Semibold, Open Sans" font-size="10" font-weight="500">
|
||||
<tspan x="0.191894531" y="42">192.168.99.100:8000</tspan>
|
||||
</text>
|
||||
<path d="M49,13 C52.59125,13 55.5,10.083125 55.5,6.5 C55.5,2.90875 52.59125,0 49,0 C45.40875,0 42.5,2.90875 42.5,6.5 C42.5,10.083125 45.40875,13 49,13 L49,13 Z M49,16.25 C44.669375,16.25 36,18.419375 36,22.75 L36,26 L62,26 L62,22.75 C62,18.419375 53.330625,16.25 49,16.25 L49,16.25 Z" id="Shape"></path>
|
||||
</g>
|
||||
</g>
|
||||
</g>
|
||||
</svg>
|
After Width: | Height: | Size: 15 KiB |
|
@ -0,0 +1,198 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<svg width="740px" height="250px" viewBox="0 0 740 250" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
|
||||
<!-- Generator: Sketch 42 (36781) - http://www.bohemiancoding.com/sketch -->
|
||||
<title>use-domain-names-2</title>
|
||||
<desc>Created with Sketch.</desc>
|
||||
<defs>
|
||||
<circle id="path-1" cx="4" cy="4" r="4"></circle>
|
||||
<mask id="mask-2" maskContentUnits="userSpaceOnUse" maskUnits="objectBoundingBox" x="-2" y="-2" width="12" height="12">
|
||||
<rect x="-2" y="-2" width="12" height="12" fill="white"></rect>
|
||||
<use xlink:href="#path-1" fill="black"></use>
|
||||
</mask>
|
||||
<circle id="path-3" cx="4" cy="4" r="4"></circle>
|
||||
<mask id="mask-4" maskContentUnits="userSpaceOnUse" maskUnits="objectBoundingBox" x="-2" y="-2" width="12" height="12">
|
||||
<rect x="-2" y="-2" width="12" height="12" fill="white"></rect>
|
||||
<use xlink:href="#path-3" fill="black"></use>
|
||||
</mask>
|
||||
<circle id="path-5" cx="4" cy="4" r="4"></circle>
|
||||
<mask id="mask-6" maskContentUnits="userSpaceOnUse" maskUnits="objectBoundingBox" x="-2" y="-2" width="12" height="12">
|
||||
<rect x="-2" y="-2" width="12" height="12" fill="white"></rect>
|
||||
<use xlink:href="#path-5" fill="black"></use>
|
||||
</mask>
|
||||
<circle id="path-7" cx="4" cy="4" r="4"></circle>
|
||||
<mask id="mask-8" maskContentUnits="userSpaceOnUse" maskUnits="objectBoundingBox" x="-2" y="-2" width="12" height="12">
|
||||
<rect x="-2" y="-2" width="12" height="12" fill="white"></rect>
|
||||
<use xlink:href="#path-7" fill="black"></use>
|
||||
</mask>
|
||||
<circle id="path-9" cx="4" cy="4" r="4"></circle>
|
||||
<mask id="mask-10" maskContentUnits="userSpaceOnUse" maskUnits="objectBoundingBox" x="-2" y="-2" width="12" height="12">
|
||||
<rect x="-2" y="-2" width="12" height="12" fill="white"></rect>
|
||||
<use xlink:href="#path-9" fill="black"></use>
|
||||
</mask>
|
||||
</defs>
|
||||
<g id="ucp-diagrams" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
|
||||
<g id="use-domain-names-2">
|
||||
<g id="nodes" transform="translate(108.000000, 104.000000)">
|
||||
<g id="workers" transform="translate(321.000000, 0.000000)">
|
||||
<g id="node-1" transform="translate(107.000000, 0.000000)">
|
||||
<text id="192.168.99.104" font-family="OpenSans-Semibold, Open Sans" font-size="10" font-weight="500" fill="#82949E">
|
||||
<tspan x="13.4824219" y="116">192.168.99.104</tspan>
|
||||
</text>
|
||||
<g id="node">
|
||||
<g id="node-label">
|
||||
<path d="M0,2.00295631 C0,0.896754086 0.897702336,0 1.99174577,0 L71,0 L71,10.6452381 C71,16.5244408 66.2312425,21.2904762 60.3513837,21.2904762 L0,21.2904762 L0,2.00295631 Z" id="Rectangle-127" fill="#445D6E"></path>
|
||||
<text id="worker-node" font-family="OpenSans, Open Sans" font-size="8" font-weight="normal" fill="#FFFFFF">
|
||||
<tspan x="6" y="14">worker node</tspan>
|
||||
</text>
|
||||
</g>
|
||||
</g>
|
||||
<g id="app" transform="translate(1.000000, 79.000000)">
|
||||
<rect id="Rectangle-138" fill="#439FD1" x="0" y="0" width="95" height="22" rx="2"></rect>
|
||||
<text id="UCP" font-family="OpenSans, Open Sans" font-size="10" font-weight="normal" fill="#FFFFFF">
|
||||
<tspan x="38.1953125" y="15">UCP </tspan>
|
||||
</text>
|
||||
</g>
|
||||
<g id="app-copy" transform="translate(1.000000, 56.000000)">
|
||||
<rect id="Rectangle-138" fill="#FFB463" x="0" y="0" width="95" height="22" rx="2"></rect>
|
||||
<text id="wordpress:8000" font-family="OpenSans, Open Sans" font-size="10" font-weight="normal" fill="#FFFFFF">
|
||||
<tspan x="10.5390625" y="15">wordpress:8000</tspan>
|
||||
</text>
|
||||
</g>
|
||||
<rect id="node-border" stroke="#445D6E" stroke-width="2" x="0" y="0" width="97" height="102" rx="2"></rect>
|
||||
</g>
|
||||
<g id="node-1-copy">
|
||||
<text id="192.168.99.103" font-family="OpenSans-Semibold, Open Sans" font-size="10" font-weight="500" fill="#82949E">
|
||||
<tspan x="13.4824219" y="116">192.168.99.103</tspan>
|
||||
</text>
|
||||
<g id="node">
|
||||
<g id="node-label">
|
||||
<path d="M0,2.00295631 C0,0.896754086 0.897702336,0 1.99174577,0 L71,0 L71,10.6452381 C71,16.5244408 66.2312425,21.2904762 60.3513837,21.2904762 L0,21.2904762 L0,2.00295631 Z" id="Rectangle-127" fill="#E0E4E7"></path>
|
||||
<text id="worker-node" font-family="OpenSans, Open Sans" font-size="8" font-weight="normal" fill="#FFFFFF">
|
||||
<tspan x="6" y="14">worker node</tspan>
|
||||
</text>
|
||||
</g>
|
||||
</g>
|
||||
<g id="app" transform="translate(1.000000, 79.000000)">
|
||||
<rect id="Rectangle-138" fill="#A1CFE8" x="0" y="0" width="95" height="22" rx="2"></rect>
|
||||
<text id="UCP" font-family="OpenSans, Open Sans" font-size="10" font-weight="normal" fill="#FFFFFF">
|
||||
<tspan x="38.1953125" y="15">UCP</tspan>
|
||||
</text>
|
||||
</g>
|
||||
<rect id="node-border" stroke="#E0E4E7" stroke-width="2" x="0" y="0" width="97" height="102" rx="2"></rect>
|
||||
</g>
|
||||
</g>
|
||||
<g id="managers">
|
||||
<g id="node-1" transform="translate(214.000000, 0.000000)">
|
||||
<text id="192.168.99.102" font-family="OpenSans-Semibold, Open Sans" font-size="10" font-weight="500" fill="#82949E">
|
||||
<tspan x="13.4824219" y="116">192.168.99.102</tspan>
|
||||
</text>
|
||||
<g id="node">
|
||||
<g id="node-label">
|
||||
<path d="M0,2.00295631 C0,0.896754086 0.897702336,0 1.99174577,0 L71,0 L71,10.6452381 C71,16.5244408 66.2312425,21.2904762 60.3513837,21.2904762 L0,21.2904762 L0,2.00295631 Z" id="Rectangle-127" fill="#E0E4E7"></path>
|
||||
<text id="manager-node" font-family="OpenSans, Open Sans" font-size="8" font-weight="normal" fill="#FFFFFF">
|
||||
<tspan x="6" y="14">manager node</tspan>
|
||||
</text>
|
||||
</g>
|
||||
</g>
|
||||
<g id="app" transform="translate(1.000000, 79.000000)">
|
||||
<rect id="Rectangle-138" fill="#A1CFE8" x="0" y="0" width="95" height="22" rx="2"></rect>
|
||||
<text id="UCP" font-family="OpenSans, Open Sans" font-size="10" font-weight="normal" fill="#FFFFFF">
|
||||
<tspan x="38.1953125" y="15">UCP</tspan>
|
||||
</text>
|
||||
</g>
|
||||
<rect id="node-border" stroke="#E0E4E7" stroke-width="2" x="0" y="0" width="97" height="102" rx="2"></rect>
|
||||
</g>
|
||||
<g id="node-1-copy-3" transform="translate(107.000000, 0.000000)">
|
||||
<text id="192.168.99.101" font-family="OpenSans-Semibold, Open Sans" font-size="10" font-weight="500" fill="#82949E">
|
||||
<tspan x="13.4824219" y="116">192.168.99.101</tspan>
|
||||
</text>
|
||||
<g id="node">
|
||||
<g id="node-label">
|
||||
<path d="M0,2.00295631 C0,0.896754086 0.897702336,0 1.99174577,0 L71,0 L71,10.6452381 C71,16.5244408 66.2312425,21.2904762 60.3513837,21.2904762 L0,21.2904762 L0,2.00295631 Z" id="Rectangle-127" fill="#E0E4E7"></path>
|
||||
<text id="manager-node" font-family="OpenSans, Open Sans" font-size="8" font-weight="normal" fill="#FFFFFF">
|
||||
<tspan x="6" y="14">manager node</tspan>
|
||||
</text>
|
||||
</g>
|
||||
</g>
|
||||
<g id="app" transform="translate(1.000000, 79.000000)">
|
||||
<rect id="Rectangle-138" fill="#A1CFE8" x="0" y="0" width="95" height="22" rx="2"></rect>
|
||||
<text id="UCP" font-family="OpenSans, Open Sans" font-size="10" font-weight="normal" fill="#FFFFFF">
|
||||
<tspan x="38.1953125" y="15">UCP</tspan>
|
||||
</text>
|
||||
</g>
|
||||
<rect id="node-border" stroke="#E0E4E7" stroke-width="2" x="0" y="0" width="97" height="102" rx="2"></rect>
|
||||
</g>
|
||||
<g id="node-1-copy-2">
|
||||
<text id="192.168.99.100-copy-4" font-family="OpenSans-Semibold, Open Sans" font-size="10" font-weight="500" fill="#82949E">
|
||||
<tspan x="13.4824219" y="116">192.168.99.100</tspan>
|
||||
</text>
|
||||
<g id="node">
|
||||
<g id="node-label">
|
||||
<path d="M0,2.00295631 C0,0.896754086 0.897702336,0 1.99174577,0 L71,0 L71,10.6452381 C71,16.5244408 66.2312425,21.2904762 60.3513837,21.2904762 L0,21.2904762 L0,2.00295631 Z" id="Rectangle-127" fill="#E0E4E7"></path>
|
||||
<text id="manager-node" font-family="OpenSans, Open Sans" font-size="8" font-weight="normal" fill="#FFFFFF">
|
||||
<tspan x="6" y="14">manager node</tspan>
|
||||
</text>
|
||||
</g>
|
||||
</g>
|
||||
<g id="app" transform="translate(1.000000, 79.000000)">
|
||||
<rect id="Rectangle-138" fill="#A1CFE8" x="0" y="0" width="95" height="22" rx="2"></rect>
|
||||
<text id="UCP" font-family="OpenSans, Open Sans" font-size="10" font-weight="normal" fill="#FFFFFF">
|
||||
<tspan x="38.1953125" y="15">UCP</tspan>
|
||||
</text>
|
||||
</g>
|
||||
<rect id="node-border" stroke="#E0E4E7" stroke-width="2" x="0" y="0" width="97" height="102" rx="2"></rect>
|
||||
</g>
|
||||
</g>
|
||||
</g>
|
||||
<g id="load-balancer" transform="translate(107.000000, 59.000000)">
|
||||
<g id="lb">
|
||||
<rect id="Rectangle-138" fill="#445D6E" x="0" y="0" width="527" height="22" rx="2"></rect>
|
||||
<text id="HTTP-routing-mesh" font-family="OpenSans, Open Sans" font-size="10" font-weight="normal" fill="#FFFFFF">
|
||||
<tspan x="218.33504" y="15">HTTP routing mesh</tspan>
|
||||
</text>
|
||||
</g>
|
||||
<g id="arrow-copy-2" transform="translate(477.500000, 32.500000) scale(1, -1) rotate(-90.000000) translate(-477.500000, -32.500000) translate(465.500000, 28.500000)">
|
||||
<path d="M2,4 L24,4" id="Line" stroke="#445D6E" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"></path>
|
||||
<g id="Oval">
|
||||
<use fill="#445D6E" fill-rule="evenodd" xlink:href="#path-1"></use>
|
||||
<use stroke="#F7F8F9" mask="url(#mask-2)" stroke-width="4" xlink:href="#path-1"></use>
|
||||
</g>
|
||||
</g>
|
||||
<g id="arrow-copy-3" transform="translate(370.500000, 32.500000) scale(1, -1) rotate(-90.000000) translate(-370.500000, -32.500000) translate(358.500000, 28.500000)">
|
||||
<path d="M2,4 L24,4" id="Line" stroke="#E0E4E7" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"></path>
|
||||
<g id="Oval">
|
||||
<use fill="#E0E4E7" fill-rule="evenodd" xlink:href="#path-3"></use>
|
||||
<use stroke="#F7F8F9" mask="url(#mask-4)" stroke-width="4" xlink:href="#path-3"></use>
|
||||
</g>
|
||||
</g>
|
||||
<g id="arrow-copy-4" transform="translate(263.500000, 32.500000) scale(1, -1) rotate(-90.000000) translate(-263.500000, -32.500000) translate(251.500000, 28.500000)">
|
||||
<path d="M2,4 L24,4" id="Line" stroke="#E0E4E7" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"></path>
|
||||
<g id="Oval">
|
||||
<use fill="#E0E4E7" fill-rule="evenodd" xlink:href="#path-5"></use>
|
||||
<use stroke="#F7F8F9" mask="url(#mask-6)" stroke-width="4" xlink:href="#path-5"></use>
|
||||
</g>
|
||||
</g>
|
||||
<g id="arrow-copy-5" transform="translate(156.500000, 32.500000) scale(1, -1) rotate(-90.000000) translate(-156.500000, -32.500000) translate(144.500000, 28.500000)">
|
||||
<path d="M2,4 L24,4" id="Line" stroke="#E0E4E7" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"></path>
|
||||
<g id="Oval">
|
||||
<use fill="#E0E4E7" fill-rule="evenodd" xlink:href="#path-7"></use>
|
||||
<use stroke="#F7F8F9" mask="url(#mask-8)" stroke-width="4" xlink:href="#path-7"></use>
|
||||
</g>
|
||||
</g>
|
||||
<g id="arrow-copy-6" transform="translate(49.500000, 32.500000) scale(1, -1) rotate(-90.000000) translate(-49.500000, -32.500000) translate(37.500000, 28.500000)">
|
||||
<path d="M2,4 L24,4" id="Line" stroke="#E0E4E7" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"></path>
|
||||
<g id="Oval">
|
||||
<use fill="#E0E4E7" fill-rule="evenodd" xlink:href="#path-9"></use>
|
||||
<use stroke="#F7F8F9" mask="url(#mask-10)" stroke-width="4" xlink:href="#path-9"></use>
|
||||
</g>
|
||||
</g>
|
||||
</g>
|
||||
<g id="user" transform="translate(306.000000, 4.000000)" fill="#82949E">
|
||||
<text id="wordpress.example.or" font-family="OpenSans-Semibold, Open Sans" font-size="10" font-weight="500">
|
||||
<tspan x="0.0424804688" y="42">wordpress.example.org:80</tspan>
|
||||
</text>
|
||||
<path d="M64,13 C67.59125,13 70.5,10.083125 70.5,6.5 C70.5,2.90875 67.59125,0 64,0 C60.40875,0 57.5,2.90875 57.5,6.5 C57.5,10.083125 60.40875,13 64,13 L64,13 Z M64,16.25 C59.669375,16.25 51,18.419375 51,22.75 L51,26 L77,26 L77,22.75 C77,18.419375 68.330625,16.25 64,16.25 L64,16.25 Z" id="Shape"></path>
|
||||
</g>
|
||||
</g>
|
||||
</g>
|
||||
</svg>
|
After Width: | Height: | Size: 15 KiB |
After Width: | Height: | Size: 25 KiB |
|
@ -0,0 +1,180 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<svg width="740px" height="270px" viewBox="0 0 740 270" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" style="background: #FFFFFF;">
|
||||
<!-- Generator: Sketch 49 (51002) - http://www.bohemiancoding.com/sketch -->
|
||||
<title>interlock-overview-1</title>
|
||||
<desc>Created with Sketch.</desc>
|
||||
<defs>
|
||||
<circle id="path-1" cx="4" cy="4" r="4"></circle>
|
||||
<circle id="path-2" cx="4" cy="4" r="4"></circle>
|
||||
<circle id="path-3" cx="4" cy="4" r="4"></circle>
|
||||
<circle id="path-4" cx="4" cy="4" r="4"></circle>
|
||||
<circle id="path-5" cx="4" cy="4" r="4"></circle>
|
||||
</defs>
|
||||
<g id="interlock-overview-1" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
|
||||
<text id="Docker-swarm-managed" font-family="OpenSans-Semibold, Open Sans" font-size="10" font-weight="500" fill="#E0E4E7">
|
||||
<tspan x="91" y="258">Docker swarm managed with UCP</tspan>
|
||||
</text>
|
||||
<g id="nodes" transform="translate(108.000000, 117.000000)">
|
||||
<g id="workers" transform="translate(321.000000, 0.000000)">
|
||||
<g id="node-1" transform="translate(107.000000, 0.000000)">
|
||||
<text id="node-5" font-family="OpenSans-Semibold, Open Sans" font-size="10" font-weight="500" fill="#82949E">
|
||||
<tspan x="32.3129883" y="116">node-5</tspan>
|
||||
</text>
|
||||
<g id="node">
|
||||
<g id="node-label">
|
||||
<path d="M0,2.00295631 C0,0.896754086 0.897702336,0 1.99174577,0 L71,0 L71,10.6452381 C71,16.5244408 66.2312425,21.2904762 60.3513837,21.2904762 L0,21.2904762 L0,2.00295631 Z" id="Rectangle-127" fill="#445D6E"></path>
|
||||
<text id="worker-node" font-family="OpenSans, Open Sans" font-size="8" font-weight="normal" fill="#FFFFFF">
|
||||
<tspan x="6" y="14">worker node</tspan>
|
||||
</text>
|
||||
</g>
|
||||
</g>
|
||||
<g id="app" transform="translate(1.000000, 79.000000)">
|
||||
<rect id="Rectangle-138" fill="#439FD1" x="0" y="0" width="95" height="22" rx="2"></rect>
|
||||
<text id="UCP" font-family="OpenSans, Open Sans" font-size="10" font-weight="normal" fill="#FFFFFF">
|
||||
<tspan x="38.1953125" y="15">UCP </tspan>
|
||||
</text>
|
||||
</g>
|
||||
<g id="app-copy" transform="translate(1.000000, 56.000000)">
|
||||
<rect id="Rectangle-138" fill="#FFB463" x="0" y="0" width="95" height="22" rx="2"></rect>
|
||||
<text id="wordpress:8000" font-family="OpenSans, Open Sans" font-size="10" font-weight="normal" fill="#FFFFFF">
|
||||
<tspan x="10.5390625" y="15">wordpress:8000</tspan>
|
||||
</text>
|
||||
</g>
|
||||
<rect id="node-border" stroke="#445D6E" stroke-width="2" x="0" y="0" width="97" height="102" rx="2"></rect>
|
||||
</g>
|
||||
<g id="node-1-copy">
|
||||
<text id="node-4" font-family="OpenSans-Semibold, Open Sans" font-size="10" font-weight="500" fill="#82949E">
|
||||
<tspan x="32.3129883" y="116">node-4</tspan>
|
||||
</text>
|
||||
<g id="node">
|
||||
<g id="node-label">
|
||||
<path d="M0,2.00295631 C0,0.896754086 0.897702336,0 1.99174577,0 L71,0 L71,10.6452381 C71,16.5244408 66.2312425,21.2904762 60.3513837,21.2904762 L0,21.2904762 L0,2.00295631 Z" id="Rectangle-127" fill="#E0E4E7"></path>
|
||||
<text id="worker-node" font-family="OpenSans, Open Sans" font-size="8" font-weight="normal" fill="#FFFFFF">
|
||||
<tspan x="6" y="14">worker node</tspan>
|
||||
</text>
|
||||
</g>
|
||||
</g>
|
||||
<g id="app" transform="translate(1.000000, 79.000000)">
|
||||
<rect id="Rectangle-138" fill="#A1CFE8" x="0" y="0" width="95" height="22" rx="2"></rect>
|
||||
<text id="UCP" font-family="OpenSans, Open Sans" font-size="10" font-weight="normal" fill="#FFFFFF">
|
||||
<tspan x="38.1953125" y="15">UCP</tspan>
|
||||
</text>
|
||||
</g>
|
||||
<rect id="node-border" stroke="#E0E4E7" stroke-width="2" x="0" y="0" width="97" height="102" rx="2"></rect>
|
||||
</g>
|
||||
</g>
|
||||
<g id="managers">
|
||||
<g id="node-1" transform="translate(214.000000, 0.000000)">
|
||||
<text id="node-3" font-family="OpenSans-Semibold, Open Sans" font-size="10" font-weight="500" fill="#82949E">
|
||||
<tspan x="32.3129883" y="116">node-3</tspan>
|
||||
</text>
|
||||
<g id="node">
|
||||
<g id="node-label">
|
||||
<path d="M0,2.00295631 C0,0.896754086 0.897702336,0 1.99174577,0 L71,0 L71,10.6452381 C71,16.5244408 66.2312425,21.2904762 60.3513837,21.2904762 L0,21.2904762 L0,2.00295631 Z" id="Rectangle-127" fill="#E0E4E7"></path>
|
||||
<text id="manager-node" font-family="OpenSans, Open Sans" font-size="8" font-weight="normal" fill="#FFFFFF">
|
||||
<tspan x="6" y="14">manager node</tspan>
|
||||
</text>
|
||||
</g>
|
||||
</g>
|
||||
<g id="app" transform="translate(1.000000, 79.000000)">
|
||||
<rect id="Rectangle-138" fill="#A1CFE8" x="0" y="0" width="95" height="22" rx="2"></rect>
|
||||
<text id="UCP" font-family="OpenSans, Open Sans" font-size="10" font-weight="normal" fill="#FFFFFF">
|
||||
<tspan x="38.1953125" y="15">UCP</tspan>
|
||||
</text>
|
||||
</g>
|
||||
<rect id="node-border" stroke="#E0E4E7" stroke-width="2" x="0" y="0" width="97" height="102" rx="2"></rect>
|
||||
</g>
|
||||
<g id="node-1-copy-3" transform="translate(107.000000, 0.000000)">
|
||||
<text id="node-2" font-family="OpenSans-Semibold, Open Sans" font-size="10" font-weight="500" fill="#82949E">
|
||||
<tspan x="32.3129883" y="116">node-2</tspan>
|
||||
</text>
|
||||
<g id="node">
|
||||
<g id="node-label">
|
||||
<path d="M0,2.00295631 C0,0.896754086 0.897702336,0 1.99174577,0 L71,0 L71,10.6452381 C71,16.5244408 66.2312425,21.2904762 60.3513837,21.2904762 L0,21.2904762 L0,2.00295631 Z" id="Rectangle-127" fill="#E0E4E7"></path>
|
||||
<text id="manager-node" font-family="OpenSans, Open Sans" font-size="8" font-weight="normal" fill="#FFFFFF">
|
||||
<tspan x="6" y="14">manager node</tspan>
|
||||
</text>
|
||||
</g>
|
||||
</g>
|
||||
<g id="app" transform="translate(1.000000, 79.000000)">
|
||||
<rect id="Rectangle-138" fill="#A1CFE8" x="0" y="0" width="95" height="22" rx="2"></rect>
|
||||
<text id="UCP" font-family="OpenSans, Open Sans" font-size="10" font-weight="normal" fill="#FFFFFF">
|
||||
<tspan x="38.1953125" y="15">UCP</tspan>
|
||||
</text>
|
||||
</g>
|
||||
<rect id="node-border" stroke="#E0E4E7" stroke-width="2" x="0" y="0" width="97" height="102" rx="2"></rect>
|
||||
</g>
|
||||
<g id="node-1-copy-2">
|
||||
<text id="node-1" font-family="OpenSans-Semibold, Open Sans" font-size="10" font-weight="500" fill="#82949E">
|
||||
<tspan x="32.3129883" y="116">node-1</tspan>
|
||||
</text>
|
||||
<g id="node">
|
||||
<g id="node-label">
|
||||
<path d="M0,2.00295631 C0,0.896754086 0.897702336,0 1.99174577,0 L71,0 L71,10.6452381 C71,16.5244408 66.2312425,21.2904762 60.3513837,21.2904762 L0,21.2904762 L0,2.00295631 Z" id="Rectangle-127" fill="#E0E4E7"></path>
|
||||
<text id="manager-node" font-family="OpenSans, Open Sans" font-size="8" font-weight="normal" fill="#FFFFFF">
|
||||
<tspan x="6" y="14">manager node</tspan>
|
||||
</text>
|
||||
</g>
|
||||
</g>
|
||||
<g id="app" transform="translate(1.000000, 79.000000)">
|
||||
<rect id="Rectangle-138" fill="#A1CFE8" x="0" y="0" width="95" height="22" rx="2"></rect>
|
||||
<text id="UCP" font-family="OpenSans, Open Sans" font-size="10" font-weight="normal" fill="#FFFFFF">
|
||||
<tspan x="38.1953125" y="15">UCP</tspan>
|
||||
</text>
|
||||
</g>
|
||||
<rect id="node-border" stroke="#E0E4E7" stroke-width="2" x="0" y="0" width="97" height="102" rx="2"></rect>
|
||||
</g>
|
||||
</g>
|
||||
</g>
|
||||
<g id="load-balancer" transform="translate(107.000000, 72.000000)">
|
||||
<g id="lb">
|
||||
<rect id="Rectangle-138" fill="#445D6E" x="0" y="0" width="527" height="22" rx="2"></rect>
|
||||
<text id="swarm-routing-mesh" font-family="OpenSans, Open Sans" font-size="10" font-weight="normal" fill="#FFFFFF">
|
||||
<tspan x="214.819415" y="15">swarm routing mesh</tspan>
|
||||
</text>
|
||||
</g>
|
||||
<g id="arrow-copy-2" transform="translate(477.500000, 32.500000) scale(1, -1) rotate(-90.000000) translate(-477.500000, -32.500000) translate(465.500000, 28.500000)">
|
||||
<path d="M2,4 L24,4" id="Line" stroke="#445D6E" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"></path>
|
||||
<g id="Oval">
|
||||
<use fill="#445D6E" fill-rule="evenodd" xlink:href="#path-1"></use>
|
||||
<circle stroke="#F7F8F9" stroke-width="2" cx="4" cy="4" r="5"></circle>
|
||||
</g>
|
||||
</g>
|
||||
<g id="arrow-copy-3" transform="translate(370.500000, 32.500000) scale(1, -1) rotate(-90.000000) translate(-370.500000, -32.500000) translate(358.500000, 28.500000)">
|
||||
<path d="M2,4 L24,4" id="Line" stroke="#E0E4E7" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"></path>
|
||||
<g id="Oval">
|
||||
<use fill="#E0E4E7" fill-rule="evenodd" xlink:href="#path-2"></use>
|
||||
<circle stroke="#F7F8F9" stroke-width="2" cx="4" cy="4" r="5"></circle>
|
||||
</g>
|
||||
</g>
|
||||
<g id="arrow-copy-4" transform="translate(263.500000, 32.500000) scale(1, -1) rotate(-90.000000) translate(-263.500000, -32.500000) translate(251.500000, 28.500000)">
|
||||
<path d="M2,4 L24,4" id="Line" stroke="#E0E4E7" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"></path>
|
||||
<g id="Oval">
|
||||
<use fill="#E0E4E7" fill-rule="evenodd" xlink:href="#path-3"></use>
|
||||
<circle stroke="#F7F8F9" stroke-width="2" cx="4" cy="4" r="5"></circle>
|
||||
</g>
|
||||
</g>
|
||||
<g id="arrow-copy-5" transform="translate(156.500000, 32.500000) scale(1, -1) rotate(-90.000000) translate(-156.500000, -32.500000) translate(144.500000, 28.500000)">
|
||||
<path d="M2,4 L24,4" id="Line" stroke="#E0E4E7" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"></path>
|
||||
<g id="Oval">
|
||||
<use fill="#E0E4E7" fill-rule="evenodd" xlink:href="#path-4"></use>
|
||||
<circle stroke="#F7F8F9" stroke-width="2" cx="4" cy="4" r="5"></circle>
|
||||
</g>
|
||||
</g>
|
||||
<g id="arrow-copy-6" transform="translate(49.500000, 32.500000) scale(1, -1) rotate(-90.000000) translate(-49.500000, -32.500000) translate(37.500000, 28.500000)">
|
||||
<path d="M2,4 L24,4" id="Line" stroke="#E0E4E7" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"></path>
|
||||
<g id="Oval">
|
||||
<use fill="#E0E4E7" fill-rule="evenodd" xlink:href="#path-5"></use>
|
||||
<circle stroke="#F7F8F9" stroke-width="2" cx="4" cy="4" r="5"></circle>
|
||||
</g>
|
||||
</g>
|
||||
</g>
|
||||
<path d="M86,64.0091623 C86,62.8995326 86.9024627,62 88.0006502,62 L651.99935,62 C653.104278,62 654,62.9050608 654,64.0091623 L654,262.990838 C654,264.100467 653.097537,265 651.99935,265 L88.0006502,265 C86.8957216,265 86,264.094939 86,262.990838 L86,64.0091623 Z" id="group" stroke="#E0E4E7" stroke-width="2" stroke-dasharray="5,5,5,5"></path>
|
||||
<g id="user" transform="translate(324.000000, 7.000000)" fill="#82949E">
|
||||
<text id="http://node-5:8000" font-family="OpenSans-Semibold, Open Sans" font-size="10" font-weight="500">
|
||||
<tspan x="0.526855469" y="42">http://node-5:8000</tspan>
|
||||
</text>
|
||||
<path d="M46,13 C49.59125,13 52.5,10.083125 52.5,6.5 C52.5,2.90875 49.59125,0 46,0 C42.40875,0 39.5,2.90875 39.5,6.5 C39.5,10.083125 42.40875,13 46,13 L46,13 Z M46,16.25 C41.669375,16.25 33,18.419375 33,22.75 L33,26 L59,26 L59,22.75 C59,18.419375 50.330625,16.25 46,16.25 L46,16.25 Z" id="Shape"></path>
|
||||
</g>
|
||||
</g>
|
||||
</svg>
|
After Width: | Height: | Size: 13 KiB |
|
@ -0,0 +1,186 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<svg width="740px" height="300px" viewBox="0 0 740 300" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" style="background: #FFFFFF;">
|
||||
<!-- Generator: Sketch 49 (51002) - http://www.bohemiancoding.com/sketch -->
|
||||
<title>interlock-overview-2</title>
|
||||
<desc>Created with Sketch.</desc>
|
||||
<defs>
|
||||
<circle id="path-1" cx="4" cy="4" r="4"></circle>
|
||||
<circle id="path-2" cx="4" cy="4" r="4"></circle>
|
||||
<circle id="path-3" cx="4" cy="4" r="4"></circle>
|
||||
<circle id="path-4" cx="4" cy="4" r="4"></circle>
|
||||
<circle id="path-5" cx="4" cy="4" r="4"></circle>
|
||||
</defs>
|
||||
<g id="interlock-overview-2" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
|
||||
<text id="Docker-swarm-managed" font-family="OpenSans-Semibold, Open Sans" font-size="10" font-weight="500" fill="#E0E4E7">
|
||||
<tspan x="91" y="287">Docker swarm managed with UCP</tspan>
|
||||
</text>
|
||||
<g id="nodes" transform="translate(108.000000, 146.000000)">
|
||||
<g id="workers" transform="translate(321.000000, 0.000000)">
|
||||
<g id="node-1" transform="translate(107.000000, 0.000000)">
|
||||
<text id="node-5" font-family="OpenSans-Semibold, Open Sans" font-size="10" font-weight="500" fill="#82949E">
|
||||
<tspan x="32.3129883" y="116">node-5</tspan>
|
||||
</text>
|
||||
<g id="node">
|
||||
<g id="node-label">
|
||||
<path d="M0,2.00295631 C0,0.896754086 0.897702336,0 1.99174577,0 L71,0 L71,10.6452381 C71,16.5244408 66.2312425,21.2904762 60.3513837,21.2904762 L0,21.2904762 L0,2.00295631 Z" id="Rectangle-127" fill="#445D6E"></path>
|
||||
<text id="worker-node" font-family="OpenSans, Open Sans" font-size="8" font-weight="normal" fill="#FFFFFF">
|
||||
<tspan x="6" y="14">worker node</tspan>
|
||||
</text>
|
||||
</g>
|
||||
</g>
|
||||
<g id="app" transform="translate(1.000000, 79.000000)">
|
||||
<rect id="Rectangle-138" fill="#439FD1" x="0" y="0" width="95" height="22" rx="2"></rect>
|
||||
<text id="UCP" font-family="OpenSans, Open Sans" font-size="10" font-weight="normal" fill="#FFFFFF">
|
||||
<tspan x="38.1953125" y="15">UCP </tspan>
|
||||
</text>
|
||||
</g>
|
||||
<g id="app-copy" transform="translate(1.000000, 56.000000)">
|
||||
<rect id="Rectangle-138" fill="#FFB463" x="0" y="0" width="95" height="22" rx="2"></rect>
|
||||
<text id="wordpress:8000" font-family="OpenSans, Open Sans" font-size="10" font-weight="normal" fill="#FFFFFF">
|
||||
<tspan x="10.5390625" y="15">wordpress:8000</tspan>
|
||||
</text>
|
||||
</g>
|
||||
<rect id="node-border" stroke="#445D6E" stroke-width="2" x="0" y="0" width="97" height="102" rx="2"></rect>
|
||||
</g>
|
||||
<g id="node-1-copy">
|
||||
<text id="node-4" font-family="OpenSans-Semibold, Open Sans" font-size="10" font-weight="500" fill="#82949E">
|
||||
<tspan x="32.3129883" y="116">node-4</tspan>
|
||||
</text>
|
||||
<g id="node">
|
||||
<g id="node-label">
|
||||
<path d="M0,2.00295631 C0,0.896754086 0.897702336,0 1.99174577,0 L71,0 L71,10.6452381 C71,16.5244408 66.2312425,21.2904762 60.3513837,21.2904762 L0,21.2904762 L0,2.00295631 Z" id="Rectangle-127" fill="#E0E4E7"></path>
|
||||
<text id="worker-node" font-family="OpenSans, Open Sans" font-size="8" font-weight="normal" fill="#FFFFFF">
|
||||
<tspan x="6" y="14">worker node</tspan>
|
||||
</text>
|
||||
</g>
|
||||
</g>
|
||||
<g id="app" transform="translate(1.000000, 79.000000)">
|
||||
<rect id="Rectangle-138" fill="#A1CFE8" x="0" y="0" width="95" height="22" rx="2"></rect>
|
||||
<text id="UCP" font-family="OpenSans, Open Sans" font-size="10" font-weight="normal" fill="#FFFFFF">
|
||||
<tspan x="38.1953125" y="15">UCP</tspan>
|
||||
</text>
|
||||
</g>
|
||||
<rect id="node-border" stroke="#E0E4E7" stroke-width="2" x="0" y="0" width="97" height="102" rx="2"></rect>
|
||||
</g>
|
||||
</g>
|
||||
<g id="managers">
|
||||
<g id="node-1" transform="translate(214.000000, 0.000000)">
|
||||
<text id="node-3" font-family="OpenSans-Semibold, Open Sans" font-size="10" font-weight="500" fill="#82949E">
|
||||
<tspan x="32.3129883" y="116">node-3</tspan>
|
||||
</text>
|
||||
<g id="node">
|
||||
<g id="node-label">
|
||||
<path d="M0,2.00295631 C0,0.896754086 0.897702336,0 1.99174577,0 L71,0 L71,10.6452381 C71,16.5244408 66.2312425,21.2904762 60.3513837,21.2904762 L0,21.2904762 L0,2.00295631 Z" id="Rectangle-127" fill="#E0E4E7"></path>
|
||||
<text id="manager-node" font-family="OpenSans, Open Sans" font-size="8" font-weight="normal" fill="#FFFFFF">
|
||||
<tspan x="6" y="14">manager node</tspan>
|
||||
</text>
|
||||
</g>
|
||||
</g>
|
||||
<g id="app" transform="translate(1.000000, 79.000000)">
|
||||
<rect id="Rectangle-138" fill="#A1CFE8" x="0" y="0" width="95" height="22" rx="2"></rect>
|
||||
<text id="UCP" font-family="OpenSans, Open Sans" font-size="10" font-weight="normal" fill="#FFFFFF">
|
||||
<tspan x="38.1953125" y="15">UCP</tspan>
|
||||
</text>
|
||||
</g>
|
||||
<rect id="node-border" stroke="#E0E4E7" stroke-width="2" x="0" y="0" width="97" height="102" rx="2"></rect>
|
||||
</g>
|
||||
<g id="node-1-copy-3" transform="translate(107.000000, 0.000000)">
|
||||
<text id="node-2" font-family="OpenSans-Semibold, Open Sans" font-size="10" font-weight="500" fill="#82949E">
|
||||
<tspan x="32.3129883" y="116">node-2</tspan>
|
||||
</text>
|
||||
<g id="node">
|
||||
<g id="node-label">
|
||||
<path d="M0,2.00295631 C0,0.896754086 0.897702336,0 1.99174577,0 L71,0 L71,10.6452381 C71,16.5244408 66.2312425,21.2904762 60.3513837,21.2904762 L0,21.2904762 L0,2.00295631 Z" id="Rectangle-127" fill="#E0E4E7"></path>
|
||||
<text id="manager-node" font-family="OpenSans, Open Sans" font-size="8" font-weight="normal" fill="#FFFFFF">
|
||||
<tspan x="6" y="14">manager node</tspan>
|
||||
</text>
|
||||
</g>
|
||||
</g>
|
||||
<g id="app" transform="translate(1.000000, 79.000000)">
|
||||
<rect id="Rectangle-138" fill="#A1CFE8" x="0" y="0" width="95" height="22" rx="2"></rect>
|
||||
<text id="UCP" font-family="OpenSans, Open Sans" font-size="10" font-weight="normal" fill="#FFFFFF">
|
||||
<tspan x="38.1953125" y="15">UCP</tspan>
|
||||
</text>
|
||||
</g>
|
||||
<rect id="node-border" stroke="#E0E4E7" stroke-width="2" x="0" y="0" width="97" height="102" rx="2"></rect>
|
||||
</g>
|
||||
<g id="node-1-copy-2">
|
||||
<text id="node-1" font-family="OpenSans-Semibold, Open Sans" font-size="10" font-weight="500" fill="#82949E">
|
||||
<tspan x="32.3129883" y="116">node-1</tspan>
|
||||
</text>
|
||||
<g id="node">
|
||||
<g id="node-label">
|
||||
<path d="M0,2.00295631 C0,0.896754086 0.897702336,0 1.99174577,0 L71,0 L71,10.6452381 C71,16.5244408 66.2312425,21.2904762 60.3513837,21.2904762 L0,21.2904762 L0,2.00295631 Z" id="Rectangle-127" fill="#E0E4E7"></path>
|
||||
<text id="manager-node" font-family="OpenSans, Open Sans" font-size="8" font-weight="normal" fill="#FFFFFF">
|
||||
<tspan x="6" y="14">manager node</tspan>
|
||||
</text>
|
||||
</g>
|
||||
</g>
|
||||
<g id="app" transform="translate(1.000000, 79.000000)">
|
||||
<rect id="Rectangle-138" fill="#A1CFE8" x="0" y="0" width="95" height="22" rx="2"></rect>
|
||||
<text id="UCP" font-family="OpenSans, Open Sans" font-size="10" font-weight="normal" fill="#FFFFFF">
|
||||
<tspan x="38.1953125" y="15">UCP</tspan>
|
||||
</text>
|
||||
</g>
|
||||
<rect id="node-border" stroke="#E0E4E7" stroke-width="2" x="0" y="0" width="97" height="102" rx="2"></rect>
|
||||
</g>
|
||||
</g>
|
||||
</g>
|
||||
<g id="load-balancer" transform="translate(107.000000, 75.000000)">
|
||||
<g id="L4" transform="translate(0.000000, 26.000000)">
|
||||
<rect id="Rectangle-138" fill="#445D6E" x="0" y="0" width="527" height="22" rx="2"></rect>
|
||||
<text id="swarm-routing-mesh" font-family="OpenSans, Open Sans" font-size="10" font-weight="normal" fill="#FFFFFF">
|
||||
<tspan x="214.819415" y="15">swarm routing mesh</tspan>
|
||||
</text>
|
||||
</g>
|
||||
<g id="L7">
|
||||
<rect id="Rectangle-138" fill="#445D6E" x="0" y="0" width="527" height="22" rx="2"></rect>
|
||||
<text id="layer-7-routing" font-family="OpenSans, Open Sans" font-size="10" font-weight="normal" fill="#FFFFFF">
|
||||
<tspan x="229.206622" y="15">layer 7 routing</tspan>
|
||||
</text>
|
||||
</g>
|
||||
<g id="arrow-copy-2" transform="translate(477.500000, 58.500000) scale(1, -1) rotate(-90.000000) translate(-477.500000, -58.500000) translate(465.500000, 54.500000)">
|
||||
<path d="M2,4 L24,4" id="Line" stroke="#445D6E" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"></path>
|
||||
<g id="Oval">
|
||||
<use fill="#445D6E" fill-rule="evenodd" xlink:href="#path-1"></use>
|
||||
<circle stroke="#F7F8F9" stroke-width="2" cx="4" cy="4" r="5"></circle>
|
||||
</g>
|
||||
</g>
|
||||
<g id="arrow-copy-3" transform="translate(370.500000, 58.500000) scale(1, -1) rotate(-90.000000) translate(-370.500000, -58.500000) translate(358.500000, 54.500000)">
|
||||
<path d="M2,4 L24,4" id="Line" stroke="#E0E4E7" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"></path>
|
||||
<g id="Oval">
|
||||
<use fill="#E0E4E7" fill-rule="evenodd" xlink:href="#path-2"></use>
|
||||
<circle stroke="#F7F8F9" stroke-width="2" cx="4" cy="4" r="5"></circle>
|
||||
</g>
|
||||
</g>
|
||||
<g id="arrow-copy-4" transform="translate(263.500000, 58.500000) scale(1, -1) rotate(-90.000000) translate(-263.500000, -58.500000) translate(251.500000, 54.500000)">
|
||||
<path d="M2,4 L24,4" id="Line" stroke="#E0E4E7" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"></path>
|
||||
<g id="Oval">
|
||||
<use fill="#E0E4E7" fill-rule="evenodd" xlink:href="#path-3"></use>
|
||||
<circle stroke="#F7F8F9" stroke-width="2" cx="4" cy="4" r="5"></circle>
|
||||
</g>
|
||||
</g>
|
||||
<g id="arrow-copy-5" transform="translate(156.500000, 58.500000) scale(1, -1) rotate(-90.000000) translate(-156.500000, -58.500000) translate(144.500000, 54.500000)">
|
||||
<path d="M2,4 L24,4" id="Line" stroke="#E0E4E7" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"></path>
|
||||
<g id="Oval">
|
||||
<use fill="#E0E4E7" fill-rule="evenodd" xlink:href="#path-4"></use>
|
||||
<circle stroke="#F7F8F9" stroke-width="2" cx="4" cy="4" r="5"></circle>
|
||||
</g>
|
||||
</g>
|
||||
<g id="arrow-copy-6" transform="translate(49.500000, 58.500000) scale(1, -1) rotate(-90.000000) translate(-49.500000, -58.500000) translate(37.500000, 54.500000)">
|
||||
<path d="M2,4 L24,4" id="Line" stroke="#E0E4E7" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"></path>
|
||||
<g id="Oval">
|
||||
<use fill="#E0E4E7" fill-rule="evenodd" xlink:href="#path-5"></use>
|
||||
<circle stroke="#F7F8F9" stroke-width="2" cx="4" cy="4" r="5"></circle>
|
||||
</g>
|
||||
</g>
|
||||
</g>
|
||||
<path d="M86,64.9970083 C86,63.8940911 86.9024627,63 88.0006502,63 L651.99935,63 C653.104278,63 654,63.8947956 654,64.9970083 L654,292.002992 C654,293.105909 653.097537,294 651.99935,294 L88.0006502,294 C86.8957216,294 86,293.105204 86,292.002992 L86,64.9970083 Z" id="group" stroke="#E0E4E7" stroke-width="2" stroke-dasharray="5,5,5,5"></path>
|
||||
<g id="user" transform="translate(297.000000, 6.000000)" fill="#82949E">
|
||||
<text id="http://wordpress.exa" font-family="OpenSans-Semibold, Open Sans" font-size="10" font-weight="500">
|
||||
<tspan x="0.129394531" y="42">http://wordpress.example.org</tspan>
|
||||
</text>
|
||||
<path d="M73,13 C76.59125,13 79.5,10.083125 79.5,6.5 C79.5,2.90875 76.59125,0 73,0 C69.40875,0 66.5,2.90875 66.5,6.5 C66.5,10.083125 69.40875,13 73,13 L73,13 Z M73,16.25 C68.669375,16.25 60,18.419375 60,22.75 L60,26 L86,26 L86,22.75 C86,18.419375 77.330625,16.25 73,16.25 L73,16.25 Z" id="Shape"></path>
|
||||
</g>
|
||||
</g>
|
||||
</svg>
|
After Width: | Height: | Size: 14 KiB |
After Width: | Height: | Size: 22 KiB |
After Width: | Height: | Size: 188 KiB |
After Width: | Height: | Size: 24 KiB |
After Width: | Height: | Size: 117 KiB |
After Width: | Height: | Size: 82 KiB |
After Width: | Height: | Size: 88 KiB |
After Width: | Height: | Size: 67 KiB |
After Width: | Height: | Size: 101 KiB |
After Width: | Height: | Size: 61 KiB |
After Width: | Height: | Size: 46 KiB |
After Width: | Height: | Size: 48 KiB |
After Width: | Height: | Size: 85 KiB |
After Width: | Height: | Size: 88 KiB |
After Width: | Height: | Size: 74 KiB |
After Width: | Height: | Size: 109 KiB |
After Width: | Height: | Size: 62 KiB |
After Width: | Height: | Size: 56 KiB |
After Width: | Height: | Size: 63 KiB |
After Width: | Height: | Size: 62 KiB |
After Width: | Height: | Size: 162 KiB |
After Width: | Height: | Size: 140 KiB |
After Width: | Height: | Size: 38 KiB |
After Width: | Height: | Size: 59 KiB |
After Width: | Height: | Size: 31 KiB |
After Width: | Height: | Size: 50 KiB |
After Width: | Height: | Size: 53 KiB |
After Width: | Height: | Size: 80 KiB |
After Width: | Height: | Size: 79 KiB |
After Width: | Height: | Size: 89 KiB |
After Width: | Height: | Size: 103 KiB |
After Width: | Height: | Size: 125 KiB |
After Width: | Height: | Size: 112 KiB |