在Azure容器中运行docker命令

时间:2018-10-03 07:34:11

标签: azure docker azure-container-instances eos

我为此付出的努力已经远远超出了我应该做的更长的时间,并且我确信我必须以艰难的方式做些事情。

基本上我想做的就是在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"

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

2 个答案:

答案 0 :(得分: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安装在用于创建容器实例的映像中。

答案 1 :(得分: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>
  • -命令行:指定要在容器中运行的命令

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