compose-cli VS nerdctl

Compare compose-cli vs nerdctl and see what are their differences.

compose-cli

Easily run your Compose application to the cloud with compose-cli (by docker)

nerdctl

contaiNERD CTL - Docker-compatible CLI for containerd, with support for Compose, Rootless, eStargz, OCIcrypt, IPFS, ... (by containerd)
InfluxDB - Power Real-Time Data Analytics at Scale
Get real-time insights from all types of time series data with InfluxDB. Ingest, query, and analyze billions of data points in real-time with unbounded cardinality.
www.influxdata.com
featured
SaaSHub - Software Alternatives and Reviews
SaaSHub helps you find the best software and product alternatives
www.saashub.com
featured
compose-cli nerdctl
8 33
951 7,418
- 1.9%
5.6 9.6
5 months ago 5 days ago
Go Go
Apache License 2.0 Apache License 2.0
The number of mentions indicates the total number of mentions that we've tracked plus the number of user suggested alternatives.
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.

compose-cli

Posts with mentions or reviews of compose-cli. We have used some of these posts to build our list of alternatives and similar projects. The last one was on 2023-05-19.
  • Docker Compose's integration for ECS and ACI will be retired in November 2023
    2 projects | news.ycombinator.com | 19 May 2023
  • How can you add secrets to a dockerfile/image from AWS (Secret Manager)
    3 projects | /r/docker | 18 Nov 2022
  • Laravel Sail fails to build laravel.test
    1 project | /r/laravel | 5 Jun 2022
    ./vendor/bin/sail up [+] Building 3.1s (12/19) => [pgsql internal] load build definition from Dockerfile 0.0s => => transferring dockerfile: 53B 0.0s => [sail-8.1/app internal] load build definition from Dockerfile 0.0s => => transferring dockerfile: 2.90kB 0.0s => [pgsql internal] load .dockerignore 0.0s => => transferring context: 2B 0.0s => [sail-8.1/app internal] load .dockerignore 0.0s => => transferring context: 2B 0.0s => [pgsql internal] load metadata for docker.io/library/postgres:13 0.6s => [sail-8.1/app internal] load metadata for docker.io/library/ubuntu:22.04 0.6s => [sail-8.1/app 1/11] FROM docker.io/library/ubuntu:22.04@sha256:26c68657ccce2cb0a31b330cb0be2b5e108d467f641c62e13ab40cbec258c68d 0.0s => [sail-8.1/app internal] load build context 0.0s => => transferring context: 99B 0.0s => CACHED [sail-8.1/app 2/11] WORKDIR /var/www/html 0.0s => CACHED [sail-8.1/app 3/11] RUN ln -snf /usr/share/zoneinfo/UTC /etc/localtime && echo UTC > /etc/timezone 0.0s => ERROR [sail-8.1/app 4/11] RUN apt-get update && apt-get install -y gnupg gosu curl ca-certificates zip unzip git supervisor sqlite3 libcap2-b 2.3s => CANCELED [pgsql 1/1] FROM docker.io/library/postgres:13@sha256:a598b8679658e155020725d41601813cc8813429494514501e7f65f031774964 2.2s => => resolve docker.io/library/postgres:13@sha256:a598b8679658e155020725d41601813cc8813429494514501e7f65f031774964 0.0s => => sha256:bb3dc2277987facd2b87f470052aab8f2d711de7d6d1c3476e452ddc1b307b94 10.55kB / 10.55kB 0.0s => => sha256:3c2843bc312276d7727a3440a7859aba8e26d02b8e316fabd603f9ffde16ec64 4.41MB / 4.41MB 1.1s => => sha256:0f0e5d698cc992e9400095431b020bbcf3311b49c69b7c07894b0658c2fcb6b6 3.04kB / 3.04kB 0.0s => => sha256:42c077c10790d51b6f75c4eb895cbd4da37558f7215b39cbf64c46b288f89bda 6.29MB / 31.38MB 2.2s => => sha256:a598b8679658e155020725d41601813cc8813429494514501e7f65f031774964 1.86kB / 1.86kB 0.0s => => sha256:12e1d6a2dd60c450b07fb10db04f60661e405eda5a6c5465006e339de1435d07 1.80kB / 1.80kB 0.4s => => sha256:9ae1101c4068c2fd8afbad772d4ec67597e010675cd8a9034ab8b2f654eb54af 1.42MB / 1.42MB 1.4s => => sha256:fb05d2fd4701f1b1e68b35fbf314a6f8aa941d9220b4d1aa1ecbd27bf32ac22e 3.15MB / 8.05MB 2.2s => => sha256:9785a964a677ddc5a240e4c84288b8b03cb3245670f3e0d284e8af28a5538fb5 1.26MB / 1.26MB 2.1s => => sha256:16fc798b0e72ac0d79e975483867e0867888a0730438d55351d18d9d7ad38d43 0B / 149B 2.2s ------ > [sail-8.1/app 4/11] RUN apt-get update && apt-get install -y gnupg gosu curl ca-certificates zip unzip git supervisor sqlite3 libcap2-bin libpng-dev python2 && mkdir -p ~/.gnupg && chmod 600 ~/.gnupg && echo "disable-ipv6" >> ~/.gnupg/dirmngr.conf && echo "keyserver hkp://keyserver.ubuntu.com:80" >> ~/.gnupg/dirmngr.conf && gpg --recv-key 0x14aa40ec0831756756d7f66c4f4ea0aae5267a6c && gpg --export 0x14aa40ec0831756756d7f66c4f4ea0aae5267a6c > /usr/share/keyrings/ppa_ondrej_php.gpg && echo "deb [signed-by=/usr/share/keyrings/ppa_ondrej_php.gpg] https://ppa.launchpadcontent.net/ondrej/php/ubuntu jammy main" > /etc/apt/sources.list.d/ppa_ondrej_php.list && apt-get update && apt-get install -y php8.1-cli php8.1-dev php8.1-pgsql php8.1-sqlite3 php8.1-gd php8.1-curl php8.1-imap php8.1-mysql php8.1-mbstring php8.1-xml php8.1-zip php8.1-bcmath php8.1-soap php8.1-intl php8.1-readline php8.1-ldap php8.1-msgpack php8.1-igbinary php8.1-redis php8.1-swoole php8.1-memcached php8.1-pcov php8.1-xdebug && php -r "readfile('https://getcomposer.org/installer');" | php -- --install-dir=/usr/bin/ --filename=composer && curl -sLS https://deb.nodesource.com/setup_16.x | bash - && apt-get install -y nodejs && npm install -g npm && curl -sS https://dl.yarnpkg.com/debian/pubkey.gpg | gpg --dearmor | tee /usr/share/keyrings/yarn.gpg >/dev/null && echo "deb [signed-by=/usr/share/keyrings/yarn.gpg] https://dl.yarnpkg.com/debian/ stable main" > /etc/apt/sources.list.d/yarn.list && curl -sS https://www.postgresql.org/media/keys/ACCC4CF8.asc | gpg --dearmor | tee /usr/share/keyrings/pgdg.gpg >/dev/null && echo "deb [signed-by=/usr/share/keyrings/pgdg.gpg] http://apt.postgresql.org/pub/repos/apt jammy-pgdg main" > /etc/apt/sources.list.d/pgdg.list && apt-get update && apt-get install -y yarn && apt-get install -y mysql-client && apt-get install -y postgresql-client-14 && apt-get -y autoremove && apt-get clean && rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/*: #10 0.776 Get:1 http://security.ubuntu.com/ubuntu jammy-security InRelease [110 kB] #10 0.847 Get:2 http://archive.ubuntu.com/ubuntu jammy InRelease [270 kB] #10 1.252 Get:3 http://archive.ubuntu.com/ubuntu jammy-updates InRelease [109 kB] #10 1.305 Get:4 http://archive.ubuntu.com/ubuntu jammy-backports InRelease [99.8 kB] #10 1.392 Err:1 http://security.ubuntu.com/ubuntu jammy-security InRelease #10 1.392 The following signatures couldn't be verified because the public key is not available: NO_PUBKEY 871920D1991BC93C #10 1.691 Err:2 http://archive.ubuntu.com/ubuntu jammy InRelease #10 1.691 The following signatures couldn't be verified because the public key is not available: NO_PUBKEY 871920D1991BC93C #10 1.900 Err:3 http://archive.ubuntu.com/ubuntu jammy-updates InRelease #10 1.900 The following signatures couldn't be verified because the public key is not available: NO_PUBKEY 871920D1991BC93C #10 2.138 Err:4 http://archive.ubuntu.com/ubuntu jammy-backports InRelease #10 2.138 The following signatures couldn't be verified because the public key is not available: NO_PUBKEY 871920D1991BC93C #10 2.142 Reading package lists... #10 2.165 W: http://security.ubuntu.com/ubuntu/dists/jammy-security/InRelease: The key(s) in the keyring /etc/apt/trusted.gpg.d/ubuntu-keyring-2012-cdimage.gpg are ignored as the file is not readable by user '_apt' executing apt-key. #10 2.165 W: http://security.ubuntu.com/ubuntu/dists/jammy-security/InRelease: The key(s) in the keyring /etc/apt/trusted.gpg.d/ubuntu-keyring-2018-archive.gpg are ignored as the file is not readable by user '_apt' executing apt-key. #10 2.165 W: GPG error: http://security.ubuntu.com/ubuntu jammy-security InRelease: The following signatures couldn't be verified because the public key is not available: NO_PUBKEY 871920D1991BC93C #10 2.165 E: The repository 'http://security.ubuntu.com/ubuntu jammy-security InRelease' is not signed. #10 2.165 W: http://archive.ubuntu.com/ubuntu/dists/jammy/InRelease: The key(s) in the keyring /etc/apt/trusted.gpg.d/ubuntu-keyring-2012-cdimage.gpg are ignored as the file is not readable by user '_apt' executing apt-key. #10 2.165 W: http://archive.ubuntu.com/ubuntu/dists/jammy/InRelease: The key(s) in the keyring /etc/apt/trusted.gpg.d/ubuntu-keyring-2018-archive.gpg are ignored as the file is not readable by user '_apt' executing apt-key. #10 2.165 W: GPG error: http://archive.ubuntu.com/ubuntu jammy InRelease: The following signatures couldn't be verified because the public key is not available: NO_PUBKEY 871920D1991BC93C #10 2.165 E: The repository 'http://archive.ubuntu.com/ubuntu jammy InRelease' is not signed. #10 2.165 W: http://archive.ubuntu.com/ubuntu/dists/jammy-updates/InRelease: The key(s) in the keyring /etc/apt/trusted.gpg.d/ubuntu-keyring-2012-cdimage.gpg are ignored as the file is not readable by user '_apt' executing apt-key. #10 2.165 W: http://archive.ubuntu.com/ubuntu/dists/jammy-updates/InRelease: The key(s) in the keyring /etc/apt/trusted.gpg.d/ubuntu-keyring-2018-archive.gpg are ignored as the file is not readable by user '_apt' executing apt-key. #10 2.165 W: GPG error: http://archive.ubuntu.com/ubuntu jammy-updates InRelease: The following signatures couldn't be verified because the public key is not available: NO_PUBKEY 871920D1991BC93C #10 2.165 E: The repository 'http://archive.ubuntu.com/ubuntu jammy-updates InRelease' is not signed. #10 2.165 W: http://archive.ubuntu.com/ubuntu/dists/jammy-backports/InRelease: The key(s) in the keyring /etc/apt/trusted.gpg.d/ubuntu-keyring-2012-cdimage.gpg are ignored as the file is not readable by user '_apt' executing apt-key. #10 2.165 W: http://archive.ubuntu.com/ubuntu/dists/jammy-backports/InRelease: The key(s) in the keyring /etc/apt/trusted.gpg.d/ubuntu-keyring-2018-archive.gpg are ignored as the file is not readable by user '_apt' executing apt-key. #10 2.165 W: GPG error: http://archive.ubuntu.com/ubuntu jammy-backports InRelease: The following signatures couldn't be verified because the public key is not available: NO_PUBKEY 871920D1991BC93C #10 2.165 E: The repository 'http://archive.ubuntu.com/ubuntu jammy-backports InRelease' is not signed. #10 2.165 E: Problem executing scripts APT::Update::Post-Invoke 'rm -f /var/cache/apt/archives/*.deb /var/cache/apt/archives/partial/*.deb /var/cache/apt/*.bin || true' #10 2.165 E: Sub-process returned an error code ------ The new 'docker compose' command is currently experimental. To provide feedback or request new features please open issues at https://github.com/docker/compose-cli failed to solve: rpc error: code = Unknown desc = executor failed running [/bin/sh -c apt-get update && apt-get install -y gnupg gosu curl ca-certificates zip unzip git supervisor sqlite3 libcap2-bin libpng-dev python2 && mkdir -p ~/.gnupg && chmod 600 ~/.gnupg && echo "disable-ipv6" >> ~/.gnupg/dirmngr.conf && echo "keyserver hkp://keyserver.ubuntu.com:80" >> ~/.gnupg/dirmngr.conf && gpg --recv-key 0x14aa40ec0831756756d7f66c4f4ea0aae5267a6c && gpg --export 0x14aa40ec0831756756d7f66c4f4ea0aae5267a6c > /usr/share/keyrings/ppa_ondrej_php.gpg && echo "deb [signed-by=/usr/share/keyrings/ppa_ondrej_php.gpg] https://ppa.launchpadcontent.net/ondrej/php/ubuntu jammy main" > /etc/apt/sources.list.d/ppa_ondrej_php.list && apt-get update && apt-get install -y php8.1-cli php8.1-dev php8.1-pgsql php8.1-sqlite3 php8.1-gd php8.1-curl php8.1-imap php8.1-mysql php8.1-mbstring php8.1-xml php8.1-zip php8.1-bcmath php8.1-soap php8.1-intl php8.1-readline php8.1-ldap php8.1-msgpack php8.1-igbinary php8.1-redis php8.1-swoole php8.1-memcached php8.1-pcov php8.1-xdebug && php -r "readfile('https://getcomposer.org/installer');" | php -- --install-dir=/usr/bin/ --filename=composer && curl -sLS https://deb.nodesource.com/setup_$NODE_VERSION.x | bash - && apt-get install -y nodejs && npm install -g npm && curl -sS https://dl.yarnpkg.com/debian/pubkey.gpg | gpg --dearmor | tee /usr/share/keyrings/yarn.gpg >/dev/null && echo "deb [signed-by=/usr/share/keyrings/yarn.gpg] https://dl.yarnpkg.com/debian/ stable main" > /etc/apt/sources.list.d/yarn.list && curl -sS https://www.postgresql.org/media/keys/ACCC4CF8.asc | gpg --dearmor | tee /usr/share/keyrings/pgdg.gpg >/dev/null && echo "deb [signed-by=/usr/share/keyrings/pgdg.gpg] http://apt.postgresql.org/pub/repos/apt jammy-pgdg main" > /etc/apt/sources.list.d/pgdg.list && apt-get update && apt-get install -y yarn && apt-get install -y mysql-client && apt-get install -y postgresql-client-$POSTGRES_VERSION && apt-get -y autoremove && apt-get clean && rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/*]: exit code: 100
  • Podman 4.0.0
    15 projects | news.ycombinator.com | 22 Feb 2022
    `docker-compose` is different from `docker compose` (with a space in between words).

    The former will be replaced by the latter in the long run.

    https://github.com/docker/compose-cli/issues/901#issuecommen...

  • How can I make the Docker Compose ECS context use EC2 rather than Fargate?
    1 project | /r/aws | 17 Nov 2021
    here
  • Docker Compose V2 available on Fedora (Docker AWS ECS plugin) ?
    3 projects | /r/Fedora | 9 Oct 2021
  • Docker Compose vs Docker-Compose
    2 projects | /r/docker | 7 Apr 2021
    One of the goal of this new version is to be able to plug different backends like AWS ECS or Microsoft ACI. See https://github.com/docker/compose-cli. So you can docker compose and your stack is deployed on ECS instead of your local machine.
  • New Portainer CE 2.0.1 Release
    2 projects | /r/docker | 7 Jan 2021
    https://github.com/docker/compose-cli ?

