Docker context未更改(使用Docker context)

lnlaulya  于 2023-10-16  发布在  Docker
关注(0)|答案(3)|浏览(112)

我使用命令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上下文?

wz1wpwve

wz1wpwve1#

如果您设置了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_HOSTDOCKER_CONTEXT)覆盖,或者在命令行上使用--context--host标志。
(bold由我添加)

fjnneemd

fjnneemd2#

我也遇到了env变量的问题: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"
}
bvuwiixz

bvuwiixz3#

将docker context设置为default对我来说很有效。

docker context use default

相关问题