Code Monkey home page Code Monkey logo

dlite's Introduction

#DLite 1.1.5

Note:

Due to an assumption on my part about how quickly I would be able to develop DLite 2.x, the 1.x series clients will not be able to detect new OS releases. In order to update your OS, you will have to do so manually. Either dlite install -v 2.3.0 or dlite update -v 2.3.0 (if you've already installed).

Sorry for any confusion this has caused, I'm hoping to have the 2.x release out in the next week or two.

The simplest way to use Docker on OSX. Build Status

##Thanks

DLite leverages xhyve through the libxhyve Go bindings for virtualization. Without these projects and the people behind them, this project wouldn't exist.

##Installation

Standalone

Download the latest binary from the releases page and put it somewhere in your path, then:

sudo dlite install

See the output of sudo dlite install --help for additional options.

This will create the necessary files and a launchd agent to manage the process. After you've installed, run:

dlite start

as your user to start the process. DLite will start automatically upon logging in as well.

Source

If you have a working Go development environment you can build dlite from source by running:

go get github.com/nlf/dlite

After compiling dlite simply follow the directions above beginning with:

sudo dlite install

##Updating DLite

The DLite app itself can be updated by running dlite stop, installing the updated binary, and then running dlite start.

##Updating your VM

It's possible to update your virtual machine without having to rebuild it entirely. To do so, run the following commands

dlite stop
dlite update
dlite start

##Usage

Just use Docker. DLite creates a /var/run/docker.sock in your host operating system.

When opening ports in your docker containers, connect to local.docker instead of localhost. Everything else should just work™

Note that the local.docker hostname is configurable by passing the -n flag to the install command, as in sudo dlite install -n docker.dev

If you need to SSH to the VM for whatever reason, ssh [email protected] should do the trick.

##Troubleshooting

A common cause of the virtual machine failing to start is conflicting entries in your /etc/exports file. Edit the file and see if any other process has an export that conflicts with the one DLite added (it will have comments before and after it, making it easy to identify). If they do, remove the conflicting entry and try starting the service again. Note that dlite adds its export when it is started, not when it is installed, so make sure to either clean your exports file or specify a shared directory that doesn't conflict with existing shares when you install.

If docker cli commands hang, there's a good chance that you have a stale entry in your /etc/hosts file. Run dlite stop, then use sudo to edit your /etc/hosts file and remove any entries that end with # added by dlite. Save the hosts file and run dlite start and try again.

Note that launchctl commands appear to not work correctly when run inside tmux. If you are a tmux user and are having problems, try starting the service outside of your tmux session.

##Caveats

DLite depends on xhyve which only works on OSX versions 10.10 (Yosemite) or newer. You also need a fairly recent mac. You can tell if your computer is new enough by running sysctl kern.hv_support in a terminal. If you see kern.hv_support: 1 as a response, you're good to go. If not, unfortunately your computer is too old to leverage the hypervisor framework and DLite won't work for you.

Xhyve, and therefor DLite, does not support sparse disk images. This means that when you create a virtual machine with DLite the full size of the image must be allocated up front. There is ongoing work to support sparse images in xhyve, and once that support lands DLite will be able to take advantage of it. See xhyve#80, xhyve#82, and xhyve-xyz/xhyve#1 for more information.

DLite is not secured via TLS. If that's important to you for local development, look elsewhere.

DLite is most definitely not recommended for any kind of production use.

dlite's People

Contributors

cwonrails avatar djui avatar jgeiger avatar kylebrandt avatar leipert avatar maltefiala avatar nlf avatar stengaard avatar

Watchers

 avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.