Incus can't find Docker hello-world

❯ incus launch docker:hello-world --console --ephemeral
Launching the instance
Error: Failed instance creation: Failed getting remote image info: Image not found

I wonder if it’s because I have podman on my machine instead of docker.

Moving to its own topic to avoid having a full debugging session in the release post :slight_smile:

Incus doesn’t use Docker or Podman, it directly runs those containers itself like any other container.
The error you’re getting suggests some kind of issue with skopeo which we use to interact with the Docker Hub in this scenario.

Can you show incus remote list and then incus image info docker:hello-world --debug?

1 Like
~ on ☁️   (us-east-1)
❯ incus remote list
+-----------------+------------------------------------+---------------+-------------+--------+--------+--------+
|      NAME       |                URL                 |   PROTOCOL    |  AUTH TYPE  | PUBLIC | STATIC | GLOBAL |
+-----------------+------------------------------------+---------------+-------------+--------+--------+--------+
| docker          | https://docker.io                  | oci           | none        | YES    | NO     | NO     |
+-----------------+------------------------------------+---------------+-------------+--------+--------+--------+
| images          | https://images.linuxcontainers.org | simplestreams | none        | YES    | NO     | NO     |
+-----------------+------------------------------------+---------------+-------------+--------+--------+--------+
| local (current) | unix://                            | incus         | file access | NO     | YES    | NO     |
+-----------------+------------------------------------+---------------+-------------+--------+--------+--------+

~ on ☁️   (us-east-1)
❯ incus image info docker:hello-world --debug
DEBUG  [2024-07-12T15:50:08-04:00] Connecting to a remote OCI server             URL="https://docker.io"
Error: Image not found

Okay and that’s using the Zabbly stable Incus packages?

no using the nixpkgs package.

❯ incus version
Client version: 6.3
Server version: 6.3

