如何从Kubernetes中运行的容器创建图像?

时间:2018-05-14 14:48:11

标签: docker kubernetes google-cloud-platform containers google-kubernetes-engine

我希望能够在Kubernetes pod中运行的容器上执行docker commit之类的操作。

卷快照不符合我的标准,因为我想快照容器的完整状态,而不仅仅是在某个路径下安装的数据。

我需要这个,因为我为(受信任的)用户提供了对容器的root访问权限,并且我希望能够提供一种方法来回滚容器,而不会丢失他们已经安装的任何软件包(或者他们所做的任何其他更改)。最后的快照。

似乎a related feature request已经制作完成但没有任何结果。

我正在使用Google Kubernetes Engine,但我准备迁移到另一家可以轻松支持此功能的提供商。

1 个答案:

答案 0 :(得分:0)

在名为guest:

的容器中运行bash shell
form2.FDQuery5.OpenOrExecute;

如果您使用网络代理,请按照Oracle Linux Administrator's Guide for Release 7中的说明编辑访客上的yum配置。

安装httpd包:

$chore = Chore::whereHas('kids', function ($query) use ($date){
   $query->where('chore_date','=', $date );
})->get();

如果需要,请创建要在访客的[root@host ~]# docker run -i -t --name guest oraclelinux:6.6 /bin/bash [root@guest ~]# 目录层次结构下显示的Web内容。

使用主机上的docker stop命令退出guest虚拟机:

[root@guest ~]# yum install httpd

使用您停止的容器的ID,使用标记/var/www/html创建图像[root@host ~]# docker stop guest guest

mymod/httpd

使用v1[root@host ~]# docker commit -m "ol6 + httpd" -a "A N Other" \ `docker ps -l -q` mymod/httpd:v1 8594abec905e6374db51bed1bfb208804cfb60d96b285efb897db581a01676e9 选项记录图片及其作者。该命令返回新图像ID的完整版本。

如果您使用docker images命令,新图像现在会出现在列表中:

-m

删除名为guest的容器。

-a

您现在可以使用新映像创建一个充当Web服务器的容器,例如:

  [root@host ~]# docker images
    REPOSITORY    TAG         IMAGE ID       CREATED       VIRTUAL SIZE
    mymod/httpd   v1          8594abec905e   2 minutes ago 938.5 MB
    oraclelinux   6           9ac13076d2b5   5 days ago    319.4 MB
    oraclelinux   6.6         9ac13076d2b5   5 days ago    319.4 MB
    oraclelinux   latest      073ded22ac0f   5 days ago    265.2 MB
    oraclelinux   7           073ded22ac0f   5 days ago    265.2 MB
    oraclelinux   7.0         073ded22ac0f   5 days ago    265.2 MB