1

我在这方面挣扎的时间比我应该做的要长得多,我相信我一定是在艰难地做某事。

基本上我想做的就是在 azure 中运行一个 docker 镜像(eos-dev 区块链镜像)。我已经完成并创建了容器注册表,启用了管理控制并使用以下方法创建了容器:

az container create --resource-group docker --name eosnode --image xxx.azurecr.io/eos-dev --cpu 1 --memory 14 --ip-address public --ports 80 7777 5555 --registry-password "zzz"

现在,如果这是一个本地 docker 实例 id 就可以运行:

docker network create testnetwork

我会得到这个:

77af2f92d66895bbf71490b33d775a116d6d8d7be0cbd0a2b3d18ce7336cf611

现在,我正在尝试在远程 azure 容器上执行此操作,如下所示:

az container exec -g docker --name eosnode --container-name eosnode --exec-command "docker network create testnetwork"

但它什么也没返回,我不知道它是否做了任何事情。我在这里想念什么?

4

2 回答 2

2

正如您所说,您只想在 Azure 中运行一个 docker 映像。我看到您使用以下命令创建容器实例:

az container create --resource-group docker --name eosnode --image xxx.azurecr.io/eos-dev --cpu 1 --memory 14 --ip-address public --ports 80 7777 5555 --registry-password "zzz"

对于此步骤,将在 Azure 中创建容器实例。并且可以通过命令获取实例信息,az container show或者通过命令获取实例的日志az container log

此外,您可以使用如下命令在容器实例中执行命令:

az container exec -g resrouceGroup -n instanceName "bash command"

但是如果你想docker network create testnetwork在容器实例中运行命令,你应该在你创建容器实例的镜像中安装 docker。

于 2018-10-03T07:55:19.257 回答
0
docker network create

在机器/主机上创建一个 docker 网络,返回的哈希码是网络的 id。所有 'docker' 命令都假设在主机上而不是在容器中运行。在 Azure 容器实例中运行容器不需要 Docker 网络。

如果容器映像需要命令启动,通常可以在其文档/示例中找到该命令:

docker run <image> <command>

在 azure 容器实例中运行容器的等效方法是:

az container create -g <resourceGroup> -n <name> --image <image> --command-line <command> --restart-policy <Always|OnFailure|Never>
  • --command-line:指定在容器中运行的命令

  • --restart-policy:定义命令退出时的行为。

于 2018-10-12T05:52:58.303 回答