background preloader

Provisioning

Facebook Twitter

Of Containers, Dockers, Rockets, and Daemons | Three of Coins. I have started using Docker soon after it showed up. I’ve been running dockerized services in production since well before 1.0. I am still using it quite extensively and recommend it to people. I have also recently decided to run my next project on FreeBSD. I’ve been playing with this system for quite a while.

It purportedly performs better than Linux — definitely feels faster and more reliable. It is engineered, not evolved, and base system is a consistent composition of kernel and user space. It’s been around for 21 years, more than any Linux distribution except Slackware. There’s just one “but”: Docker runs only on Linux, and I got used to containerized services. At this very moment, CoreOS (any association with Oreo cookies purely accidental) announced that they are releasing their own container runtime, named Rocket. Docker is implementation-defined. Enter Rocket. I don’t feel up to porting whole of Rocket to FreeBSD’s ports right now (but who knows? Announcing Docker Machine, Swarm, and Compose for Orchestrating Distributed Apps. As users start exploring Docker and Docker Hub, they typically start by Dockerizing some apps, incorporating Docker into their build-test pipeline, creating a Docker-based development environment, or trying out one of the other half-dozen common use cases.

In these use cases and others, we’ve heard from many community members about how Docker has sped up development-to-deploy cycle times and eliminated the friction of moving apps from laptops to data centers, or from one cloud to another. Da capo After getting their feet wet with simple, single-container apps, we see many users start to employ Docker as a platform for more complex, distributed applications (a.k.a., cloud native, microservices architecture, twelve-factor apps), or for apps composed of multiple containers, typically running across multiple hosts.

Users’ motivations for exploring distributed apps vary, but some common themes are emerging. Portable. Docker Machine … gets the target host ready to run Docker containers. Coda. Container42 · Stuff I find interesting. Docker-desktop and ubuntu 12.04 | Thoughts on code. (Update 26/11/13) Docker 0.6.5 has a breaking change with ports and exposed. It does not provide a port number when you run sudo docker port $CONTAINER_ID 22 anymore. You can assign the port you expose when you do the docker run command as shown below. To get ubuntu 12.04 to connect to the xpra on the docker-desktop you need to do a few things to get a newer version of Xpra to install. Ubuntu 12.04 has 0.0.7.36 which is a few years old now. Ubuntu does not give you an updated version on its packages it knows about so you have to include a new apt-get repo to find it.

Explanation Docker-desktop uses ubuntu 12.10 which has xpra version 0.3.11. On your ubuntu 12.04(client) has xpra version 0.0.7.36 will never connect properly to xpra(sever) 0.3.11 it will seem to connect but never log any information about what is going wrong and what is not working. The 12.04(client) needs to update to xpra to version 0.9.8-1. Get version 0.9.8-1 of xpra installed on ubuntu 12.04 #Exit as root exit Like this: Eight Docker Development Patterns. mCloud. Container SolutionsWrapping Desktop Apps with Docker - Container Solutions.

Fig | Fast, isolated development environments using Docker. Documentation. Cluster-wide Java/Scala application deployments with Docker, Chef and Amazon OpsWorks | Blog of Adam Warski. Docker is great for running isolated containers on a single node. However, most software systems run on multiple nodes, so in addition to Docker, we need some way of specifying which containers should run on which nodes. The specific problem that I want to solve is the following: I have two Scala daemons, which I want to run on multiple nodes (depending on configuration, each node can run one of the daemons, or both). I want a reasonably fast way to deploy modified binaries across the cluster. I also don’t want to spend too much time setting up the servers. (My Gentoo days are long over.) The end solution to which I arrived involves Docker, OpsWorks, Chef and Vagrant. By the way – how would you solve the above problem? First I need to be able to package and upload the binaries.

Is based on a trusted ubuntu+java7 image – no need to install java on the servers! The full Dockerfile is available here: There’s one thing to note here, though. Darryl Gove's blog. Let's talk about unsigned integers. These can be tricky because they wrap-around from big to small. Signed integers wrap-around from positive to negative. Let's look at an example. Suppose I want to do something for all iterations of a loop except for the last OFFSET of them. I could write something like: if (i < length - OFFSET) {} If I assume OFFSET is 8 then for length 10, I'll do something for the first 2 iterations. So the obvious fix for this is that for unsigned integers we do: if (i + OFFSET < length) {} This works over the range that we might expect it to work. With unsigned ints we encounter this same problem at UINT_MAX where adding OFFSET to i could generate a small value, which is less than the boundary.

So in these cases we might want to write: Oh.... So basically to cover all the situations we might want to write something like: if ( (length > OFFSET) && (i < length - OFFSET) ) {} without worrying about wrap-around. Gaudi - a simple orchestrator using Docker containers. Is Simple IT Automation. Get Started with Project Atomic — Project Atomic. Download an Atomic Host image Atomic Host images are provided by the Fedora and the CentOS Projects.

The CentOS Atomic SIG offers a rebuild of Red Hat Enterprise Linux Atomic Host, considered a stable target. The Fedora Cloud SIG offers a new Fedora product Atomic Cloud Image. The "QCOW2" image works on Linux KVM virtualization, for example it runs on RDO (OpenStack), oVirt, virt-manager and the "Boxes" virtual machine application available in Fedora and CentOS 7. Both the Fedora and CentOS Atomic Host images are also available in Vagrant format, for use with the VirtualBox and libvirt/KVM providers, as well as in AMI format for running in EC2, and as ISO images for bare-metal installations. CentOS Atomic Host Fedora Atomic Host Set Up the Virtual Machine Please follow the Quick Start Guide to create a new virtual machine with Atomic and set up more disk space for your containers. Configure an Atomic cluster Documentation Still have questions? Done? Programming | Dave Cheney. I was recently invited to give a talk at Gocon, a fantastic Go conference held semi-annually in Tokyo, Japan.

Gocon 2014 was an entirely community-run one day event combining training and an afternoon of presentations surrounding the theme of Go in production. The following is the text of my presentation. The original text was structured to force me to speak slowly and clearly, so I have taken the liberty of editing it slightly to be more readable. I want to thank Bill Kennedy, Minux Ma, and especially Josh Bleecher Snyder, for their assistance in preparing this talk.

Good afternoon. My name is David. I am delighted to be here at Gocon today. I want to begin my talk with a question. Why are people choosing to use Go ? When people talk about their decision to learn Go, or use it in their product, they have a variety of answers, but there always three that are at the top of their list These are the top three. The first, Concurrency. Ease of deployment. This leaves Performance. Go has goroutines. Docker Misconceptions. Docker has hit the systems scene with great fanfare. It's a very exciting advancement for systems, but there are some key misunderstandings around it. Narrowly focused advice! My discussion of Docker is nearly entirely limited to multi-host setups of mission-critical systems (web services primarily). Please keep that in mind since my coverage and advice will probably not apply to the many other scenarios you can use Docker for. Background on Docker This post assumes a basic understanding of what Docker is and how it works generally.

It's beyond the scope of this article to give a full coverage of Docker, so if you're totally new to Docker, first go through these resources before continuing: What is Docker? Docker Basics Misconceptions Docker is an amazing tool for many scenarios, but there are several misconceptions I see come up regularly about using Docker.

Misconception: If I learn Docker then I don't have to learn the other systems stuff! Someday this may be true. This is partially true. Using Invoker on Linux.