我的主要目标是在保持数据的同时快速轻松地启动和运行映像。我认为ACI是最好的方法。假设这是真的......
[Edit2]似乎可能存在一个更基本的问题是无法像在docker中那样指定主机名。我将在一个单独的主题中提出这个问题。我能够附加存储空间。
[原帖] 我想使用ACI来设置Docker Hub上的图像。我能够按照简单的教程here进行操作,但我需要附加存储空间。
具体来说,这是我正在使用的图片:https://hub.docker.com/r/sverhoeven/cartodb/
这些是如何设置持久数据的说明,但我认为它们不会直接转换为ACI。这取自"持久数据"该docker hub页面的一部分
要保留PostgreSQL数据,PostGreSQL数据目录(/ var / lib / postgresql)必须保留在Cartodb Docker容器之外。...
制作一个临时容器
docker create --name cartodb_pgdata sverhoeven/cartodb
将Postgresql数据目录(cartodb_pgdata)保存到本地目录。 **我们如何使用ACI做到这一点?
docker cp cartodb_pgdata:/var/lib/postgresql $PWD/cartodb_pgdata docker rm -f cartodb_pgdata
将cartodb_pgdata的所有权设置为文件系统上的(uid = 105)用户。 **我们如何使用ACI做到这一点?
sudo chown -R 105.105 $PWD/cartodb_pgdata
在此之后,CartoDB容器将有一个在重新启动后保持填充的数据库。可以使用
启动CartoDB容器docker run -d -p 80:80 -h cartodb.example.com -v $PWD/cartodb_pgdata:/var/lib/PostgreSQL sverhoeven/cartodb
有很多问题我无法找到解决方案,例如:
答案 0 :(得分:1)
您应该使用Azure文件共享,因为emptyDir不是持久存储。基本上您需要的是在容器组中添加文件共享卷并将其挂载到/ var / lib / PostgreSQL。默认情况下,文件共享卷将以777权限挂载。
由于您在创建容器时已经传递了卷信息,例如progressLayout.setVisibility(View.VISIBLE);
通过CLI转换为基础az container create
等效项。没有必要指定docker命令。
如何挂载文件共享: https://docs.microsoft.com/en-us/azure/container-instances/container-instances-volume-azure-files