我为此付出的努力已经远远超出了我应该做的更长的时间,并且我确信我必须以艰难的方式做些事情。
基本上我想做的就是在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"
但是它什么也不返回,我也不知道它是否做了什么。我在这里想念什么?
答案 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:定义命令退出时的行为。