Run a Linux virtual machine in Podman | Opensource.com

Run a Linux virtual machine in Podman

Use Podman Machine to create a basic Fedora CoreOS VM to use with containers and containerized workloads.

woman on laptop sitting at the window
Image credits : 

CC BY 3.0 US Mapbox Uncharted ERG

x

Subscribe now

Get the highlights in your inbox every week.

Fedora CoreOS is an automatically updating, minimal rpm-ostree-based operating system for running containerized workloads securely and at scale.

Podman "is a tool for managing containers and images, volumes mounted into those containers, and pods made from groups of containers. Podman is based on libpod, a library for container lifecycle management."

Magical things happen when you use Podman Machine, a feature that helps you create a basic Fedora CoreOS virtual machine (VM) to use with containers and containerized workloads.

Getting started with Podman Machine

The first step is to install Podman. If you already have the latest version of Podman installed, you can skip the step. On my Fedora 34 machine, I installed Podman with:

$ sudo dnf install podman

I'm using podman-3.2.2-1.fc34.x86_64.

Initializing a Fedora CoreOS

Once Podman is installed, initialize it with:

❯ podman machine init vm2
Downloading VM image: fedora-coreos-34.20210626.1.0-qemu.x86_64.qcow2.xz: done  
Extracting compressed file

This command creates vm2 and downloads Fedora CoreOS's qcow2 file in .xz format and extracts it.

Listing your VMs

It's always important to know your VMs and their status, and the list command helps with that. The following example shows the names of all my VMs, the date they were created, and the last time they were up:

❯ podman machine list  
NAME                    VM TYPE         CREATED         LAST UP
podman-machine-default*  qemu           6 days ago      Currently running
vm2                     qemu            11 minutes ago  11 minutes ago

Starting a VM

To start a VM, run:

❯ podman machine start
Waiting for VM …

SSHing into the VM

You can use secure shell (SSH) to access your VM and use it to run workloads without any setup hassles:

❯ podman machine ssh  
Connecting to vm podman-machine-default. To close connection, use `~.` or `exit`
Fedora CoreOS 34.20210611.1.0
Tracker: https://github.com/coreos/fedora-coreos-tracker
Discuss: https://discussion.fedoraproject.org/c/server/coreos/
 
Last login: Wed Jun 23 13:23:36 2021 from 10.0.2.2
[core@localhost ~]$ uname -a
Linux localhost 5.12.9-300.fc34.x86_64 #1 SMP Thu Jun 3 13:51:40 UTC 2021 x86_64 x86_64 x86_64 GNU/Linux
[core@localhost ~]$

Currently, Podman only supports running one VM at a time.

Stopping your VM

To stop a running VM, use the stop command:

❯ podman machine stop

[core@localhost ~]$ Connection to localhost closed by remote host.
Connection to localhost closed.
Error: exit status 255

I hope this helps you get started with Podman Machine. Give it a try, and let us know what you think in the comments.

Women programming

Create consistency to avoid problems when you have multiple developers working on the same project.

About the author

Sumantro Mukherjee - Hey, open source folks! I am Sumantro, hailing from India (the eastern part - former capital during the British era AKA Kolkata). I love sharing knowledge and writing about technology and experiences (mostly that I try every day). Anything from k8s, ansible to setting up TCMS for make-believe projects is right up my alley. I work as a Software Developer in Test in Fedora Project and contribute to Open Source communities in the form of testing, public speaking, documentation, mentorship, and...