3 ms·
I jusst used Docker for the first time - I can't believe I didn't know about it before. I thought the only way to run Linux on macOS was using some sort of Virt
by brcmthrowaway 2y ago
I jusst used Docker for the first time - I can't believe I didn't know about it before. I thought the only way to run Linux on macOS was using some sort of Virtualbox-esque solution.
I just don't like how the containers are ephemeral.. I want to use it like a VM.
- maccard 2y agoYou can use volumes for that.
- dijksterhuis 2y ago> I jusst used Docker for the first time > I just don't like how the containers are ephemeral.. I want to use it like a VM I suspect you’ve just pulled some images and run them locally? If you want your own custom image to run whenever you want for whichever purpose, take a look into building your own containers with a Dockerfile https://docs.docker.com/get-started/docker-concepts/building-images/writing-a-dockerfile/ https://docs.docker.com/get-started/docker-concepts/building... That gets you the base “everything I need is already installed when I start it”. After that it’s volume mappings for accessing local data within the running container https://docs.docker.com/engine/storage/volumes/ https://docs.docker.com/engine/storage/volumes/
- brcmthrowaway 2y agoWhat if I used an bare image, installed some stuff and can't remember what all I did to get it in a usable state for my application. I wish it could automatically create a Dockerfile for me.
- wahnfrieden 2y agoyou can but it's not recommended because it's basically impossible to audit changes made and is unrepeatable https://stackoverflow.com/a/46917993/89373 https://stackoverflow.com/a/46917993/89373
- ptrrrrrrppr 2y ago``` tail .zsh_history > setup.sh echo COPY setup.sh >> Dockerfile echo RUN ./setup.sh >> Dockerfile ```
- dijksterhuis 2y agoSee ‘docker container commit’ [0] > Create a new image from a [running] container's changes You might then be able to run ‘docker image history’ [1] to get the changes, which you might be able to write into your own Dockerfile [2] but I’ve never tested this workflow because the best practice is just to write a Dockerfile first The tool (docker) was designed in a specific way, learn how to use the tool’s workflow instead of wishing for a different workflow and you’ll have a much easier time. [0]: https://docs.docker.com/reference/cli/docker/container/commit/ https://docs.docker.com/reference/cli/docker/container/commi... [1]: https://docs.docker.com/reference/cli/docker/image/history/ https://docs.docker.com/reference/cli/docker/image/history/ [2]: can’t remember how docker tracks internal container file system changes and whether the history command will pick them up Edit — see sibling comment https://news.ycombinator.com/item?id=41371867 https://news.ycombinator.com/item?id=41371867 — basically… learn to build a dockerfile (they’re very simple and easy once you know how).
- drgo 2y agoThere are several solutions for running LINUX on macOS https://mac.getutm.app/ https://mac.getutm.app/ https://tart.run/ https://tart.run/ https://medium.com/@salah.mahmud/quick-introduction-into-using-tart-for-virtualizing-a-linux-machine-on-a-macos-system-with-apple-88310d6c8cbc https://medium.com/@salah.mahmud/quick-introduction-into-usi...
- fock 2y agojust mount the whole root fs as a volume? or use bwrap or crun or runc to run your OCI bundle. Sadly the latter tools have some warts for this purpose...
- kcb 2y agoContainers aren't ephemeral unless you want by default though. Are you passing in --rm on run?
- cstrahan 2y ago> I thought the only way to run Linux on macOS was using some sort of Virtualbox-esque solution. On macOS, Docker uses HyperKit (which is a hypervisor built on top of macOS's Hypervisor.framework) to run a Linux virtual machine behind the scenes, so your containers actually are running in a VM, even if you don't (usually) interact directly with that VM.