在 CoreOS 上安装或运行任何东西的正确方式是:
- 将其安装为一个 unit
- 在单独的 Docker 容器中运行
对于 docker-compose
,您可能希望像将 docker
作为一个 unit 一样安装它。请参阅 Digital Ocean 的关于 CoreOS 的优秀指南,以及systemd units章节以了解更多信息。
根据您的云提供商或自定义安装,定位您的云配置,请参见https://coreos.com/os/docs/latest/cloud-config-locations.html以获取位置。
通过将其添加为一个 unit 来安装 docker-compose。
coreos:
units:
- name: install-docker-compose.service
command: start
content: |
[Unit]
Description=Install docker-compose
ConditionPathExists=!/opt/bin/docker-compose
[Service]
Type=oneshot
RemainAfterExit=yes
ExecStart=/usr/bin/mkdir -p /opt/bin/
ExecStart=/usr/bin/curl -o /opt/bin/docker-compose -sL "https://github.com/docker/compose/releases/download/1.9.0/docker-compose-linux-x86_64"
ExecStart=/usr/bin/chmod +x /opt/bin/docker-compose
注意,我无法在curl语句中使用
uname -s
和
uname -m
扩展,因此我将它们替换为它们的扩展值。
使用以下命令验证您的配置文件:
coreos-cloudinit -validate --from-file path-to-cloud-config
它应该输出类似以下内容
myhost core
2016/12/12 12:45:03 Checking availability of "local-file"
2016/12/12 12:45:03 Fetching user-data from datasource of type "local-file"
myhost core
注意,coreos-cloudinit
不会验证您的云配置中的内容块。当您完成操作并重启 CoreOS 后,您就可以开始使用了。
更新:如 @Wolfgang 的评论所述,您可以运行 coreos-cloudinit --from-file path-to-cloud-config
代替重启 CoreOS。
mkdir -p /opt/bin
。 - BachirC>
标志替换为-o
即可。参考链接 - https://www.digitalocean.com/community/tutorials/how-to-install-docker-compose-on-ubuntu-16-04 - Ravindu Nirmal Fernando