nerdctl

Posts with mentions or reviews of nerdctl. We have used some of these posts to build our list of alternatives and similar projects. The last one was on 2024-04-16.
  • Colima k8s nix setup
    4 projects | dev.to | 16 Apr 2024
    What about the docker-cli? colima also ships with a docker-compatible cli to interact with containerd called nerdctl. We can execute the same docker cli commands like:
  • Nerdctl v2 Beta
    1 project | news.ycombinator.com | 1 Feb 2024
  • Nginx Unit – Universal web app server
    17 projects | news.ycombinator.com | 10 Sep 2023
    Using nerdctl: https://github.com/containerd/nerdctl

    I'd really disagree that compose files are somehow one-shot, or blindly modified. To the contrary, really, we have them checked in with the source code. Upon deployment to the cluster, the (running) services will be intelligently updated or replaced (in a rolling manner, causing zero downtime). LXC might be more elegant, but I have no idea what simple, file-based format I could use to let engineers describe the environment their app should run in without compose.

    I need something that even junior devs can start up with a single command, that can be placed in the VCS along with the code, and that will not require deep Linux knowledge to get running. Open for suggestions here, really.

  • Jenkins Agents On Kubernetes
    7 projects | dev.to | 4 Sep 2023
    Now since Kubernetes works off of containerd I'll be taking a different approach on handling container builds by using nerdctl and the buildkit that comes bundled with it. I'll do this on the amd64 control plane node since it's beefier than my Raspberry Pi workers for handling builds and build related services. Go ahead and download and unpack the latest nerdctl release as of writing (make sure to check the release page in case there's a new one):
  • Going through a Kubernetes training with autogenerated captions and about half are coming up like this.
    1 project | /r/kubernetes | 29 Jun 2023
    That's why nerdctl, their cli binary, is so well named.
  • Python + containerd? Who might be interested?
    2 projects | /r/Python | 27 Apr 2023
    Well, it is indeed a good option. However, containerd is a good alternative that is growing even among developers. Please see: https://github.com/containerd/nerdctl
  • How to own your own Docker Registry address
    5 projects | news.ycombinator.com | 17 Mar 2023
    Nerdctl/containerd has IPFS support :)

    https://github.com/containerd/nerdctl/blob/main/docs/ipfs.md

  • DockerHub replacement stratagy and options
    5 projects | /r/ipfs | 16 Mar 2023
    nerdctl supports IPFS for both image pulling and pushing, including encrypted images and eStargz lazy pulling. For building, the current method is a locally hosted translator so that the traditional pulls can be converted to work over IPFS. They even have docs on running it on k8s node, though if my reading is correct this isn't exactly a cloud native approach (running systemd services on each node...).
  • Docker's deleting Open Source images and here's what you need to know
    23 projects | news.ycombinator.com | 15 Mar 2023
  • Release v1.0.0 · containerd/nerdctl
    1 project | /r/devopsish | 21 Oct 2022

What are some alternatives?

When comparing compose-cli and nerdctl you can also consider the following projects:

podman-desktop-companion - Podman desktop companion

lima - Linux virtual machines, with a focus on running containers

cri-dockerd - dockerd as a compliant Container Runtime Interface for Kubernetes

podman-compose - a script to run docker-compose.yml using podman

Yacht - A web interface for managing docker containers with an emphasis on templating to provide 1 click deployments. Think of it like a decentralized app store for servers that anyone can make packages for.

kaniko - Build Container Images In Kubernetes

docker-ce - :warning: This repository is deprecated and will be archived (Docker CE itself is NOT deprecated) see the https://github.com/docker/docker-ce/blob/master/README.md :warning:

podman - Podman: A tool for managing OCI containers and pods.

fargate - Deploy serverless containers to the cloud from your command line

Moby - The Moby Project - a collaborative project for the container ecosystem to assemble container-based systems

ecsk - CLI tool that you can interactively call Amazon ECS APIs (run-task, execute-command, stop-task), copy files between ECS and local, and view logs.

k3s - Lightweight Kubernetes