Skip to content

Instantly share code, notes, and snippets.

@slykar
Last active February 23, 2024 04:45
Star You must be signed in to star a gist
Save slykar/e92732be9bf81a71e08068245656d70e to your computer and use it in GitHub Desktop.
Docker and Docker Compose on AMD OSX Hackintosh via Docker Machine

Introduction

Docker.app will complain about incompatible processor, so we will use Docker Machine.

Instalation

Download Docker for Mac (Docker.app). It contains some binaries that are necessary.

brew install virtualbox docker-machine

# Normally, those links are created automatically by running Docker.app,
# but it quits on us too early, so we need to do this manually
ln -s "/Applications/Docker.app/Contents//Resources/bin/docker-compose" /usr/local/bin/docker-compose
ln -s "/Applications/Docker.app/Contents//Resources/bin/docker-credential-desktop" /usr/local/bin/docker-credential-desktop
ln -s "/Applications/Docker.app/Contents//Resources/bin/docker-credential-osxkeychain" /usr/local/bin/docker-credential-osxkeychain

You can also use brew to install docker and doccker-compose and it should work without linking above.

Running

docker-machine create
eval $(docker-machine env)
docker run hello-world
docker-compose up
@phtmgt
Copy link

phtmgt commented Oct 14, 2023

@phtmgt @dheerajv4855
Have you guys tried running an android emulator using Virtual Box?

I have not tried. If you find a way, though, please share, as it would be useful.

@coderpradp
Copy link

coderpradp commented Oct 16, 2023

@johnalbert-dot-py did you manage to work it out? I'm in similar situation as you were.

Disabled KEXT signing in SIP
❯
./csrstat
csrstat v2.0 Copyright (c) 2015-2017 by Pike R. Alpha, 2017-2023 by Joss Brown
System Integrity Protection status: enabled (0x00000003) (Custom Configuration).

Current Configuration:
	Apple Internal                  disabled
	Kext Signing                    disabled
	Debugging Restrictions          enabled
	Filesystem Protections          disabled
	Kernel Debugging Restrictions   enabled
	DTrace Restrictions             enabled
	NVRAM Protections               enabled
	Device Configuration            disabled
	BaseSystem Verification         enabled
	Unapproved Kexts Restrictions   enabled
	Executable Policy               enabled

Boot into Recovery Mode and modify with: 'csrutil enable [arguments]'
<Note: some flags are not accessible using the csrutil CLI.>

This is an unsupported configuration, likely to break in the future and leave your machine in an unknown state.
❯
csrutil status
System Integrity Protection status: unknown (Custom Configuration).

Configuration:
	Apple Internal: disabled
	Kext Signing: disabled
	Filesystem Protections: disabled
	Debugging Restrictions: enabled
	DTrace Restrictions: enabled
	NVRAM Protections: enabled
	BaseSystem Verification: enabled

This is an unsupported configuration, likely to break in the future and leave your machine in an unknown state.
Installed VB 6.1.40
❯
VBoxManage --version
6.1.40r154048

When running minikube start --driver=virtualbox --keep-context I get following error:

❯
minikube start --driver=virtualbox --keep-context
😄  minikube v1.31.2 on Darwin 14.0
✨  Using the virtualbox driver based on user configuration
❗  Due to changes in macOS 13+ minikube doesn't currently support VirtualBox. You can use alternative drivers such as docker or hyperkit.
    https://minikube.sigs.k8s.io/docs/drivers/docker/
    https://minikube.sigs.k8s.io/docs/drivers/hyperkit/

    For more details on the issue see: https://github.com/kubernetes/minikube/issues/15274

👍  Starting control plane node minikube in cluster minikube
🔥  Creating virtualbox VM (CPUs=2, Memory=4000MB, Disk=20000MB) ...
🔥  Deleting "minikube" in virtualbox ...
🤦  StartHost failed, but will try again: creating host: create: creating: Error setting up host only network on machine start: The host-only adapter we just created is not visible. This is a well known VirtualBox bug. You might want to uninstall it and reinstall at least version 5.0.12 that is is supposed to fix this issue
🔥  Creating virtualbox VM (CPUs=2, Memory=4000MB, Disk=20000MB) ...
😿  Failed to start virtualbox VM. Running "minikube delete" may fix it: creating host: create: creating: Error setting up host only network on machine start: The host-only adapter we just created is not visible. This is a well known VirtualBox bug. You might want to uninstall it and reinstall at least version 5.0.12 that is is supposed to fix this issue

