Tools: Installing Podman on Ubuntu 26.04 - Complete Guide

Tools: Installing Podman on Ubuntu 26.04 - Complete Guide

Install Podman

Manage the Podman Service

Run a Containerized Application

Build a Custom Image

Next Steps Podman is a daemonless container engine compatible with Docker's CLI and OCI container formats. Unlike Docker, Podman runs without a background daemon — each container is its own process, with no single point of failure. This guide installs Podman on Ubuntu 26.04, deploys a live Nginx container, and builds a custom image from a Dockerfile. By the end, you'll have Podman running containers and a custom application image ready for use. Podman is available in Ubuntu 26.04's default APT repository. 1. Update the APT package index: 3. Verify the installed version: Enable the Podman socket for API access and compatibility with Docker-based tooling. 1. Enable and start the socket: 2. Check the socket status: 3. Stop or restart the socket when needed: Pull the official Nginx image and run it as a container to verify the installation. 1. Pull the Nginx image: 2. Run the container: 3. Verify the container is running: 4. Test the container response: The Nginx welcome page in the output confirms the container is running. 1. Create a project directory: 2. Create a Dockerfile: 3. Create a simple application file: 5. Run the custom image: 6. Test the application: Podman is now running and serving containers. From here you can: For the full guide with additional tips, visit the original article on Vultr Docs. Templates let you quickly answer FAQs or store snippets for re-use. Hide child comments as well For further actions, you may consider blocking this person and/or reporting abuse

Command

Copy

$ -weight: 600;">sudo -weight: 500;">apt -weight: 500;">update $ -weight: 600;">sudo -weight: 500;">apt -weight: 500;">update $ -weight: 600;">sudo -weight: 500;">apt -weight: 500;">update $ -weight: 600;">sudo -weight: 500;">apt -weight: 500;">install podman -y $ -weight: 600;">sudo -weight: 500;">apt -weight: 500;">install podman -y $ -weight: 600;">sudo -weight: 500;">apt -weight: 500;">install podman -y $ podman --version $ podman --version $ podman --version $ -weight: 600;">sudo -weight: 500;">systemctl -weight: 500;">enable podman.socket $ -weight: 600;">sudo -weight: 500;">systemctl -weight: 500;">start podman.socket $ -weight: 600;">sudo -weight: 500;">systemctl -weight: 500;">enable podman.socket $ -weight: 600;">sudo -weight: 500;">systemctl -weight: 500;">start podman.socket $ -weight: 600;">sudo -weight: 500;">systemctl -weight: 500;">enable podman.socket $ -weight: 600;">sudo -weight: 500;">systemctl -weight: 500;">start podman.socket $ -weight: 600;">sudo -weight: 500;">systemctl -weight: 500;">status podman.socket $ -weight: 600;">sudo -weight: 500;">systemctl -weight: 500;">status podman.socket $ -weight: 600;">sudo -weight: 500;">systemctl -weight: 500;">status podman.socket $ -weight: 600;">sudo -weight: 500;">systemctl -weight: 500;">stop podman.socket $ -weight: 600;">sudo -weight: 500;">systemctl -weight: 500;">restart podman.socket $ -weight: 600;">sudo -weight: 500;">systemctl -weight: 500;">stop podman.socket $ -weight: 600;">sudo -weight: 500;">systemctl -weight: 500;">restart podman.socket $ -weight: 600;">sudo -weight: 500;">systemctl -weight: 500;">stop podman.socket $ -weight: 600;">sudo -weight: 500;">systemctl -weight: 500;">restart podman.socket $ -weight: 600;">sudo podman pull -weight: 500;">docker.io/nginx:alpine $ -weight: 600;">sudo podman pull -weight: 500;">docker.io/nginx:alpine $ -weight: 600;">sudo podman pull -weight: 500;">docker.io/nginx:alpine $ -weight: 600;">sudo podman run -d --name example-nginx -p 9090:80 -weight: 500;">docker.io/nginx:alpine $ -weight: 600;">sudo podman run -d --name example-nginx -p 9090:80 -weight: 500;">docker.io/nginx:alpine $ -weight: 600;">sudo podman run -d --name example-nginx -p 9090:80 -weight: 500;">docker.io/nginx:alpine $ -weight: 600;">sudo podman ps $ -weight: 600;">sudo podman ps $ -weight: 600;">sudo podman ps $ -weight: 500;">curl http://localhost:9090 $ -weight: 500;">curl http://localhost:9090 $ -weight: 500;">curl http://localhost:9090 $ mkdir ~/example-app $ cd ~/example-app $ mkdir ~/example-app $ cd ~/example-app $ mkdir ~/example-app $ cd ~/example-app $ nano Dockerfile $ nano Dockerfile $ nano Dockerfile FROM python:3.12-slim WORKDIR /app RUN -weight: 500;">pip -weight: 500;">install fastapi uvicorn COPY . . CMD ["uvicorn", "app:app", "--host", "0.0.0.0", "--port", "5000"] FROM python:3.12-slim WORKDIR /app RUN -weight: 500;">pip -weight: 500;">install fastapi uvicorn COPY . . CMD ["uvicorn", "app:app", "--host", "0.0.0.0", "--port", "5000"] FROM python:3.12-slim WORKDIR /app RUN -weight: 500;">pip -weight: 500;">install fastapi uvicorn COPY . . CMD ["uvicorn", "app:app", "--host", "0.0.0.0", "--port", "5000"] $ nano app.py $ nano app.py $ nano app.py from fastapi import FastAPI app = FastAPI() @app.get("/") def read_root(): return {"message": "Hello from Podman on Ubuntu 26.04"} from fastapi import FastAPI app = FastAPI() @app.get("/") def read_root(): return {"message": "Hello from Podman on Ubuntu 26.04"} from fastapi import FastAPI app = FastAPI() @app.get("/") def read_root(): return {"message": "Hello from Podman on Ubuntu 26.04"} $ -weight: 600;">sudo podman build -t example-fastapi-app . $ -weight: 600;">sudo podman build -t example-fastapi-app . $ -weight: 600;">sudo podman build -t example-fastapi-app . $ -weight: 600;">sudo podman run -d --name example-app -p 5000:5000 example-fastapi-app $ -weight: 600;">sudo podman run -d --name example-app -p 5000:5000 example-fastapi-app $ -weight: 600;">sudo podman run -d --name example-app -p 5000:5000 example-fastapi-app $ -weight: 500;">curl http://localhost:5000 $ -weight: 500;">curl http://localhost:5000 $ -weight: 500;">curl http://localhost:5000 - -d: run detached (background) - --name example-nginx: human-readable container name - -p 9090:80: map host port 9090 to container port 80 - Use podman compose for multi-container orchestration with Docker Compose files - Push images to Docker Hub or a private registry with podman push - Configure rootless Podman to run containers without -weight: 600;">sudo