简体   繁体   中英

Podman: Changes made to podman config.json do not persist on container start

I am trying to add a network to a podman container after it has already been created. These are the steps I took:

  • Create and start a container:
podman run -it --name "container" --network=mgmtnet img_v1 /bin/bash
  • The container starts.
  • I now stop the container
    podman stop container
  • I edit the podman config.json file at: /var/lib/containers/storage/overlay-containers/60dfc044f28b0b60f0490f351f44b3647531c245d1348084944feaea783a6ad5/userdata/config.json

I add an extra netns path in the namespaces section.

"namespaces": [
            {
                "type": "pid"
            },
            {
                "type": "network",
>>              "path": "/var/run/netns/cni-8231c733-6932-ed54-4dee-92477014da6e",
>>[+]           "path": "/var/run/netns/test_net"
            },
            {
                "type": "ipc"
            },
            {
                "type": "uts"
            },
            {
                "type": "mount"
            }
        ],
  • I start the container
podman start container

I expected the changes (an extra interface) in the container. But that doesn't happen. Also, checking the config.json, I find that my changes are gone.

So starting the container removes the changes in config. How to overcome this?

Extra info:

[root@bng-ix-svr1 ~]# podman info
host:
  BuildahVersion: 1.9.0
  Conmon:
    package: podman-1.4.2-5.module+el8.1.0+4240+893c1ab8.x86_64
    path: /usr/libexec/podman/conmon
    version: 'conmon version 2.0.1-dev, commit: unknown'
  Distribution:
    distribution: '"rhel"'
    version: "8.1"
  MemFree: 253316108288
  MemTotal: 270097387520
  OCIRuntime:
    package: runc-1.0.0-60.rc8.module+el8.1.0+4081+b29780af.x86_64
    path: /usr/bin/runc
    version: 'runc version spec: 1.0.1-dev'
  SwapFree: 5368705024
  SwapTotal: 5368705024
  arch: amd64
  cpus: 16
  hostname: bng-ix-svr1.englab.juniper.net
  kernel: 4.18.0-147.el8.x86_64
  os: linux
  rootless: false
  uptime: 408h 2m 41.08s (Approximately 17.00 days)
registries:
  blocked: null
  insecure: null
  search:
  - registry.redhat.io
  - registry.access.redhat.com
  - quay.io
  - docker.io
store:
  ConfigFile: /etc/containers/storage.conf
  ContainerStore:
    number: 4
  GraphDriverName: overlay
  GraphOptions: null
  GraphRoot: /var/lib/containers/storage
  GraphStatus:
    Backing Filesystem: xfs
    Native Overlay Diff: "true"
    Supports d_type: "true"
    Using metacopy: "false"
  ImageStore:
    number: 2
  RunRoot: /var/run/containers/storage
  VolumePath: /var/lib/containers/storage/volumes

that is correct. The config.json file is generated by Podman to instruct the OCI runtime how to run the container.

All the changes done directly on that file will be lost next time you restart the container. The config.json file is used by the OCI runtime to create the container and then it is not used anymore.

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM