nep*_*une 5 containers docker google-cloud-platform kubernetes google-kubernetes-engine
我希望能够docker commit在 Kubernetes pod 内运行的容器上执行类似的操作。
卷快照不符合我的标准,因为我想对容器的完整状态进行快照,而不仅仅是在某个路径下安装的数据。
我需要这个是因为我为(受信任的)用户提供了对容器的 root 访问权限,并且我希望能够提供一种方法来回滚容器,而不会丢失他们在最后一个快照之前安装的任何包(或他们所做的任何其他更改)。
似乎提出了相关的功能请求,但没有任何结果。
我正在使用 Google Kubernetes Engine,但我准备迁移到另一个可以轻松支持此功能的提供商。
在名为 guest 的容器内运行 bash shell:
[root@host ~]# docker run -i -t --name guest oraclelinux:6.6 /bin/bash
[root@guest ~]#
Run Code Online (Sandbox Code Playgroud)
如果您使用 Web 代理,请按照Oracle Linux 管理员指南第 7 版中所述编辑来宾上的 yum 配置。
安装httpd包:
[root@guest ~]# yum install httpd
Run Code Online (Sandbox Code Playgroud)
/var/www/html如果需要,创建要在访客上的目录层次结构下显示的 Web 内容。
在主机上使用 docker stop 命令退出来宾:
[root@host ~]# docker stop guest
guest
Run Code Online (Sandbox Code Playgroud)
使用您停止的容器的 ID创建mymod/httpd带有标签的映像:v1
[root@host ~]# docker commit -m "ol6 + httpd" -a "A N Other" \
`docker ps -l -q` mymod/httpd:v1
8594abec905e6374db51bed1bfb208804cfb60d96b285efb897db581a01676e9
Run Code Online (Sandbox Code Playgroud)
使用-m和-a选项来记录图像及其作者。该命令返回新映像 ID 的完整版本。
如果您使用 docker images 命令,新映像现在将显示在列表中:
[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
Run Code Online (Sandbox Code Playgroud)
删除名为 guest 的容器。
# docker rm guest
guest
Run Code Online (Sandbox Code Playgroud)
您现在可以使用新映像创建用作 Web 服务器的容器,例如:
# docker run -d --name newguest -p 8080:80 mymod/httpd:v1 /usr/sbin/httpd -D FOREGROUND
7afbbefec5191f632e149f85ae10ed0ba88f1c545daad18cb930e575ef6a3e63
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2220 次 |
| 最近记录: |