• 如何将 Docker 镜像部署到 Flynn?

    如何将 Docker 镜像部署到 Flynn?

    Flynn 支持从 Docker 注册库运行 Docker 镜像。但是请注意,当前在 Docker 镜像上申明的容量都是暂时的,一旦实例被重启或者缩小,容量就会被清除。

    首先给应用程序创建一个配置文件,然后运行命令来指定任务类型、 初始化命令以及开放端口。

    创建一个名为 config.json 的文件,并将该文件通过 -f 选项传给 flynn release add 命令。

    1. {
    2. "processes": {
    3. "server": {
    4. "cmd": ["memcached", "-u", "nobody", "-l", "0.0.0.0", "-p", "11211", "-v"],
    5. "data": true,
    6. "ports": [{
    7. "port": 11211,
    8. "proto": "tcp",
    9. "service": {
    10. "name": "memcached",
    11. "create": true,
    12. "check": { "type": "tcp" }
    13. }
    14. }]
    15. }
    16. }
    17. }

    Flynn 需要得到 Docker 镜像的注册地址。得到该注册地址最简单的方法是从 Docker 注册表中拉出镜像,然后用 Docker CLI 打印镜像ID。

    1. $ docker pull memcached
    2. $ docker images --no-trunc|grep memcachedmemcached latest 8937d6d027a4f52b877aacd9faa68b8a89652d858845e1ea2cf7bc6a8306db00 13 days ago 132.4 MB

    现在可以通过 Flynn CLI 创建应用程序,并用 Docker 注册地址创建发布,然后通过扩展启动服务。

    1. # 创建应用程序
    2. $ flynn create --remote "" memcached
    3. # 使用注册地址创建发布
    4. $ flynn -a memcached release add -f config.json "https://registry.hub.docker.com?name=memcached&id=8937d6d027a4f52b877aacd9faa68b8a89652d858845e1ea2cf7bc6a8306db00"
    5. # 通过扩展启动服务。
    6. $ flynn -a memcached scale server=1

    注意,因为 Docker 镜像启动前,Flynn 必须在下载 Docker 镜像,所以最后一个命令也许会超时,但是 Flynn 最终会启动。你可以通过运行 flynn -a memcached ps 命令,在启动 Docker 镜像的同时,打开进程列表来查看它的启动情况。现在, Flynn 应用程序可以通过连接到 memcached.discoverd:11211 与新的 memcached 服务器通信。应用程序的主机名基于 service.name 密钥,该密钥在发布提供的配置文件中。

    原文: http://doc.oschina.net/flynn?t=54121