gpt4 book ai didi

docker - 重置Docker Machine以在我的本地计算机上运行Docker命令

转载 作者:行者123 更新时间:2023-12-04 17:16:23 25 4
gpt4 key购买 nike

我现在正在学习docker,遇到了令人困惑的事情。我开始使用docker-machine,它非常适合创建本地VM并在Digital Ocean上旋转服务器。但是,我现在想返回一种状态,在该状态下,docker命令会在本地计算机上执行,以便我可以添加功能,构建并推送docker存储库。

我知道如何使用docker-machine env更改为其他计算机,但是如何回到没有 Activity 计算机的状态?如果我重新启动Docker,则会发生这种情况,但我不想一直都在重新启动docker。似乎应该为此命令?

只是为了澄清,我没有尝试连接到default机器。我希望Docker命令像在我设置Docker Machine之前一样在我的计算机上执行。

最佳答案

进行eval $(docker-machine env DOCKER_MACHINE_NAME)只会设置一堆环境变量,即:

  • DOCKER_TLS_VERIFY =“1”
  • DOCKER_HOST =“tcp://X.Y.Z.W:2376”
  • DOCKER_CERT_PATH =“/machine/machines/DOCKER_MACHINE_NAME”
  • DOCKER_MACHINE_NAME =“DOCKER_MACHINE_NAME”

  • 然后使用这些设置运行“docker”时,它将识别它们并连接到远程计算机。

    因此,您需要做的是,取消设置它们,或者仅退出当前的Shell session 。

    使用一个新的shell session

    您可能采取的最简单的方法是在调用 docker-machine env之前启动一个新的shell,以便仅在其中设置这些变量。

    #start a new shell
    bash

    #configure docker to connect to the remote machine
    eval $(docker-machine env DOCKER_MACHINE_NAME)

    #run some commands against the remote docker machine
    docker ps
    ...

    #once, done, return to the parent shell
    exit

    #run some commands against your local docker daemon
    docker ps
    ...

    重置DOCKER变量(在您当前的shell中)

    另外,您可以重置它们,而无需退出当前的shell,如下所示:

    unset `env|grep DOCKER|cut -d\= -f1`

    或使用“--unset”选项设置为“env”(因为@thaJeztah已具有 pointed out)

    eval "$(docker-machine env -u)"

    这也记录在docker-machine manual中。

    使用包装器脚本

    如果您只需要偶尔对远程计算机运行docker命令,则可以使用一个简单的包装器脚本,如下所示:

    #!/bin/bash
    DOCKER_MACHINE=$1
    shift

    if [ -z "$DOCKER_MACHINE" ]
    then
    echo "Usage: rdocker DOCKER_MACHINE COMMAND"
    exit 1
    fi

    eval $(docker-machine env "$DOCKER_MACHINE")
    docker "${@}"

    然后可以这样调用:

    ./rdocker my_machine ps

    以获取在my_machine上运行的容器的列表(或执行任何其他Docker命令),而不会干扰您当前的shell session 。

    旁注

    要检查当前 Activity 的DOCKER_变量集,只需执行以下操作:

    env|grep DOCKER

    关于docker - 重置Docker Machine以在我的本地计算机上运行Docker命令,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41685603/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com