Docker实践(13) – 保存开发环境状态

如遇技术问题,请联系博主帮您解决QQ 452336092(添加时注明”付费技术支持”)。

文章目录
[隐藏]

如果你曾经开发过软件,你可能至少一次地像这样呼叫过,”奇怪了,之前明明正常的!”不过没办法快速地恢复到之前的正常状态,你只能匆忙地去修改代码以尽快完成任务而不至于延期。这就浪费了许多时间。
版本控制软件已经能帮助你快速恢复到指定的正常版本,不过但下面的两个特殊情况会存在问题:

  • 代码无法体现你工作环境系统的状态
  • 你可能还不愿意提交代码
  • 第一个问题比第二个值得关注。虽然像Git这样的现代源代码控制工具可以轻松地创建分支,不过捕获整个开发文件系统的状态不是Git的目的。
    Docker通过它的commit功能提供了一个成本低廉和快速的方法来保存容器开发系统的状态,这就是我们下面将要探讨的。

    问题

    你想保存你开发环境的状态。

    解决方法

    使用docker commit保存状态

    讨论

    假如你对你的to-do应用做更改。ToDoCorp的CEO对浏览器显示的标题”Swarm+React – TodoMVC.”不满意,要改为“ToDo- Corp’s ToDo App”。
    你不确定如何完成这个任务,所以你可能需要启动应用,并更改文件做试验看会怎样:

    1. $ docker run -d -p 8000:8000 --name todobug1 dockerinpractice/todoapp  3c3d5d3ffd70d17e7e47e90801af7d12d6fc0b8b14a8b33131fc708423ee4372
    2. $ docker exec -i -t todobug1 /bin/bash

    docker run命令后台(-d)启动to-do应用容器,映射容器的8000端口到主机的8000端口(-p 8000:8000),命名为todobug1(–name todobug1)。
    第二个命令在已运行的容器中启动/bin/bash。-i激活交互模式,-t创建一个TTY。
    现在你已经进入容器了,所以试验前先安装编辑器。我们喜欢用vim,所以用以下命令:

    1. apt-get update
    2. apt-get install vim

    经过了一翻努力你意识到需要更改local.html,因为你更改如下:
    ToDoCorp’s ToDo App
    不过CEO想让标题使小写字符,因为她听说这看起来更现代。你想把现在的更改保存下,在另一个终端执行如下命令:

    1. $ docker commit todobug1
    2. ca76b45144f2cb31fda6a31e55f784c93df8c9d4c96bbeacd73cad9cd55d2970

    你现在已经提交了刚才的更改,所以之后你可以从镜像运行包含此更改的容器。
    下一步你更改local.html:
    todocorp’s todo app
    再次提交:

    1. $ docker commit todobug1
    2. 071f6a36c23a19801285b82eafc99333c76f63ea0aa0b44902c6bae482a6e036

    现在在我们这个示例已经有两个镜像ID(ca76b45144f2cb31fda6a31e55f784c93df8c9d4c96bbeacd73cad9cd55d2970和071f6a36c23a19801285b82eafc99333c76f63ea0aa0b44902c6bae482a6e036)。当CEO来评估她想要哪个时,你可以运行任意一个镜像来让你决定。
    你可以在新终端运行如下命令来启动两个镜像:

    1. $ docker run -p 8001:8000 ca76b45144f2cb31fda6a31e55f784c93df8c9d4c96bbeacd73cad9cd55d2970
    2. $ docker run -p 8002:8000 071f6a36c23a19801285b82eafc99333c76f63ea0aa0b44902c6bae482a6e036

    这样你可以打开http://localhost:8001显示大写的标题页面和http://localhost:8002显示小写页面。
    你肯定想知道有没有更好的方法来引用这两个镜像,而不是需要输入这么长的ID。下一篇文章我们会给这些镜像一个名称来更好的引用它。

    转载请保留原文链接:Linux运维日志 » Docker实践(13) – 保存开发环境状态

    打赏

    如果此文对你有所帮助,请随意打赏鼓励作者^_^

    评论 0

    • 昵称 (必填)
    • 邮箱 (必填)
    • 网址