❌  Exiting due to IF_VBOX_NOT_VISIBLE: Failed to start host: creating host: create: creating: Error setting up host only network on machine start: The host-only adapter we just created is not visible. This is a well known VirtualBox bug. You might want to uninstall it and reinstall at least version 5.0.12 that is is supposed to fix this issue
💡  Suggestion: Reboot to complete VirtualBox installation, verify that VirtualBox is not blocked by your system, and/or use another hypervisor
📘  Documentation: https://stackoverflow.com/questions/52277019/how-to-fix-vm-issue-with-minikube-start
🍿  Related issues:
    ▪ https://github.com/kubernetes/minikube/issues/3614
    ▪ https://github.com/kubernetes/minikube/issues/4222
    ▪ https://github.com/kubernetes/minikube/issues/5817

@coderpradp
Copy link

I managed to solve this issue by clicking Allow button under Privacy & Security section in Settings after the installation of Virtualbox6 and restarting.

After that minikube start --driver=virtualbox --keep-context without issue

@adesheddie
Copy link

@phtmgt @dheerajv4855
Have you guys tried running an android emulator using Virtual Box?

I have not tried. If you find a way, though, please share, as it would be useful.

I actually managed to install VB6.xxx something version. The performance was at par, really good.
But it was full of bugs, whenever I tried to launch a VM, the host PC would just freeze itself. I had to restart the PC, then launch the VM again, worked fine.
But when I stop the VM, and relaunch, it would freeze the host PC again.

In short, Ryzentosh is really bad for virtualisation.

@namchuai
Copy link

Is there anyone have experience with Sonoma? Does this method still working?

@AlphaNecron
Copy link

Just figured out a way to load VBox@6 kexts on Ventura+ without SIP off. Just reboot to recovery and execute spctl kext-consent add VB5E2TV963, reboot and voila, the kext would be able to load without issues.

@evenlee
Copy link

evenlee commented Jan 6, 2024

@AlphaNecron thanks for the update, i tried from 12.6.8 to 13.6.3, virtual box cannot start correctly, i also tried re-installe virtual box, still no luck, with the settings, were you able to start a windows virtual machine or just linux vm for docker?

@AlphaNecron
Copy link

@AlphaNecron thanks for the update, i tried from 12.6.8 to 13.6.3, virtual box cannot start correctly, i also tried re-installe virtual box, still no luck, with the settings, were you able to start a windows virtual machine or just linux vm for docker?

You must allow the kext manually in Settings > Privacy and Settings, this hack only does disable signature check.

@evenlee
Copy link

evenlee commented Jan 6, 2024

@AlphaNecron thanks for the update, i tried from 12.6.8 to 13.6.3, virtual box cannot start correctly, i also tried re-installe virtual box, still no luck, with the settings, were you able to start a windows virtual machine or just linux vm for docker?

You must allow the kext manually in Settings > Privacy and Settings, this hack only does disable signature check.

hmm, I do allow in the privacy page and did a restart, still cannot run minikube, can you create a windows vm in virtualbox 6 and run it without error?

@AlphaNecron
Copy link

Do kextstat | grep VBox, if VBox kexts are loaded properly, they should be shown there.

@mawanx
Copy link

mawanx commented Jan 12, 2024

Do kextstat | grep VBox, if VBox kexts are loaded properly, they should be shown there.

Is it because apple only allow their own hypervisor, and it's disguised as wrapper within VirtualBox? Also facing this problem (MachineWrap) info thingy when using Virtualbox on ventura, but I'll try to reinstall the older version again...

@AlphaNecron
Copy link

VBox 6 does not use AppleHV under the hood so it should be able to run without issues. Double check whether the kexts are loaded properly though.

@mawanx
Copy link

mawanx commented Jan 12, 2024

@evenlee yes, I can

Thanks for confirming, it's wired I cannot run any vm even minikube vm by start button in VM window, but I can use 'minikube start' to start the minikube vm. my value to disable sip is 6F020000(I also tried many values, same result, but this one seems perfect), and i am just upgraded to 13.3 from 12.6. image

Hi @AlphaNecron, what I'm trying to say is is that I also face this problem, Installed virtualbox 6.1.46a if I'm not mistaken and got error like that...

@AlphaNecron
Copy link

