Docker 上下文未更改(docker 上下文使用)

问题描述 投票:0回答:3

我使用命令

docker context use
来设置活动的 Docker 上下文:

> docker context use aws-context
aws-context

但是,由于某种原因,活动的 Docker 上下文不会改变。

当我随后输入

docker context show
时,激活的上下文仍然是默认上下文:

> docker context show
default

当我列出现有上下文时,星号仍然位于默认上下文后面:

> docker context ls
NAME                TYPE                DESCRIPTION                              DOCKER ENDPOINT             
aws-context         ecs                 (eu-west-1)                                                                  
default *           moby                Current DOCKER_HOST based configuration  tcp://192.168.99.100:2376          

如何更改 Docker 上下文?

amazon-web-services docker amazon-ecs
3个回答
15
投票

如果您设置了

DOCKER_HOST
环境变量,它将始终优先于较新的
docker context use
工作流程。

在 shell 中输入

env | grep DOCKER
查看是否设置了任何特定于 docker 的变量。通过输入
unset DOCKER_HOST
取消设置。其他变量,例如
DOCKER_CONTEXT
也可能会产生妨碍。

一旦该变量消失,

docker context use
命令应该可以正常工作。

这在文档中注明了这里

查看上下文的最简单方法是查看默认上下文。

$ docker context ls
NAME          DESCRIPTION     DOCKER ENDPOINT              KUBERNETES ENDPOINT      ORCHESTRATOR
default *     Current...      unix:///var/run/docker.sock                           swarm

这个 显示称为“默认”的单个上下文。它被配置为与 通过本地

/var/run/docker.sock
Unix 套接字进行 Swarm 集群。它 没有配置 Kubernetes 端点。

NAME
列中的星号表示这是活动的 语境。这意味着所有
docker
命令都将针对 “默认”上下文 除非被环境变量覆盖,例如
DOCKER_HOST
DOCKER_CONTEXT
,或者在命令行上使用
--context
--host
标志。

(粗体是我加上的)


0
投票

我也遇到了环境变量的问题:

DOCKER_CONTEXT

确保您设置正确...

而不是:

pb@L1:~$ DOCKER_CONTEXT=example
pb@L1:~$ echo $DOCKER_CONTEXT
example

用途:

pb@L1:~$ export DOCKER_CONTEXT=example
pb@L1:~$ echo $DOCKER_CONTEXT 
example

或者(如果您在 VSCode 中使用 docker 扩展,请修改 settings.json)
ctrl+shift+p -> 打开工作区设置(JSON)

{
    "docker.context":"remote_workstation"
}

0
投票

将 docker 上下文设置为

default
对我有用。

docker context use default
© www.soinside.com 2019 - 2024. All rights reserved.