Skip to main content

Docker Runtime Registration

Register a Docker or Podman runtime in KIOPS to manage containers from the web UI. Like K8s, registration follows one of two flows: Install New Runtime or Connect Existing Runtime (Import). Docker and Podman are handled through the same modal.

Runtime Environment

Why Register a Docker Runtime?

  • View container status at a glance
  • Perform operations such as container restart with a single click
  • Check real-time logs and trace issues
  • Inspect container internals through remote command execution
Docker vs Podman

Both Docker and Podman are container runtimes. Podman is a security-focused alternative that runs without a daemon, and KIOPS supports both. The registration flow and modal are identical.

Prerequisites

  • The target device must be registered in KIOPS first.
  • For new installation, KIOPS installs Docker or Podman via SSH.
  • For import, the target device must already have Docker or Podman installed.
  • The SSH account must have sudo permission or access to the Docker socket.

Entry Point: Add Runtime Environment

Docker/Podman runtimes also do not have a dedicated "Add Docker" button - they start from the same shared entry point as K8s.

  1. Click [Runtime Environment] in the left menu.
  2. Click the Add Runtime Environment button in the top right to open the Add Runtime Environment modal (AddInfraSelectModal).
  3. Choose one of the two flows:
The type selector is a Select dropdown, not a radio group

The Environment Type field in the modal is a unified Select dropdown that lists K8s/Docker/Podman together. A "type radio" is not used.

The two modals render the option text differently:

  • AddInfraModal (new install): Select options render the raw value, shown as kubernetes / docker / podman (lowercase).
  • ImportInfraModal (import): Shown with Korean labels "Kubernetes / Docker / Podman".

New Install Flow

KIOPS SSHes into a registered device and installs Docker or Podman directly.

Step 1: Input

  • Environment Name: Identifier for the runtime (e.g., dev-docker, prod-container-host)
  • Environment Type (Select): Pick Docker or Podman.
  • Server Device (TreeSelect): Pick a device from the tree.
    • Devices that already have a Docker/Podman runtime installed are automatically disabled and cannot be selected.
  • Description (Optional): Free-form memo

Step 2: SSH Path Preview

If the selected device has a parent (jump server), the modal renders the hop chain as arrows (gateway → jump → target) at the bottom. Fix the device registration first if the path is not what you expect.

Step 3: Register

Clicking Register triggers KIOPS to SSH into the device, install Docker or Podman, and register the runtime. Progress is shown in the modal in real time.


Import Flow

Register a device that already has Docker or Podman installed as a runtime.

Step 1: Select Environment Type

In the import modal, the Environment Type Select option labels visible to users are "Kubernetes / Docker / Podman" (Korean labels in the UI). The values external_docker, external_podman, and external_kubernetes are backend internal identifiers.

  • Docker: An existing Docker host (internal identifier external_docker)
  • Podman: An existing Podman host (internal identifier external_podman)
  • Kubernetes: An existing K8s cluster (see the K8s registration guide)

Step 2: Provide Connection Path

  • Use Select a registered device or Enter SSH hops directly.

Step 3: Import

  • Click Import. KIOPS connects via SSH, runs docker version or podman version, and auto-detects containers, images, networks, etc.
  • There is no separate "Test Connection" button (validation happens during import).

Step 4: Register

When validation succeeds, the runtime appears in the list. Docker and Podman share the same operations screen (Overview / Runtime Environment / Operations / Real-time Monitoring) after registration.


Runtime Features

The following features are available on registered Docker/Podman runtimes:

  • Image list: View container images stored on the host
  • Container management: Restart containers (from the list or detail view)
  • Log viewing: Real-time container logs
  • Remote command execution: Inspect container internals (one-shot command execution, not an interactive shell)
Using Log Viewing

When a container has issues, the log viewing feature lets you identify the cause immediately without terminal access. Real-time log streaming is also supported.


Troubleshooting

Docker Access Denied (permission denied)

permission denied while trying to connect to Docker

Cause: The SSH user does not have permission to access the Docker socket.

Solution:

  1. Add the user to the docker group
sudo usermod -aG docker $USER
  1. Apply changes (choose one)
# Option 1: Apply immediately in current session
newgrp docker

# Option 2: Log out and log back in
  1. Verify permissions are applied.
docker ps
Security Note

Adding a user to the docker group grants that user root-level privileges. In production environments, only grant permissions to users who absolutely need them.

Docker Not Installed (command not found)

docker: command not found

Cause: Docker is not installed on the target server.

The new install flow installs Docker for you automatically. If you need to install Docker manually, use the commands below.

# Docker official install script (Ubuntu/Debian/CentOS)
curl -fsSL https://get.docker.com | sh

# Start Docker service after installation
sudo systemctl start docker

# Enable auto-start on boot
sudo systemctl enable docker

# Verify installation
docker --version

Next Steps

Docker/Podman runtime registration is complete! You're now ready to register and deploy services.