Docker-Containers.nvim

A Neovim plugin for managing Docker containers, images, volumes, and networks directly from your editor.

NeovimLuaDocker

A Neovim plugin for managing Docker containers, images, volumes, and networks directly from your editor. Built asynchronously to prevent UI blocking.

Features

  • Container Management: Start, stop, and restart Docker containers.
  • Multi-Resource View: Browse containers, images, volumes, and networks.
  • Docker Compose Support: Automatically groups containers by compose project.
  • Async Operations: Non-blocking container operations.

Requirements

  • Neovim 0.12 or higher
  • Docker installed and running

Installation

Using lazy.nvim

{
  "HyperAfnan/docker-containers.nvim",
  dependencies = {
    "akinsho/toggleterm.nvim"
  },
  config = function()
    require("docker-containers").setup()
  end
}

Using packer.nvim

use {
  'HyperAfnan/docker-containers.nvim',
  requires = { 'akinsho/toggleterm.nvim' },
  config = function()
    require("docker-containers").setup()
  end
}

Using vim-plug

Plug 'HyperAfnan/docker-containers.nvim'
Plug 'akinsho/toggleterm.nvim'

Then in your init.lua:

require("docker-containers").setup()

Usage

Run the following command in Neovim:

:DockerContainers

Configuration

You can customize the plugin by passing options to the setup function:

require("docker-containers").setup({
  position = "right", -- position of the window: left | right
  term = {
    direction = "horizontal" -- terminal layout: tabs | horizontal | vertical | float
  },
  maps = {
    collapse = "<space>",
    restart = "r",
    down = "d",
    start = "s",
    close = "q",
    help = "?",
  },
  icons = {
    container_running = "",
    container_stopped = "",
    project = "",
    expanded = "",
    collapsed = "",
  }
})

Acknowledgments