如何制作Azure VM&配置容器以通过docker CLI / quickstart终端使用Azure文件存储?

时间:2016-06-21 10:44:45

标签: azure docker docker-machine

我使用最新的Docker Toolbox,我想在Azure上启动连接到Azure文件存储的docker容器。应该从docker快速启动终端运行什么来实现这个目标?

2 个答案:

答案 0 :(得分:1)

最简单的方法是在Azure上预安装一个带有Docker的Ubuntu VM:

https://azure.microsoft.com/en-us/blog/introducing-docker-in-microsoft-azure-marketplace/

然后按照Azure文件系统Docker Volume Driver安装说明进行操作:

https://github.com/Azure/azurefile-dockervolumedriver/blob/master/contrib/init/systemd/README.md

一旦您可以在该VM上成功创建卷,您就可以使它们成为共享卷或Data Volume Containers以在Docker容器之间共享它们:

https://docs.docker.com/engine/tutorials/dockervolumes/

答案 1 :(得分:1)

  

有关更一般的说明,请使用@ rbj325的答案

创建docker-machine

首先,我们需要一个可以使用的天蓝色VM。我们可以使用docker-machine cli来创建它。这组指令将使用ubuntu 16.04LTS创建它,以简化(ish)安装步骤。

docker-machine create --driver azure --azure-subscription-id XXXX \
--azure-location westeurope --azure-resource-group XXX \ 
--azure-image canonical:UbuntuServer:16.04.0-LTS:latest XXXXXX

这将在Azure上设置我们需要的一切。

安装azure文件存储docker插件

(根据我对SSH的了解)然后我们需要SSH到docker-machine才能安装插件。

docker-machine XXXXXX ssh

进入后,可以采取以下步骤来安装插件:

sudo -s
wget -qO /usr/bin/azurefile-dockervolumedriver https://github.com/Azure/azurefile-dockervolumedriver/releases/download/[VERSION]/azurefile-dockervolumedriver
chmod +x /usr/bin/azurefile-dockervolumedriver
wget -qO /etc/systemd/system/azurefile-dockervolumedriver.service https://raw.githubusercontent.com/Azure/azurefile-dockervolumedriver/master/contrib/init/systemd/azurefile-dockervolumedriver.service
cp [myconfigfile] /etc/default/
systemctl daemon-reload
systemctl enable azurefile-dockervolumedriver
systemctl start azurefile-dockervolumedriver
systemctl status azurefile-dockervolumedriver

请注意,此处需要注意事项:

  1. 来自github的驱动程序的最新版本号
  2. 包含一些azure存储凭据的文件
  3. 对于我的安装过程,我制作了a script我可以使用的,并将我的配置文件放在一个可以在安装时检索的安全存储中。请注意它的驱动程序版本为0.2.1。

    完成此操作后,退出ssh连接。

    创建卷

    您现在应该能够创建泊坞窗卷

    docker volume create --name filestore -d azurefile -o share=filestore 
    

    创建泊坞窗容器

    您现在可以将此卷与docker containers一起使用

    docker run -it --name=example -v filestore:/filestore ubuntu /bin/bash