Podman: изменения, внесенные в podman config.json, не сохраняются при запуске контейнера
Я пытаюсь добавить сеть в контейнер podman после того, как он уже был создан. Вот шаги, которые я предпринял:
- Создайте и запустите контейнер:
podman run -it --name "container" --network=mgmtnet img_v1 /bin/bash
- Контейнер запускается.
- Я сейчас останавливаю контейнер
podman stop container
- Я редактирую файл podman config.json по адресу: /var/lib/containers/storage/overlay-containers/60dfc044f28b0b60f0490f351f44b3647531c245d1348084944feaea783a6ad5/userdata/config.json
Я добавляю дополнительный путь netns в раздел пространств имен.
"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"
}
],
- Я запускаю контейнер
podman start container
Я ожидал изменений (дополнительный интерфейс) в контейнере. Но этого не происходит. Кроме того, проверив config.json, я обнаружил, что мои изменения исчезли.
Таким образом, запуск контейнера удаляет изменения в config. Как это побороть?
Дополнительная информация:
[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
1 ответ
Это правильно. Файл config.json создается Podman, чтобы указать среде выполнения OCI, как запускать контейнер.
Все изменения, внесенные непосредственно в этот файл, будут потеряны при следующем перезапуске контейнера. Файл config.json используется средой выполнения OCI для создания контейнера, а затем больше не используется.