podman-commit(1) General Commands Manual podman-commit(1)

podman-commit - ایجاد یک ایمیج جدید بر اساس کانتینر تغییریافته

podman commit [گزینه‌ها] کانتینر [ایمیج]

podman container commit [گزینه‌ها] کانتینر [ایمیج]

دستور podman commit یک ایمیج بر اساس کانتینر تغییریافته ایجاد می‌کند. پدیدآورنده ایمیج را می‌توان با گزینه --author مشخص کرد. دستورالعمل‌های گوناگون ایمیج با گزینه --change قابل پیکربندی هستند و پیام تثبیت (commit) را می‌توان با گزینه --message تعیین کرد. کانتینر و فرایندهای آن در زمان تثبیت ایمیج موقتاً متوقف (pause) می‌شوند. اگر این رفتار مورد نظر نباشد، گزینه --pause را می‌توان روی false تنظیم کرد. پس از تکمیل عملیات commit، پادمن شناسه ایمیج جدید را چاپ می‌کند.

اگر نام ایمیج با بخش نام رجیستری آغاز نشود، عبارت localhost به نام افزوده می‌شود. اگر ایمیج مشخص نشود، مقادیر REPOSITORY و TAG برای ایمیج ایجادشده برابر با <none> قرار داده می‌شود.

تنظیم پدیدآورنده برای ایمیج تثبیت‌شده.

اعمال دستورالعمل‌های ممکن زیر بر روی ایمیج ایجادشده:

  • CMD
  • ENTRYPOINT
  • ENV
  • EXPOSE
  • LABEL
  • ONBUILD
  • STOPSIGNAL
  • USER
  • VOLUME
  • WORKDIR

می‌تواند چندین بار مشخص شود.

ادغام پیکربندی کانتینر از فایل مشخص‌شده در پیکربندی ایمیج در هنگام تثبیت آن. محتوای فایل باید یک نسخه کدگذاری‌شده با JSON از ساختار Schema2Config باشد که در آدرس زیر تعریف شده است:
https://github.com/containers/image/blob/v5.29.0/manifest/docker_schema2.go#L67

تنظیم قالب مانیفست و متاداده ایمیج. قالب‌های پشتیبانی‌شده فعلی oci و docker هستند.
پیش‌فرض oci است.

نوشتن شناسه ایمیج در فایل مشخص‌شده.

شامل کردن تمام حجم‌هایی (volumes) در ایمیج تثبیت‌شده که با گزینه‌های --volume یا --mount به دستورات podman create و podman run به کانتینر اضافه شده‌اند.
پیش‌فرض false است.

تنظیم پیام تثبیت برای ایمیج ایجادشده.
مهم: فیلد پیام در قالب oci پشتیبانی نمی‌شود.

توقف موقت (pause) کانتینر در هنگام ایجاد ایمیج. توقف موقت یک کانتینر در حال اجرا هنگام کامیت، از شرایط رقابتی (race conditions) و مشکلات امنیتی بالقوه ناشی از دسترسی سایر فرایندها به rootfs کانتینر در هنگام ایجاد ایمیج جلوگیری می‌کند.
پیش‌فرض true است.

جلوگیری از نمایش خروجی.
پیش‌فرض false است.

ادغام (squash) لایه‌های تازه ساخته‌شده در یک لایه منفرد جدید.
پیش‌فرض false است.

ایجاد ایمیج از کانتینر همراه با نقطه ورود (entrypoint) و برچسب (label):

$ podman commit --change CMD=/bin/bash --change ENTRYPOINT=/bin/sh --change "LABEL blue=image" reverent_golick image-committed
Getting image source signatures
Copying blob sha256:b41deda5a2feb1f03a5c1bb38c598cbc12c9ccd675f438edc6acd815f7585b86
 25.80 MB / 25.80 MB [======================================================] 0s
Copying config sha256:c16a6d30f3782288ec4e7521c754acc29d37155629cb39149756f486dae2d4cd
 448 B / 448 B [============================================================] 0s
Writing manifest to image destination
Storing signatures
e3ce4d93051ceea088d1c242624d659be32cf1667ef62f1d16d6b60193e2c7a8

ایجاد ایمیج از کانتینر همراه با پیام تثبیت:

$ podman commit -q --message "committing container to image"
reverent_golick image-committed
e3ce4d93051ceea088d1c242624d659be32cf1667ef62f1d16d6b60193e2c7a8

ایجاد ایمیج از کانتینر همراه با تعیین پدیدآورنده:

$ podman commit -q --author "firstName lastName" reverent_golick image-committed
e3ce4d93051ceea088d1c242624d659be32cf1667ef62f1d16d6b60193e2c7a8

تثبیت کانتینر در حال اجرا بدون متوقف کردن موقت آن:

$ podman commit -q --pause=false containerID image-committed
e3ce4d93051ceea088d1c242624d659be32cf1667ef62f1d16d6b60193e2c7a8

ایجاد ایمیج از کانتینر با برچسب پیش‌فرض ایمیج:

$ podman commit containerID
e3ce4d93051ceea088d1c242624d659be32cf1667ef62f1d16d6b60193e2c7a8

ایجاد ایمیج از کانتینر با قابلیت‌های الزامی پیش‌فرض:

$ podman commit -q --change LABEL=io.containers.capabilities=setuid,setgid epic_nobel privimage
400d31a3f36dca751435e80a0e16da4859beb51ff84670ce6bdc5edb30b94066

podman(1), podman-run(1), podman-create(1)

برای راه‌حل‌های مشکلات رایج به podman-troubleshooting(7) مراجعه کنید.

دسامبر ۲۰۱۷، در ابتدا توسط Urvashi Mohnani umohnani@redhat.com ⟨mailto:umohnani@redhat.com⟩ گردآوری شد.