Provide a method to start Docker for MAC with LCFS
jjobi opened this issue · comments
Docker runs in a Linux VM on MAC. This VM could be accessed by running the following command:
"screen ~/Library/Containers/com.docker.docker/Data/com.docker.driver.amd64-linux/tty"
It should be possible to install LCFS in that VM and start docker with LCFS as graphdriver. Provide a method to automate this for end user.
To clarify, the convenience script for lcfs
does not run on VM because bash
is not available.
Also, the documentation states that one must "Chose a device to provide to lcfs. lcfs requires a block device (you can also use a file, but this is not recommended due to performance reasons)". My question is, is the expected performance of lcfs
using a file device still expected to be higher than overlay2
? If so, the resolution of this issue should contain some wording which states that.
Ideally, a device should be given to the VM for using as the backend of /var/lib/docker. It is hard to say whether lcfs performance will be better than overlay2 when a file is used, given that the file is backed by the vmdk.
Hey @jjobi I'm told that you managed to get LCFS on the Docker for Mac VM up and running. Please could you share your method for compiling tcmalloc
, or did you perhaps work around this? It seems that gperftools
which provides tcmalloc
is not supported on Alpine (due to musl).
I did not get it working. You could probably try to build it after removing tcmalloc and profiler from Makefile.
Did you try running commands in the convenient script manually? You may bypass building from sources that way....
Install Docker: https://docs.docker.com/docker-for-mac/install
Log into the Docker VM:
screen ~/Library/Containers/com.docker.docker/Data/com.docker.driver.amd64-linux/tty
Run this to install and run LCFS:
apk update && apk add bash util-linux && curl -fsSL http://lcfs.portworx.com/alpine/lcfs-setup.sh | bash
Thanks for this installer. The installation process was painless and successful.
However, about 13m into building all our containers, I ran into this error:
ERROR: Service 'quark' failed to build: Post http://%2Frun%2Fdocker%2Fplugins%2F61139cdf6bf4b70aa27e81ea3eed40ce0c1dc7cdb0df6606db741db8f46680f1%2Flcfs.sock/GraphDriver.Diff: dial unix /run/docker/plugins/61139cdf6bf4b70aa27e81ea3eed40ce0c1dc7cdb0df6606db741db8f46680f1/lcfs.sock: connect: no such file or directory
Immediately prior to installing LCFS I had reset ("pressed the bomb") the Docker for Mac VM.
Should I file a new issue for this?
Edit: This killed the Docker daemon:
$ docker-compose build
Building unoconv
ERROR: Couldn't connect to Docker daemon. You might need to start Docker for Mac.
Restarting the Docker for Mac VM brought it up again with the default storage driver and no images. I understand this is because the start command for dockerd needs some flags, however I don't think users will widely utilise this storage driver if they need to issue some incantations after every reboot. Is it possible to modify the startup script?
Thanks for trying out LCFS for Mac.
Updated instructions for installing LCFS for MAC can be viewed in https://github.com/portworx/lcfs/blob/master/INSTALL-Mac.md.
Please open issues for any problems you encounter while testing LCFS. LCFS needs to be re-configured every time Docker is restarted from the menu as of now. We are working on addressing that issue. Docker could be restarted from the VM by running "/etc/init.d/lcfs restart".
Rob, you might have hit OOM while testing LCFS. LCFS being a Docker V2 plugin, requires more memory to run as the plugin needs to transfer large tar archives between Docker and LCFS. So please retry after increasing the memory for the VM to 4GB. If you encounter any issues, please check for the presence of any cores (in /var/cores, /tmp etc.). Also check /var/log/messages for any indication of the problem.