在Windows上保存Docker容器状态

时间:2016-10-15 00:42:56

标签: windows docker

我使用

创建一个docker容器
docker-machine.exe create -d virtualbox --virtualbox-memory 2048 default

我使用

登录bash
docker run -ti ubuntu /bin/bash

我得到了类似root@ae78cd536ddf:/#的内容,其中我做了几个apt-get install

然后,我退出了bash,当我再次登录时,我找不到我安装的内容。我想做一个docker commit,但我不知道我的安装内容是什么?

更新

根据答案,我尝试创建容器的图像。我已经在gist中编译了所有命令。

2 个答案:

答案 0 :(得分:2)

使用docker run,您可以从ubuntu图片创建容器。容器的名称为ae78cd536ddf(在您的情况下)。您可以分别使用docker ps -adocker images检查图像和容器。

每次运行docker run时,都会创建一个新容器。使用docker run --name Somename时,会强制将容器命名为Somename,这会阻止您创建另一个具有相同名称的容器。

图像是不可变的,这意味着您无法更改它们。因此,当您在正在运行的容器中修改某些内容时,图像保持不变,这样您就可以从同一图像创建更多容器。

因此,在您停止容器(docker stop,退出容器化bash或只是重新启动)之后,您可以运行docker start ae78cd536ddf来重新启动容器。但是它会在后台运行,你不会有bash(检查docker ps以查看它正在运行)。现在你只需要一个bash:docker exec -it ae78cd536ddf /bin/bash将在你之前开始的容器中执行bash。

关于创建图像的注意事项。你可能想安装你总是需要的软件(我个人喜欢vim,htop,......)然后docker commit容器。这将创建一个您可以在docker images中看到的新图像。现在,您可以通过将ubuntu替换为图像名称来运行此图像中的容器。

要获得更多可重复的构建(例如,使用CI时),您可以创建Dockerfile并运行docker build

答案 1 :(得分:1)

每个docker run命令都会创建一个新容器。 bash shell的主机名中的id是容器ID。你可以提交。

要查看所有容器(包括已停止的容器),请执行docker ps -a