skip to Main Content

I have a pod running Linux, I have let others use it. Now I need to save the changes made by others. Since sometimes I need to delete/restart the pod, the changes are reverted and new pod get created. So I want to save the pod container as docker image and use that image to create a pod.

I have tried kubectl debug node/pool-89899hhdyhd-bygy -it --image=ubuntu then install docker, dockerd inside but they don’t have root permission to perform operations, installed crictl they where listing the containers but they don’t have options to save them.

Also created a privileged docker image, created a pod from it, then used the command kubectl exec --stdin --tty app-7ff786bc77-d5dhg -- /bin/sh then tried to get running container, but it was not listing the containers. Below is the deployment i used to the privileged docker container

kind: Deployment
apiVersion: apps/v1
metadata:
  name: app
  labels:
    app: backend-app
    backend-app: app
spec:
  replicas: 1
  selector:
    matchLabels:
      app: backend-app
      task: app
  template:
    metadata:
      labels:

        app: backend-app
        task: app
    spec:
      nodeSelector:
        kubernetes.io/hostname: pool-58i9au7bq-mgs6d
      volumes:
        - name: task-pv-storage
          hostPath:
            path: /run/docker.sock
            type: Socket
      containers:
        - name: app
          image: registry.digitalocean.com/my_registry/docker_app@sha256:b95016bd9653631277455466b2f60f5dc027f0963633881b5d9b9e2304c57098
          ports:
            - containerPort: 80
          volumeMounts:
            - name: task-pv-storage
              mountPath: /var/run/docker.sock

Is there any way I can achieve this, get the pod container and save it as a docker image? I am using digitalocean to run my kubernetes apps, I do not ssh access to the node.

2

Answers


  1. Chosen as BEST ANSWER

    Thank you all for your help and suggestions. I found a way to achieve it using the tool nerdctl - https://github.com/containerd/nerdctl.


  2. This is not a feature of Kubernetes or CRI. Docker does support snapshotting a running container to an image however Kubernetes no longer supports Docker.

    Login or Signup to reply.
Please signup or login to give your own answer.
Back To Top
Search