Okay, then make sure your system has both skopeo and umoci` available to run as commands.

1 Like

That was the issue. I didn’t test the fix yet but strace attached to incusd shown that it didn’t find skopeo.

Thanks!

I’m running Incus 6.3 on Manjaro 24.0 with kernel 6.9.9-1. I needed to install both skopeo and umoci:

pamac info skopeo                                                                                                        root@x360mj 
Name                  : skopeo
Version               : 1.15.2-1
Description           : A command line utility for various operations on container images and image repositories.
URL                   : https://github.com/containers/skopeo
Licences              : Apache-2.0
Repository            : extra
Installed Size        : 26.9 MB
Groups                : --
Depends On            : gpgme device-mapper containers-common
Optional Dependencies : --
Provides              : --
Replaces              : --
Conflicts With        : --
Packager              : Frederik Schwan <freswa@archlinux.org>
Build Date            : Thu 11 Jul 2024 21:35:38
Validated By          : MD5 Sum  SHA-256 Sum  Signature

pamac install skopeo                                                                                                  
Preparing...
Synchronizing package databases...
Refreshing extra.db...                                                                                                                                     
Refreshing DEB_Arch_Extra.db...                                                                                                                            
Refreshing AUR...                                                                                                                                          
Warning: mhwd-nvidia: local (555.58.02-1) is newer than extra (550.100-1)                                                                                  
Warning: nano-syntax-highlighting: local (2020.10.10+10+g1aa64a8-2) is newer than extra (2020.10.10-2)
Warning: plymouth: local (24.004.60-9) is newer than extra (22.02.122-18)
Resolving dependencies...
Checking inter-conflicts...

To install (4):
  aardvark-dns       1.11.0-1    (Required By: skopeo)  extra  865.2 kB
  netavark           1.11.0-2    (Required By: skopeo)  extra  3.7 MB
  containers-common  1:0.59.2-1  (Required By: skopeo)  extra  110.9 kB
  skopeo             1.15.2-1                           extra  8.4 MB

Total download size: 13.1 MB
Total installed size: 43.5 MB

Apply transaction ? [y/N] y
Download of skopeo (1.15.2-1) started                                                                                                                      
Download of netavark (1.11.0-2) started                                                                                                                    
Download of aardvark-dns (1.11.0-1) started                                                                                                                
Download of containers-common (1:0.59.2-1) started                                                                                                         
Download of containers-common (1:0.59.2-1) finished                                                                                                        
Download of aardvark-dns (1.11.0-1) finished                                                                                                               
Download of netavark (1.11.0-2) finished                                                                                                                   
Download of skopeo (1.15.2-1) finished                                                                                                                     
Checking keyring...                                                                                                                                   [4/4]
Checking integrity...                                                                                                                                 [4/4]
Loading package files...                                                                                                                              [4/4]
Checking file conflicts...                                                                                                                            [4/4]
Checking available disc space...                                                                                                                      [4/4]
Installing aardvark-dns (1.11.0-1)...                                                                                                                 [1/4]
Installing netavark (1.11.0-2)...                                                                                                                     [2/4]
Installing containers-common (1:0.59.2-1)...                                                                                                          [3/4]
Installing skopeo (1.15.2-1)...                                                                                                                       [4/4]
Running post-transaction hooks...
Reloading system manager configuration...                                                                                                             [1/4]
Creating temporary files...                                                                                                                           [2/4]
Arming ConditionNeedsUpdate...                                                                                                                        [3/4]
Refreshing PackageKit...                                                                                                                              [4/4]
Transaction successfully finished.
incus launch docker:mysql mysql                                                                                       
Launching mysql
Error: Failed instance creation: Failed to run: umoci unpack --keep-dirlinks --image /tmp/incus-oci-3715457262/oci /tmp/incus-oci-3715457262/image: exec: "umoci": executable file not found in $PATH
pamac search umoci                                                                                           
umoci  0.4.7-2                                                                                                                                        extra
    Umoci Modifies Open Container Images
pamac install umoci                                                                                                      
Preparing...
Synchronizing package databases...
Refreshing DEB_Arch_Extra.db...                                                                                                                            
Warning: mhwd-nvidia: local (555.58.02-1) is newer than extra (550.100-1)                                                                                  
Warning: nano-syntax-highlighting: local (2020.10.10+10+g1aa64a8-2) is newer than extra (2020.10.10-2)
Warning: plymouth: local (24.004.60-9) is newer than extra (22.02.122-18)
Resolving dependencies...
Checking inter-conflicts...

To install (1):
  umoci  0.4.7-2    extra  2.1 MB

Total download size: 2.1 MB
Total installed size: 6.7 MB

Apply transaction ? [y/N] y
Download of umoci (0.4.7-2) started                                                                                                                        
Download of umoci (0.4.7-2) finished                                                                                                                       
Checking keyring...                                                                                                                                   [1/1]
Checking integrity...                                                                                                                                 [1/1]
Loading package files...                                                                                                                              [1/1]
Checking file conflicts...                                                                                                                            [1/1]
Checking available disc space...                                                                                                                      [1/1]
Installing umoci (0.4.7-2)...                                                                                                                         [1/1]
Running post-transaction hooks...
Arming ConditionNeedsUpdate...                                                                                                                        [1/2]
Refreshing PackageKit...                                                                                                                              [2/2]
Transaction successfully finished.
 incus launch docker:mysql mysql                                                                                 
Launching mysql
incus launch docker:hello-world --console --ephemeral                                                           
Launching the instance
Instance name is: fitting-cicada                     

Hello from Docker!
This message shows that your installation appears to be working correctly.

To generate this message, Docker took the following steps:
 1. The Docker client contacted the Docker daemon.
 2. The Docker daemon pulled the "hello-world" image from the Docker Hub.
    (amd64)
 3. The Docker daemon created a new container from that image which runs the
    executable that produces the output you are currently reading.
 4. The Docker daemon streamed that output to the Docker client, which sent it
    to your terminal.

To try something more ambitious, you can run an Ubuntu container with:
 $ docker run -it ubuntu bash

Share images, automate workflows, and more with a free Docker ID:
 https://hub.docker.com/

For more examples and ideas, visit:
 https://docs.docker.com/get-started/
incus image list                                                                                                  
+-------+--------------+--------+-------------------------------------+--------------+-----------+-----------+----------------------+
| ALIAS | FINGERPRINT  | PUBLIC |             DESCRIPTION             | ARCHITECTURE |   TYPE    |   SIZE    |     UPLOAD DATE      |
+-------+--------------+--------+-------------------------------------+--------------+-----------+-----------+----------------------+
|       | 72a37ddc9f83 | no     | docker.io/library/mysql (OCI)       | x86_64       | CONTAINER | 162.38MiB | 2024/07/13 20:45 IST |
+-------+--------------+--------+-------------------------------------+--------------+-----------+-----------+----------------------+
|       | 1408fec50309 | no     | docker.io/library/hello-world (OCI) | x86_64       | CONTAINER | 0.00MiB   | 2024/07/13 20:46 IST |
+-------+--------------+--------+-------------------------------------+--------------+-----------+-----------+----------------------+

FTR: Today I got the same “Image not found” error, while skopeo and umoci are installed.

Turns out, if I change the remote with incus remote add docker https://docker.io/ --protocol=oci --public it works.

Maybe this is helpful for someone.

2 Likes