3.5 KiB
docker context
A context is a way of easily referring to a particular place that you want to run containers. You can set up a context and refer to it by name, and easily switch between different contexts, so you can use containers in different places.
The most important commands for working with a context are
docker context create
will create a new context from options specified on the command linedocker context rm
removes a contextdocker context use
will set the context to use by default; you can also usedocker --context ...
or via the environment withDOCKER_CONTEXT=... docker ...
docker context show
shows the context name that you are currently using.docker context ls
lists the available contextsdocker context login
some types of context require credentials that may expire, such as OAuth credentials. If the credentials have expired you will need to usedocker context login
to refresh them.
In addition you can use
docker context inspect
to see the full details of a contextdocker context import
to import a context NOTE may make changes here, why can't create create from a file etc?docker context export
to output a context NOTE may make changes here
docker context create
To create a new context from options specified on the command line use docker context create
. The exact information you need
to create a context depends on the particular backend.
NOTE for compatibility we may need to support existing syntax as well, but this should be deprecated. This may be a case where there are few users so can just change it.
Usage:
docker context create _name_ _type_ [options]
docker context create _name_ url
NOTE we could also use docker context create _type_ _name_
might be more consistent, makes the url form less clear.
docker context create "myserver" docker --description "some description" --host=tcp://myserver:2376
In addition there is a URL form for contexts which is a little harder to read but lets you share contexts more easily.
docker context create "myserver" docker://myserver:2376?type=org.moby.moby
NOTE: really don't think the URL form will work for the current mutual TLS auth, without extremely long URLs. Not important.
docker context use
Once you have created a context with docker context create
, then you have given it a name. You can switch to the context with
docker context use _name_
. This will be used for all Docker commands from then on, unless you specify the context explicitly
with docker --context _name_ ...
or use the DOCKER_CONTEXT
environment variable.
docker context show
To see what the current context is, use docker context show
.
NOTE: this is new, its kind of weird there is no way to easily display name of current context without parsing output of
docker context inspect
, eg for use in shell prompt. We could also use plain docker context
but this is not a pattern we use
much elsewhere so TBD.
docker context ls
This lists all the currently configured contexts. Use docker context ls -q
or docker context ls --quiet
to just list the names
not the descriptions.
docker context login
Some contexts have a login that will expire, for example if they use OAuth authentication. In this case, trying to use a context will
give an error that you are not authenticated. Use docker context login
to log in to the current context, and then follow the prompts.
TODO context sharing
docker context pull
? to get shared context?
`docker context send justincormack'? to send to justin via Hub.