Yes, it generates systemd files, but still hits the locking issue
(i.e. only one container works), just like the first unit in my
initial email.
пн, 4 нояб. 2019 г. в 23:54, Scott McCarty <smccarty(a)redhat.com>:
Instead, try "podman generate systemd" and you will have your unit files made
specifically for those containers.
On Mon, Nov 4, 2019 at 1:41 PM Alexander E. Patrakov <patrakov(a)gmail.com> wrote:
>
> Hello.
>
> I have tried Podman in Fedora 31. Not a rootless setup.
>
> Software versions:
>
> podman-1.6.2-2.fc31.x86_64
> containernetworking-plugins-0.8.2-2.1.dev.git485be65.fc31.x86_64
>
> I have created two containers:
>
> # podman container run -d --name nginx_1 -p 80:80 nginx
> # podman container run -d --name nginx_2 -p 81:80 nginx
>
> Then I wanted to make sure that they start on boot.
>
> According to RHEL 7 documentation,
>
https://access.redhat.com/documentation/en-us/red_hat_enterprise_linux_at...
> , I am supposed to create systemd units. OK, let's take the documented
> form of the unit and turn it into a template:
>
> [Unit]
> Description=Container %i
>
> [Service]
> ExecStart=/usr/bin/podman start -a %i
> ExecStop=/usr/bin/podman stop -t 2 %i
>
> [Install]
> WantedBy=multi-user.target
>
> This doesn't work if there is more than one container. The error
> is:
>
> Nov 04 21:35:57 podman[2268]: time="2019-11-04T21:35:57+05:00"
> level=error msg="Error adding network: failed to allocate for range 0:
> 10.88.0.19 has been allocated to
> ace2de4405205a9a7674a2524cd67c1f0e395a9234b0456c55881a1a4add6019,
> duplicate allocation is not allowed"
> Nov 04 21:35:57 podman[2268]: time="2019-11-04T21:35:57+05:00"
> level=error msg="Error while adding pod to CNI network \"podman\":
> failed to allocate for range 0: 10.88.0.19 has been allocated to
> ace2de4405205a9a7674a2524cd67c1f0e395a9234b0456c55881a1a4add6019,
> duplicate allocation is not allowed"
> Nov 04 21:35:57 podman[2268]: Error: unable to start container
> ace2de4405205a9a7674a2524cd67c1f0e395a9234b0456c55881a1a4add6019:
> error configuring network namespace for container
> ace2de4405205a9a7674a2524cd67c1f0e395a9234b0456c55881a1a4add6019:
> failed to allocate for range 0: 10.88.0.19 has been allocated to
> ace2de4405205a9a7674a2524cd67c1f0e395a9234b0456c55881a1a4add6019,
> duplicate allocation is not allowed
>
> (as you can see, the conflict is against the container itself)
>
> Apparently different runs of podman need to be serialized against each
> other. This works:
>
> [Unit]
> Description=Container %i
> Wants=network-online.target
> After=network-online.target
>
> [Service]
> Type=oneshot
> RemainAfterExit=yes
> ExecStart=flock /run/lock/subsys/container.lck /usr/bin/podman start %i
> ExecStop=/usr/bin/podman stop -t 2 %i
>
> [Install]
> WantedBy=multi-user.target
>
> Questions:
>
> a) Why isn't some equivalent of this unit shipped with podman? Or, am
> I missing some package that ships it?
> b) Why isn't the necessary locking built into podman itself? Or, is it
> a bug in containernetworking-plugins?
>
> --
> Alexander E. Patrakov
> _______________________________________________
> Podman mailing list -- podman(a)lists.podman.io
> To unsubscribe send an email to podman-leave(a)lists.podman.io
--
--
Scott McCarty, RHCA
Product Management - Containers, Red Hat Enterprise Linux & OpenShift
Email: smccarty(a)redhat.com
Phone: 312-660-3535
Cell: 330-807-1043
Web:
http://crunchtools.com
Have you ever wondered what happens behind the scenes when you type
www.redhat.com into a
browser and hit enter?
https://www.redhat.com/en/blog/what-happens-when-you-hit-enter
--
Alexander E. Patrakov