使用Docker Toolbox从图像中提取和更改代码

时间:2018-07-10 00:29:11

标签: docker docker-machine boot2docker

我成功地从公共存储库中检索了名为k8s.gcr.io/guestbook:v3的映像,并使用Docker Toolbox.作为容器在本地Windows devbox上运行(我必须使用Docker Toolbox,因为存在问题的devbox不符合要求安装Docker for Windows

的先决条件
  

我需要键入哪些特定命令才能找到并打开用于创建图像的文件?

我想检查容器内应用程序的代码,然后在此处和此处进行一些更改,然后将修改后的图像作为容器运行以查看修改后的代码在起作用。但是,如果我不能先访问代码,那我就做得不好。


下载图像并运行容器

以下是我检索和验证容器/图像所采取的步骤:

User@pc MINGW64 /c/Program Files/Docker Toolbox  
$ docker run -d -p 3000:3000 k8s.gcr.io/guestbook:v3  
Unable to find image 'k8s.gcr.io/guestbook:v3' locally
v3: Pulling from guestbook  
a3ed95caeb02: Pull complete  
300273678d06: Pull complete  
de2a362ef050: Pull complete  
06d5067149bd: Pull complete  
7a38a4e8f983: Pull complete  
10af2c65b7d4: Pull complete  
Digest: sha256:8f333d5b72677d216b4eb046d655aef7be9f1380e06ca1c63dfa9564034e7e26  
Status: Downloaded newer image for k8s.gcr.io/guestbook:v3
953785bda17b0396fa3f3812a9b8ad8e2038120336895dfe1d57343adb917cce

User@pc MINGW64 /c/Program Files/Docker Toolbox
$ curl $(docker-machine ip default):3000
<!DOCTYPE html>
<html lang="en">
  <head>
    <meta content="text/html; charset=utf-8" http-equiv="Content-Type">
    <meta charset="utf-8">
    <meta content="width=device-width" name="viewport">
    <link href="style.css" rel="stylesheet">
    <title>Guestbook</title>
  </head>
  <body>
    <div id="header">
      <h1>Guestbook</h1>
    </div>

    <div id="guestbook-entries">
      <p>Waiting for database connection...</p>
    </div>

    <div>
      <form id="guestbook-form">
        <input autocomplete="off" id="guestbook-entry-content" type="text">
        <a href="#" id="guestbook-submit">Submit</a>
      </form>
    </div>

    <div>
      <p><h2 id="guestbook-host-address"></h2></p>
      <p><a href="env">/env</a>
      <a href="info">/info</a></p>
    </div>
    <script src="//ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
    <script src="script.js"></script>
  </body>
</html>

User@pc MINGW64 /c/Program Files/Docker Toolbox
$

1 个答案:

答案 0 :(得分:0)

一个人可以使用docker commit“将Dockerfile指令应用于创建的映像”。

在这里解释了您可能想做什么: https://www.techrepublic.com/article/how-to-commit-changes-to-a-docker-image/ 但是,编辑Dockerfile并构建容器可能是更好的方法。参见https://docs.docker.com/compose/gettingstarted/