O'Reilly logo

How to Containerize Your Go Code by Liz Rice

Stay ahead with the world's most comprehensive technology and business learning platform.

With Safari, you learn the way you learn best. Get unlimited access to videos, live online training, learning paths, books, tutorials, and more.

Start Free Trial

No credit card required

How to Containerize Your Go Code

Introduction and Motivations

Learning about containers is a bit like learning about Linux or learning about Go: it’s potentially a huge topic! But everyone has to begin somewhere. This lesson will give you an introduction to some of the key concepts of containers and walk you through some examples of using Docker containers with Go code.

Example Code

There is example code throughout this lesson. If you’d like to try it out for yourself, the easiest way is to download the code with by using the go get command, as follows:

$ go get github.com/lizrice/hello-container-world/...

Using Docker

If you’ve never used Docker before, good instructions are available for installing it and verifying that everything is set up correctly. After you’ve done that, you’ll be ready to work through the examples in this lesson.

Note

Docker 1.13 reorganized the command-line interface (CLI) to refer to objects (e.g., docker image build instead of docker build). As of this writing, the older versions work as aliases, but it is more future-proof to get used to the new style.

What Is a Container?

Containers let you isolate an application so that it’s under the impression it’s running on its own private machine. In that sense, a container is similar to a virtual machine (VM), but it uses the operating system kernel on the host rather than having its own.

You start a container from a container image, which bundles up everything that the application needs to run, including ...

With Safari, you learn the way you learn best. Get unlimited access to videos, live online training, learning paths, books, interactive tutorials, and more.

Start Free Trial

No credit card required