首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用cloud-Init在Azure上安装docker和docker-compose

使用cloud-Init在Azure上安装docker和docker-compose
EN

Stack Overflow用户
提问于 2019-02-28 09:05:03
回答 3查看 2.3K关注 0票数 4

我想用Docker和Docker引导我的Azure VM -compose using cloud-init。到目前为止,我尝试了下面这样的方法。

代码语言:javascript
复制
#cloud-config

package_update: true
package_upgrade: true

groups:
  - docker: [default]

runcmd:
  - [ sh, -c, "curl -sSL https://get.docker.com/ | sh" ]
  - [ sh, -c, "sudo curl -L "https://github.com/docker/compose/releases/download/$(git ls-remote https://github.com/docker/compose | grep refs/tags | grep -oP "[0-9]+\.[0-9][0-9]+\.[0-9]+$" | tail -n 1)/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose" ]
  - [ sh, -c, "sudo chmod +x /usr/local/bin/docker-compose" ]

但它没有安装docker/ docker-compose并出现以下错误

代码语言:javascript
复制
cloud-init[958]: 2019-02-28 00:51:02,447 - util.py[WARNING]: Failed loading yaml blob. Invalid format at line 11 column 32: "while scanning a plain scalar
[  333.241244] cloud-init[958]:   in "<unicode string>", line 11, column 32:
[  333.245521] cloud-init[958]:         - [ sh, -c, "sudo curl -L "https://github.com/docker/compos ...
2019/02/28 00:51:04.015216 INFO Daemon Wire protocol version:2012-11-30
[  333.245619] cloud-init[958]:                                    ^
[  333.259509] cloud-init[958]: found unexpected ':'
[  333.259584] 2019/02/28 00:51:04.019282 INFO Daemon Server preferred version:2015-04-05
cloud-init[958]:   in "<unicode string>", line 11, column 37:
[  333.474295] cloud-init[958]:         - [ sh, -c, "sudo curl -L "https://github.com/docker/compose/rel ...
[  333.514672] cloud-init[958]:                                         ^
[  333.554215] cloud-init[958]: Please check http://pyyaml.org/wiki/YAMLColonInFlowContext for details."
[  333.593764] cloud-init[958]: 2019/02/28 00:51:04.361760 INFO Daemon Waiting for ssh host key be generated at /etc/ssh/ssh_host_rsa_key.pub [1800 attempts remaining, sleeping 1s]
2019-02-28 00:51:02,470 - util.py[WARNING]: Failed loading yaml blob. Invalid format at line 11 column 32: "while scanning a plain scalar
[  333.705350] cloud-init[958]:   in "<unicode string>", line 11, column 32:
[  333.731074] cloud-init[958]:         - [ sh, -c, "sudo curl -L "https://github.com/docker/compos ...
[  333.769118] cloud-init[958]:                                    ^
[  333.789992] cloud-init[958]: found unexpected ':'
[  333.808855] cloud-init[958]:   in "<unicode string>", line 11, column 37:
[  333.831502] cloud-init[958]:         - [ sh, -c, "sudo curl -L "https://github.com/docker/compose/rel ...
[  333.863028] cloud-init[958]:                                         ^
[  333.885648] cloud-init[958]: Please check http://pyyaml.org/wiki/YAMLColonInFlowContext for details."
[  333.915174] cloud-init[958]: 2019-02-28 00:51:02,470 - util.py[WARNING]: Failed at merging in cloud config part from part-001

除此之外,我怀疑如何将Azure自动创建的默认用户(由UI提供)添加到docker组。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2019-02-28 14:48:24

在花了一些时间之后,我自己解决了这个问题。

代码语言:javascript
复制
#cloud-config

package_update: true

# Setup swap memory
disk_setup:
    ephemeral0:
        table_type: mbr
        layout: [66, [33, 82]]
        overwrite: True
fs_setup:
    - device: ephemeral0.1
      filesystem: ext4
    - device: ephemeral0.2
      filesystem: swap
mounts:
    - ["ephemeral0.1", "/mnt"]
    - ["ephemeral0.2", "none", "swap", "sw", "0", "0"]

# Enable Docker's swap limit support
bootcmd:
    - [ sh, -c, 'sudo echo GRUB_CMDLINE_LINUX="cgroup_enable=memory swapaccount=1" >> /etc/default/grub' ]
    - [ sh, -c, 'sudo update-grub' ]
    - [ cloud-init-per, once, mymkfs, mkfs, /dev/vdb ]

# Install docker and docker-compose
runcmd:
    - [ sh, -c, 'curl -sSL https://get.docker.com/ | sh' ]
    - [ sh, -c, 'sudo curl -L https://github.com/docker/compose/releases/download/$(curl -s https://api.github.com/repos/docker/compose/releases/latest | grep "tag_name" | cut -d \" -f4)/docker-compose-$(uname -s)-$(uname -m) -o /usr/local/bin/docker-compose' ]
    - [ sh, -c, 'sudo chmod +x /usr/local/bin/docker-compose' ]

# Add default auto created user to docker group
system_info:
    default_user:
        groups: [docker]
票数 1
EN

Stack Overflow用户

发布于 2020-03-02 19:52:46

我刚刚在Azure上使用Ubuntu 18.04-LTS进行了测试:

代码语言:javascript
复制
#cloud-config
package_upgrade: true

packages:
    - docker.io
    - docker-compose

# create the docker group
groups:
    - docker

# assign a VM's default user, which is mydefaultuser, to the docker group
users:
    - default
    - name: mydefaultuser
      groups: docker

对于此设置,runcmd可以保留为空。

票数 2
EN

Stack Overflow用户

发布于 2019-02-28 14:26:26

你在其他"中有",如果不转义它就不能工作。至于用户。我认为默认用户创建的id是1000,你可以直接使用它(可能之前测试过这个假设)。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/54916851

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档