

Docker Jumpstart - laex
https://github.com/odewahn/docker-jumpstart/

======
weaksauce
The short introduction on that tutorial is much better than that actual docker
site and 10-15 min interactive tutorial on what docker actually is and what it
can be used for. A note to other developers, it's a good idea to not use some
language without first defining the word... Especially if it's an overloaded
term.

~~~
eli
Agreed, it's a nice intro. I still think the hardest part is understanding how
docker fits into the bigger picture. I think I've more or less figured it out
on my own, but I struggled with e.g. do I want my source built in the image or
mounted as a volume?

~~~
icebraining
If you're loading the source from outside, aren't you losing the advantages of
immutability of the Docker container? Suddenly the same image may have
different behaviours depending on the state of the code outside.

~~~
xchaotic
That's why you want to use volumes for mutable data such as your source code
repo - you isolate the changing parts and keep the containers static.

~~~
icebraining
But if the source is mutable data, what isn't? Everything eventually mutates -
dependencies have updates, configurations change, etc. Isn't the point of
images that you "freeze" a static release that can be deployed everywhere?

It seems that by that point you've lost the advantage of using images; if
parts of the system must be loaded outside of the container, it seems you
might as well simply use a configuration manager to install the stuff and then
run LXC/LXD containers instead of using images at all.

~~~
tvmalsv
I know, I'm a little late to this party, but just in case anyone is still
around... :)

For me, mounting my local app files as a volume is useful during development
since it keeps the workflow fast. I don't have to rebuild the image every time
I want to try the app out, I get to use the new code without delay.

If I were deploying as a container, I presume my build process would check the
app out of git and build the image based on that fresh checkout. I'm just
using Docker as a convenient way of simulating my production environment
(dev'ing on Ubuntu 15.04, but deploying to Debian 7), and still be able to
iterate rapidly.

~~~
icebraining
Ah, fair enough, I was really thinking about shared, deployable images. I
suppose this use case makes sense.

------
hanlec
I never really got to play extensively with Docker mainly because I have found
the setup of OS X not quite friendly. While I understand the value of Docker,
basically booting up a VMware/VirtualBox image was faster for my own use.

I'll have to give boot2docker a try to see if it is changing things. Having a
good guide will definitely help.

~~~
grokavi
Give Docker Machine a try
[https://docs.docker.com/machine/](https://docs.docker.com/machine/)

    
    
      Machine makes it really easy to create Docker hosts on your
      computer, on cloud providers and inside your own data center.
      It creates servers, installs Docker on them, then configures
      the Docker client to talk to them.
    

Kitematic is another option [https://kitematic.com](https://kitematic.com)

~~~
laex
For some reason, when using docker machine on a mac, the VM always fails to
start and freezes at the "VM starting" phase. For this reason, I've had to
switch back to boot2docker.

~~~
zenlikethat
Super sorry to hear - we've had some issues with VirtualBox around networking
and some setups we didn't anticipate -- Would be really appreciative if you'd
give the latest 0.3.0 release candidate a whirl and see if it fixes the issue
for you:
[https://github.com/docker/machine/releases](https://github.com/docker/machine/releases).

~~~
laex
Yes, It looks like it has been fixed. I tried creating multiple VMS ( dev,
staging ) a few times, and It worked properly. Thanks.

Edit: I tried v0.3.0-rc2

------
UserRights
When you start playing around with docker and come to the area where you start
to see that many things that should be very easy start to be really
complicated, then you should take a look at lxc and the upcoming lxd and
compare.

------
pronoiac
Huh, the "Images and layers" section is 404'ing.

Edit: ah, here it is - [https://github.com/odewahn/docker-
jumpstart/blob/master/publ...](https://github.com/odewahn/docker-
jumpstart/blob/master/public/docker-images.md)

Edit: filed a PR

------
pibefision
Is docker ready for production? Is someone using it on real production
environments? Most recipes at Docker Registy are a mess, and with plenty of
bugs

~~~
nisa
I guess it depends on what you want to do.. I stopped caring and looking at
docker after reading this: [http://iops.io/blog/docker-
hype/](http://iops.io/blog/docker-hype/)

Using btrfs as cow is not ready for production (yet and likely not in the near
future) - believing otherwise made the last few feeks quite miserable.

~~~
icebraining
_Using btrfs as cow is not ready for production_

Yes, but it's not like they don't warn people. From the Docker docs:

 _" This backend is pretty fast, however btrfs is still maturing and is not
considered production ready for heavy write loads. Mounting /var/lib/docker on
a different filesystem than the rest of your system is recommended in order to
limit the impact of filesystem corruption. You would also want to mount the
volume directory /var/lib/docker/vfs/ on a standard XFS or EXT4 filesystem to
ensure container data is protected."_

------
juliangregorian
Docker doesn't actually use LXC anymore.

------
laex
Anybody wanting to try out Docker + GoLang + AWS Beanstalk, I've made a sample
app / guide here -
[https://github.com/OrganicCoffeeNepal/DockerBeanstalkSample](https://github.com/OrganicCoffeeNepal/DockerBeanstalkSample)

~~~
brunoqc
Thanks for the link.

Is Beanstalk worth it? Is it cheaper than an ec2 instance?

~~~
laex
I haven't done any systematic comparison to tell which one's cheaper. AWS
allows 1 year of free tier service, so I'm using that. What I like about
Beanstalk is that it's extremely easy to deploy updates. Just commit the
changes and execute eb deploy. Setting up a new environment via. CLI is also a
breeze.

------
ajhit406
The new Nitrous Pro ([https://pro.nitrous.io](https://pro.nitrous.io)) has a
docker template you can use if you don't feel like installing boot2docker
locally.

There's also a bunch of advanced docker options you can check out:

[http://docs.nitrous.io/v1.0/docs/advanced-container-
manageme...](http://docs.nitrous.io/v1.0/docs/advanced-container-management-
options)

Would be a good compliment to the docker jumpstart manual.

------
j_m_b
There is some outdated information on this site for boot2docker on Mac OS X.

1\. You need to set more than just tcp://ip:2376. You need to run

$ eval $(boot2docker shellinit)

to also set vars for DOCKER_CERT_PATH

2\. In order to get proper forwarding from your host Mac OS X to your
boot2docker-vm, you use -P as a command line option for any containers you
'run'.

Bonus docker gotcha:

docker containers can't make fsync() calls on shared folders between your Mac
and the boot2docker-vm. This means a lot of database software can't use a
shared folder to store a database.

~~~
amouat
It's all a little outdated - 9 months is a long time in the Docker world.

~~~
j_m_b
9 months is a 1/3 of its lifetime!

------
joelanman
"Unlike a true VM, a docker container does not also require a host OS"

Shouldn't that be guest OS?

~~~
keslag
Docker on bare metal would be pretty nice though.

~~~
tehbeard
Probably the closest you'll get is this: [http://rancher.com/rancher-
os/](http://rancher.com/rancher-os/)

