Public Repository

Last pushed: 10 days ago
Short Description
Ubuntu, plus modifications for Docker-friendliness, and solves the PID 1 zombie reaping problem
Full Description

Learn more at the Github repository, including usage instructions.

What are the problems with the stock Ubuntu base image?

Ubuntu is not designed to be run inside docker. Its init system, Upstart, assumes that it's running on either real hardware or virtualized hardware, but not inside a Docker container. But inside a container you don't want a full system anyway, you want a minimal system. But configuring that minimal system for use within a container has many strange corner cases that are hard to get right if you are not intimately familiar with the Unix system model. This can cause a lot of strange problems.

Baseimage-docker gets everything right. The "Contents" section describes all the things that it modifies.

Why use baseimage-docker?

You can configure the stock ubuntu image yourself from your Dockerfile, so why bother using baseimage-docker?

  • Configuring the base system for Docker-friendliness is no easy task. As stated before, there are many corner cases. By the time that you've gotten all that right, you've reinvented baseimage-docker. Using baseimage-docker will save you from this effort.
  • It sets up the base system correctly. Many people may not think so, but Unix has many corner cases caused by decades of cruft. Getting them wrong can result in very strange problems. This image does everything correctly. Learn more.
  • It reduces the time needed to run docker build, allowing you to iterate your Dockerfile more quickly.
  • It reduces download time during redeploys. Docker only needs to download the base image once: during the first deploy. On every subsequent deploys, only the changes you make on top of the base image are downloaded.

Contents

Baseimage-docker only contains essential components. Learn more about the rationale.

  • Ubuntu 16.04 LTS as base system.
  • A correct init process (learn more).
  • Fixes APT incompatibilities with Docker.
  • syslog-ng.
  • The cron daemon.
  • An optional SSH server (disabled by default), for those use cases where docker exec is inappropriate.
    • Password and challenge-response authentication are disabled by default. Only key authentication is allowed.
    • It allows an predefined key by default to make debugging easy. You should replace this ASAP. See instructions.
  • Runit for service supervision and management.

Usage

Learn more at the Github repository.

Docker Pull Command
Owner
phusion

Comments (30)
umuzitech
2 months ago

I would like to mount log directories outside of the container. Can someone please tell me all the log locations within passenger-ruby23 which are mounted to STDOUT and STDERR? I would need to remove those symlinks and mount the files to an external volume.

ntwrkguru
4 months ago

"phusion/baseimage -- 225.6 MB
blitznote/debootstrap-amd64:16.04 -- 50.61 MB

… and the latter already comes with runit, curl, apt+https, and most importantly: Is regularly updated."

Unfortunately, built on 16.xx releases only. :-(

wmark
9 months ago

phusion/baseimage -- 225.6 MB
blitznote/debootstrap-amd64:16.04 -- 50.61 MB

… and the latter already comes with runit, curl, apt+https, and most importantly: Is regularly updated.

chrisvire
9 months ago

Is there a way to keep 0.9.18 available (or tag it as trusty)? I am not ready to upgrade to xenial.

phusion
a year ago

@mrmunch Lightweight as in using only 6 MB of memory. Disk space is cheap, memory is not, but this image has very little memory overhead.

mrmunch
a year ago

How is this "lightweight"?
phusion/baseimage:latest -> 305.2 MB
ubuntu:latest -> 132.8 MB
debian:latest -> 125.1 MB

nparasta
a year ago

Will there be an Ubuntu 16.04 version? :-)

deanatruntriz
a year ago

This looks like an awesome base!! However, is this still supported?

I am concerned because it looks like the last build is 5 months ago.

thefab
a year ago

Very inspiring work, thank you !

But, as I need a CentOS "base", I maintain a similar project on:
https://github.com/thefab/docker-centos-opinionated

Thank you for all the communication and the documentation effort. Your work is a big source of inspiration !

mba811
a year ago

Best of Best !!!