abiosoft / colima

Container runtimes on macOS (and Linux) with minimal setup
MIT License
18.74k stars 381 forks source link

Error starting docker: error running [lima sudo docker info], output: "errors pretty printing info", err: "exit status 1" #482

Open ericschmar opened 1 year ago

ericschmar commented 1 year ago

Description

When running colima start --very-verbose, and only when adding insecure-hosts to the docker config, I get the following issue:

colima start --very-verbose                                                              
TRAC[0000] cmd ["limactl" "info"]
TRAC[0000] cmd ["limactl" "list" "colima" "--json"]
INFO[0000] starting colima
INFO[0000] runtime: docker
TRAC[0000] cmd ["limactl" "list" "colima" "--json"]
INFO[0000] preparing network ...                         context=vm
TRAC[0000] cmd ["/opt/homebrew/bin/colima" "daemon" "status" "default"]
TRAC[0000] cmd ["/opt/homebrew/bin/colima" "daemon" "stop" "default"]
TRAC[0001] cmd ["/opt/homebrew/bin/colima" "daemon" "start" "default" "--gvproxy" "--verbose"]
INFO[0001] starting ...                                  context=vm
TRAC[0001] cmd ["limactl" "start" "colima"]
> Using the existing instance "colima"
> [hostagent] Starting QEMU (hint: to watch the boot progress, see "/Users/schmar1/.lima/colima/serial.log")
> SSH Local Port: 53917
> [hostagent] Waiting for the essential requirement 1 of 5: "ssh"
> [hostagent] Waiting for the essential requirement 1 of 5: "ssh"
> [hostagent] Waiting for the essential requirement 1 of 5: "ssh"
> [hostagent] The essential requirement 1 of 5 is satisfied
> [hostagent] Waiting for the essential requirement 2 of 5: "user session is ready for ssh"
> [hostagent] The essential requirement 2 of 5 is satisfied
> [hostagent] Waiting for the essential requirement 3 of 5: "sshfs binary to be installed"
> [hostagent] The essential requirement 3 of 5 is satisfied
> [hostagent] Waiting for the essential requirement 4 of 5: "/etc/fuse.conf (/etc/fuse3.conf) to contain \"user_allow_other\""
> [hostagent] The essential requirement 4 of 5 is satisfied
> [hostagent] Waiting for the essential requirement 5 of 5: "the guest agent to be running"
> [hostagent] The essential requirement 5 of 5 is satisfied
> [hostagent] Mounting "/Users/schmar1" on "/Users/schmar1"
> [hostagent] Mounting "/tmp/colima" on "/tmp/colima"
> [hostagent] Waiting for the final requirement 1 of 1: "boot scripts must have finished"
> [hostagent] Forwarding "/var/run/docker.sock" (guest) to "/Users/schmar1/.colima/default/docker.sock" (host)
> [hostagent] Forwarding "/var/run/docker.sock" (guest) to "/Users/schmar1/.colima/docker.sock" (host)
> [hostagent] The final requirement 1 of 1 is satisfied
> READY. Run `limactl shell colima` to open the shell.
TRAC[0021] cmd ["lima" "sudo" "cat" "/etc/hosts"]
TRAC[0022] cmd ["lima" "sudo" "cat" "/etc/hosts"]
INFO[0022] provisioning ...                              context=docker
TRAC[0022] cmd ["lima" "sudo" "mkdir" "-p" "/etc/docker"]
TRAC[0022] cmd int ["lima" "sudo" "sh" "-c" "cat > /etc/docker/daemon.json"]
TRAC[0022] cmd ["docker" "context" "inspect" "colima"]
TRAC[0022] cmd ["docker" "context" "use" "colima"]
> colima
> Current context is now "colima"
INFO[0022] starting ...                                  context=docker
TRAC[0022] cmd ["lima" "sudo" "service" "docker" "start"]
>  * /var/log/docker.log: creating file
>  * /var/log/docker.log: correcting owner
>  * Starting Docker Daemon ... [ ok ]
TRAC[0022] cmd ["lima" "sudo" "docker" "info"]
TRAC[0027] cmd ["lima" "sudo" "docker" "info"]
TRAC[0032] cmd ["lima" "sudo" "docker" "info"]
TRAC[0037] cmd ["lima" "sudo" "docker" "info"]
TRAC[0042] cmd ["lima" "sudo" "docker" "info"]
TRAC[0047] cmd ["lima" "sudo" "docker" "info"]
TRAC[0052] cmd ["lima" "sudo" "docker" "info"]
TRAC[0057] cmd ["lima" "sudo" "docker" "info"]
TRAC[0063] cmd ["lima" "sudo" "docker" "info"]
TRAC[0068] cmd ["lima" "sudo" "docker" "info"]
TRAC[0073] cmd ["lima" "sudo" "docker" "info"]
TRAC[0078] cmd ["lima" "sudo" "docker" "info"]
TRAC[0083] cmd ["lima" "sudo" "docker" "info"]
FATA[0083] error starting docker: error running [lima sudo docker info], output: "errors pretty printing info", err: "exit status 1"

Version

Colima Version: 0.4.6 10377f3a20c2b0f7196ad5944264b69f048a3d40 Lima Version: unknown Qemu Version: unknown

Operating System

Reproduction Steps

1.colima template and add

docker:
  insecure-registries:
    - https://<registry_url>/v2/
  1. colima start fails

Expected behaviour

colima start should start correctly and docker should be able to pull from an "insecure" registry.

Additional context

In my case, the "insecure" registry is simply behind a company's man-in-the-middle cert, which is known and expected.

abiosoft commented 1 year ago

Do you get same behaviour when you remove the /v2/ suffix?

ericschmar commented 1 year ago

Do you get same behaviour when you remove the /v2/ suffix?

Same issue. Is the port required? In the examples, everything is specifying a port.

abiosoft commented 1 year ago

What I think is happening is that the docker daemon is failing to start when you set the insecure registries. Yeah, you should add the port number.

You should be able to see the logs by running colima ssh -- cat /var/log/docker.log.

Is the registry you're setting a local IP address or a remote one?

ericschmar commented 1 year ago

It's a remote registry.