Alpine docker-host challenge #3277
Replies: 3 comments 20 replies
-
It is probably easier to start with Lima's Alpine as the base, and it has a configuration with docker as well: https://github.com/lima-vm/alpine-lima Here is such an "edition" that I made before: Basically it bundles the needed apk with the ISO But in the end it wasn't really worth it, since you could just tl;dr |
Beta Was this translation helpful? Give feedback.
-
I can't reproduce the first two items, so you might want to open a bug report if it does not work for you.
The other ones seem to be more known. |
Beta Was this translation helpful? Give feedback.
-
You can use template expressions in provisioning scripts, so it might be good to use
I don't think the
This was a bug in Lima that has been fixed in #3279. You no longer need to install qemu-binfmt if you want to use Rosetta (using Rosetta will just disable it again). |
Beta Was this translation helpful? Give feedback.
-
I chose Lima to build my custom, light & fast Docker Desktop alternative with Alpine Linux as my docker-host VM’s OS (vm-host: macOS 15.3 @ M2). It seemed to be a pleasing warmup before my in-depth Docker learning and further experiments. Unfortunately, I encountered several irritating problems:
[hostagent] Waiting for the essential requirement 2 of 4: "user session is ready for ssh"
(for QUEMU, “2 of 2” for VZ). Despite of the error, machine becomes available, but it ruins the user experience. My fix: Adding a provisioning script (provision:
section) seems to help, but why?wheel
group by default, so one cannot execute commands with elevated privileges. My fix: the group membership may be added manually in the provisioning script.passwd
as there’s no password. Minor issue. My fix:sudo passwd <user>
does not prompt for the current, non-existent password.docker
group, thus cannot connect to the docker daemon (access it's socket). This cannot be fixed by the provisioning script as by its execution the user session has already been started; the association, although visible in/etc/group
, doesn’t take effect. Manual fix:sudo reboot
exec format error
on both QEMU and VZ machine. My fix: Theqemu-x86_64
andqemu-openrc
packages may be installed, and theqemu-binfmt
service started manually (thus the binary format is registered in the kernel).virtio2
(vda
, local mounts) andvirtio3
(vdb
, cidata). How can I check if Lima has exposed the Rosetta share to the VM correctly? May I choose to use Rosetta or QUEMU asamd64
handler through the configuration?tcpproxy: for incoming conn 127.0.0.1:50635, error dialing "192.168.5.15:22": connect tcp 192.168.5.15:22: connection was refused
bypasses JSON formatting, thus theha.stderr.log
cannot by parsed withjq
without additional filtering. Small thing, but annoying.Stopping udp proxy
entries in the log, and they take up most of it over time! Does it have to happen so frequently? And what's the reason for it?As you can see, I found a way to finally got close to my dream result, but I believe it could be achieved much easier. Maybe I haven't understand some design assumptions, or maybe a few things could be improved in Lima? I'm even eager to contribute some solutions myself, but I have to become a successful power user first :)
I'm also aware of the fact, that there are docker-enabled VM templates build on Ubuntu, but I got used to using Alpine in the cloud and I'd like to experiment with it on my desktop as well. Besides, It's Linux – everything is possible! Right?
I will be grateful for any tips, improvements or suggestions for my possible contributions.
My current VM configuration:
Beta Was this translation helpful? Give feedback.
All reactions