canavarbanavar
canavarbanavar

Reputation: 135

Podman machine start on Ubuntu

I have a problem about start the machine at podman I am using ubuntu 20.04 server I installed podman like this

echo "deb https://download.opensuse.org/repositories/devel:/kubic:/libcontainers:/stable/xUbuntu_20.04/ /" | sudo tee /etc/apt/sources.list.d/devel:kubic:libcontainers:stable.list
curl -L "https://download.opensuse.org/repositories/devel:/kubic:/libcontainers:/stable/xUbuntu_20.04/Release.key" | sudo apt-key add -
sudo apt-get update
sudo apt-get -y upgrade
sudo apt-get -y install podman

podman version is

podman version
Version:      3.4.2
API Version:  3.4.2
Go Version:   go1.16.6
Built:        Thu Jan  1 00:00:00 1970
OS/Arch:      linux/amd64

I need to start podman machine but I am getting an error

I am creating like this

root@ubuntu:# podman machine init
Extracting compressed file
root@ubuntu:# podman machine list
NAME                     VM TYPE     CREATED         LAST UP         CPUS        MEMORY      DISK SIZE
podman-machine-default*  qemu        28 seconds ago  28 seconds ago  1           2.147GB     10.74GB

it looks fine when I tried to start the machine I have this

root@ubuntu:# podman machine start
Error: unable to start host networking: "could not find \"gvproxy\" in one of [/usr/local/libexec/podman /usr/local/lib/podman /usr/libexec/podman /usr/lib/podman]"

but I dont think there is something wrong with my podman installation because I can run a container

root@ubuntu:# podman run hello-world
Resolved "hello-world" as an alias (/etc/containers/registries.conf.d/000-shortnames.conf)
Trying to pull docker.io/library/hello-world:latest...
Getting image source signatures
Copying blob 2db29710123e done
Copying config feb5d9fea6 done
Writing manifest to image destination
Storing signatures

Hello from Docker!
This message shows that your installation appears to be working correctly.

To generate this message, Docker took the following steps:
 1. The Docker client contacted the Docker daemon.
 2. The Docker daemon pulled the "hello-world" image from the Docker Hub.
    (amd64)
 3. The Docker daemon created a new container from that image which runs the
    executable that produces the output you are currently reading.
 4. The Docker daemon streamed that output to the Docker client, which sent it
    to your terminal.

To try something more ambitious, you can run an Ubuntu container with:
 $ docker run -it ubuntu bash

Share images, automate workflows, and more with a free Docker ID:
 https://hub.docker.com/

For more examples and ideas, visit:
 https://docs.docker.com/get-started/

Upvotes: 12

Views: 10642

Answers (3)

holzkohlengrill
holzkohlengrill

Reputation: 1232

Solved it by manually installing gvproxy.

You can install the latest version like this:

curl -s https://api.github.com/repos/containers/gvisor-tap-vsock/releases/latest | awk 'BEGIN { FS = "\"\\s*:\\s*" } /browser_download_url/ && /linux-amd64/ {print $2}' | xargs wget -O gvproxy-linux-amd64
chmod +x ./gvproxy-linux-amd64
mkdir -p /usr/local/lib/podman/
sudo mv gvproxy-linux-amd64 /usr/local/lib/podman/gvproxy

Then you should be able to init and start podman:

sudo podman machine init --root=true
# or on newer versions:
sudo podman machine init --rootful=true

sudo podman machine start

Upvotes: 0

DeadlyChambers
DeadlyChambers

Reputation: 5285

@alchemy commented this on the last answer, but the format of the releases have changed. Also the latest version is v0.7.3, so this worked for me.

sudo wget https://github.com/containers/gvisor-tap-vsock/releases/download/v0.7.3/gvproxy-linux-amd64 -O /usr/libexec/podman/gvproxy && sudo chmod +x /usr/libexec/podman/gvproxy

Upvotes: 1

Raxume
Raxume

Reputation: 419

I had the exact same problem as you. I solved it by manually installing gvproxy. The steps:

  1. Go to https://github.com/containers/gvisor-tap-vsock/releases and click on the newest one. Under the Assets, download gvproxy-linux
  2. Move it to /usr/libexec/podman under the name gvproxy.

Just a note, you'll most likely need sudo to move the file to /usr/libexec/podman.

Upvotes: 24

Related Questions