Menjalankan Kontainer

Pendahuluan

Fedora CoreOS menyertakan alat CLI docker (yang disediakan melalui Moby) dan podman. Halaman ini menjelaskan cara menggunakan unit systemd untuk memulai dan menghentikan kontainer dengan podman.

Contoh konfigurasi

Potongan konfigurasi Butane berikut mengonfigurasi systemd hello.service untuk menjalankan busybox.

Anda juga dapat menggunakan referensi berkas lokal untuk unit systemd alih-alih menuliskannya langsung. Lihat Menggunakan parameter --files-dir milik Butane untuk Menyematkan Berkas untuk informasi lebih lanjut.
Contoh menjalankan busybox menggunakan systemd dan podman
variant: fcos
version: 1.6.0
systemd:
  units:
    - name: hello.service
      enabled: true
      contents: |
        [Unit]
        Description=AplikasiSaya
        After=network-online.target
        Wants=network-online.target

        [Service]
        TimeoutStartSec=0
        ExecStartPre=-/bin/podman kill busybox1
        ExecStartPre=-/bin/podman rm busybox1
        ExecStartPre=/bin/podman pull busybox
        ExecStart=/bin/podman run --name busybox1 busybox /bin/sh -c "trap 'exit 0' INT TERM; while true; do echo Hello World; sleep 1; done"

        [Install]
        WantedBy=multi-user.target
Contoh menjalankan busybox menggunakan Podman Quadlet

Podman Quadlet adalah fungsionalitas yang disertakan dalam podman, yang memungkinkan penjalinan kontainer melalui systemd menggunakan systemd generator. Contoh di bawah ini adalah hello.service yang sama seperti sebelumnya, tetapi dijalankan melalui fungsionalitas Podman Quadlet.

variant: fcos
version: 1.6.0
storage:
  files:
    - path: /etc/containers/systemd/hello.container
      contents:
        inline: |
          [Unit]
          Description=Layanan Hello
          Wants=network-online.target
     After=network-online.target

          [Container]
          ContainerName=busybox1
          Image=docker.io/busybox
          Exec=/bin/sh -c "trap 'exit 0' INT TERM; while true; do echo Hello World; sleep 1; done"

          [Install]
          WantedBy=multi-user.target

Menjalankan etcd

etcd tidak disertakan sebagai bagian dari Fedora CoreOS. Untuk menggunakannya, jalankan sebagai kontainer seperti ditunjukkan di bawah.

Konfigurasi Butane untuk menyiapkan single node etcd
variant: fcos
version: 1.6.0
systemd:
  units:
    - name: etcd-member.service
      enabled: true
      contents: |
        [Unit]
        Description=Menjalankan *single node* etcd
        After=network-online.target
        Wants=network-online.target

        [Service]
        ExecStartPre=mkdir -p /var/lib/etcd
        ExecStartPre=-/bin/podman kill etcd
        ExecStartPre=-/bin/podman rm etcd
        ExecStartPre=-/bin/podman pull quay.io/coreos/etcd
        ExecStart=/bin/podman run --name etcd --volume /var/lib/etcd:/etcd-data:z --net=host quay.io/coreos/etcd:latest /usr/local/bin/etcd --data-dir /etcd-data --name node1 \
                --initial-advertise-peer-urls http://127.0.0.1:2380 --listen-peer-urls http://127.0.0.1:2380 \
                --advertise-client-urls http://127.0.0.1:2379 \
                --listen-client-urls http://127.0.0.1:2379 \
                --initial-cluster node1=http://127.0.0.1:2380

        ExecStop=/bin/podman stop etcd

        [Install]
        WantedBy=multi-user.target

Informasi lebih lanjut

Lihat dokumentasi etcd untuk informasi lebih lanjut tentang menjalankan etcd dalam kontainer dan cara menyiapkan multi-node etcd.