Haven't tested with Windows, minikube runs flawlessly anyways.

@mawanx
Copy link

mawanx commented Jan 12, 2024

Haven't tested with Windows, minikube runs flawlessly anyways.

What macOS version you're on right now?

@AlphaNecron
Copy link

Using Sonoma for the time being, should work on other versions.

@mawanx
Copy link

mawanx commented Jan 12, 2024

Okayy, I'll try again. Thanks for your info

@johnalbert-dot-py
Copy link

Is there any proper alternative for using docker on ryzentosh? (It's been months since the last time I use hacktintosh lol)

@AlphaNecron
Copy link

Is there any proper alternative for using docker on ryzentosh? (It's been months since the last time I use hacktintosh lol)

Wdym by "alternative", another app similar to Docker that works properly on Ryzentosh or something?

@dheerajv4855
Copy link

dheerajv4855 commented Feb 17, 2024 via email

@AlphaNecron
Copy link

do not waste time in making it work in ryzentosh, no alternative will work either use linux for docker and mac for other work with dual boot or switch to intel processor at all

On Sat, Feb 17, 2024 at 2:58 PM Nguyen Thanh Quang @.> wrote: @.* commented on this gist. ------------------------------ Is there any proper alternative for using docker on ryzentosh? (It's been months since the last time I use hacktintosh lol) Wdym by "alternative", another app similar to Docker that works properly on Ryzentosh or something? — Reply to this email directly, view it on GitHub https://gist.github.com/slykar/e92732be9bf81a71e08068245656d70e#gistcomment-4908770 or unsubscribe https://github.com/notifications/unsubscribe-auth/ALSHMCYAZG6SMZNYSVBCBPLYUBZ4JBFKMF2HI4TJMJ2XIZLTSKBKK5TBNR2WLJDUOJ2WLJDOMFWWLO3UNBZGKYLEL5YGC4TUNFRWS4DBNZ2F6YLDORUXM2LUPGBKK5TBNR2WLJDHNFZXJJDOMFWWLK3UNBZGKYLEL52HS4DFVRZXKYTKMVRXIX3UPFYGLK2HNFZXIQ3PNVWWK3TUUZ2G64DJMNZZDAVEOR4XAZNEM5UXG5FFOZQWY5LFVEYTAMBQGY4TIMZQU52HE2LHM5SXFJTDOJSWC5DF . You are receiving this email because you commented on the thread. Triage notifications on the go with GitHub Mobile for iOS https://apps.apple.com/app/apple-store/id1477376905?ct=notification-email&mt=8&pt=524675 or Android https://play.google.com/store/apps/details?id=com.github.android&referrer=utm_campaign%3Dnotification-email%26utm_medium%3Demail%26utm_source%3Dgithub .

Or use another OS, or even host Docker on another machine 👀 Much better.

@AlphaNecron
Copy link

Intel hackintoshes for laptops are retiring, there's absolutely no point in getting 2020 rigs just to install Hackintosh lol. Recent new-gen desktop ones also pose performance issues due to asshole CPU architecture aka "bigLITTLE" as well as lack of proper scheduling driver though. Apple is gonna put an end to x86 MacOS so better forget about Hackintoshing and get a real Mac instead of wasting time on this shit lol.

@evenlee
Copy link

evenlee commented Feb 19, 2024

@johnalbert-dot-py per my experiences, you can stay on 12.0(Monterey) to use virtual box and Minikube, both docker and vm still work on it, or switch to other OS as others suggested, no need to consume any time on a solution as Hacktiontosh is retiring even in intel build. in my M1 Max macbook, I can say the experience is better now as you can use orbstack to run both arm and x64 docker images.

@AlphaNecron
Copy link

@johnalbert-dot-py per my experiences, you can stay on 12.0(Monterey) to use virtual box and Minikube, both docker and vm still work on it, or switch to other OS as others suggested, no need to consume any time on a solution as Hacktiontosh is retiring even in intel build. in my M1 Max macbook, I can say the experience is better now as you can use orbstack to run both arm and x64 docker images.

In fact, you can still use Minikube on Ventura and Sonoma, however, the performance is a bit uhhh as the only provider for Minikube on Ryzentosh is VirtualBox cuz AppleHV is not supported at all lol.

@evenlee
Copy link

evenlee commented Feb 23, 2024

@AlphaNecron can you run windows vm without error on Sonama/Ventura with virtual box 6.x?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment