mirror of
/repos/baseimage-docker.git
synced 2025-12-30 08:01:31 +01:00
Add table of contents to README.
This commit is contained in:
parent
017c6c22d5
commit
b297ae8b42
50
README.md
50
README.md
@ -2,12 +2,7 @@
|
|||||||
|
|
||||||
Baseimage-docker is a special [Docker](http://www.docker.io) image that is configured for correct use within Docker containers. It is Ubuntu, plus modifications for Docker-friendliness. You can use it as a base for your own Docker images.
|
Baseimage-docker is a special [Docker](http://www.docker.io) image that is configured for correct use within Docker containers. It is Ubuntu, plus modifications for Docker-friendliness. You can use it as a base for your own Docker images.
|
||||||
|
|
||||||
Baseimage-docker is available for pulling from on [the Docker registry](https://index.docker.io/u/phusion/baseimage/)!
|
Baseimage-docker is available for pulling from [the Docker registry](https://index.docker.io/u/phusion/baseimage/)!
|
||||||
|
|
||||||
* **Github**: https://github.com/phusion/baseimage-docker
|
|
||||||
* **Discussion forum**: https://groups.google.com/d/forum/passenger-docker
|
|
||||||
* **Twitter**: https://twitter.com/phusion_nl
|
|
||||||
* **Blog**: http://blog.phusion.nl/
|
|
||||||
|
|
||||||
### What are the problems with the stock Ubuntu base image?
|
### What are the problems with the stock Ubuntu base image?
|
||||||
|
|
||||||
@ -15,6 +10,7 @@ Ubuntu is not designed to be run inside docker. Its init system, Upstart, assume
|
|||||||
|
|
||||||
Baseimage-docker gets everything right. The "Contents" section describes all the things that it modifies.
|
Baseimage-docker gets everything right. The "Contents" section describes all the things that it modifies.
|
||||||
|
|
||||||
|
<a name="why_use"></a>
|
||||||
### Why use baseimage-docker?
|
### Why use baseimage-docker?
|
||||||
|
|
||||||
You can configure the stock `ubuntu` image yourself from your Dockerfile, so why bother using baseimage-docker?
|
You can configure the stock `ubuntu` image yourself from your Dockerfile, so why bother using baseimage-docker?
|
||||||
@ -24,7 +20,36 @@ You can configure the stock `ubuntu` image yourself from your Dockerfile, so why
|
|||||||
* It reduces the time needed to run `docker build`, allowing you to iterate your Dockerfile more quickly.
|
* 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.
|
* 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
|
-----------------------------------------
|
||||||
|
|
||||||
|
**Related resources**:
|
||||||
|
[Github](https://github.com/phusion/baseimage-docker) |
|
||||||
|
[Docker registry](https://index.docker.io/u/phusion/baseimage/) |
|
||||||
|
[Discussion forum](https://groups.google.com/d/forum/passenger-docker) |
|
||||||
|
[Twitter](https://twitter.com/phusion_nl) |
|
||||||
|
[Blog](http://blog.phusion.nl/)
|
||||||
|
|
||||||
|
**Table of contents**
|
||||||
|
|
||||||
|
* [What's inside the image?](#whats_inside)
|
||||||
|
* [Overview](#whats_inside_overview)
|
||||||
|
* [Wait, I thought Docker is about running a single process in a container?](#docker_single_process)
|
||||||
|
* [Inspecting baseimage-docker](#inspecting)
|
||||||
|
* [Using baseimage-docker as base image](#using)
|
||||||
|
* [Getting started](#getting_started)
|
||||||
|
* [Adding additional daemons](#adding_additional_daemons)
|
||||||
|
* [Running scripts during container startup](#running_startup_scripts)
|
||||||
|
* [Login to the container](#login)
|
||||||
|
* [Building the image yourself](#building)
|
||||||
|
* [Conclusion](#conclusion)
|
||||||
|
|
||||||
|
-----------------------------------------
|
||||||
|
|
||||||
|
<a name="whats_inside"></a>
|
||||||
|
## What's inside the image?
|
||||||
|
|
||||||
|
<a name="whats_inside_overview"></a>
|
||||||
|
### Overview
|
||||||
|
|
||||||
*Looking for a more complete base image, one that is ideal for Ruby, Python, Node.js and Meteor web apps? Take a look at [passenger-docker](https://github.com/phusion/passenger-docker).*
|
*Looking for a more complete base image, one that is ideal for Ruby, Python, Node.js and Meteor web apps? Take a look at [passenger-docker](https://github.com/phusion/passenger-docker).*
|
||||||
|
|
||||||
@ -41,12 +66,14 @@ You can configure the stock `ubuntu` image yourself from your Dockerfile, so why
|
|||||||
|
|
||||||
Baseimage-docker is very lightweight: it only consumes 6 MB of memory.
|
Baseimage-docker is very lightweight: it only consumes 6 MB of memory.
|
||||||
|
|
||||||
|
<a name="docker_single_process"></a>
|
||||||
### Wait, I thought Docker is about running a single process in a container?
|
### Wait, I thought Docker is about running a single process in a container?
|
||||||
|
|
||||||
Absolutely not true. Docker runs fine with multiple processes in a container. In fact, there is no technical reason why you should limit yourself to one process - it only makes things harder for you and breaks all kinds of essential system functionality, e.g. syslog.
|
Absolutely not true. Docker runs fine with multiple processes in a container. In fact, there is no technical reason why you should limit yourself to one process - it only makes things harder for you and breaks all kinds of essential system functionality, e.g. syslog.
|
||||||
|
|
||||||
Baseimage-docker *encourages* multiple processes through the use of runit.
|
Baseimage-docker *encourages* multiple processes through the use of runit.
|
||||||
|
|
||||||
|
<a name="inspecting"></a>
|
||||||
## Inspecting baseimage-docker
|
## Inspecting baseimage-docker
|
||||||
|
|
||||||
To look around in the image, run:
|
To look around in the image, run:
|
||||||
@ -55,8 +82,12 @@ To look around in the image, run:
|
|||||||
|
|
||||||
You don't have to download anything manually. The above command will automatically pull the baseimage-docker image from the Docker registry.
|
You don't have to download anything manually. The above command will automatically pull the baseimage-docker image from the Docker registry.
|
||||||
|
|
||||||
|
<a name="using"></a>
|
||||||
## Using baseimage-docker as base image
|
## Using baseimage-docker as base image
|
||||||
|
|
||||||
|
<a name="getting_started"></a>
|
||||||
|
### Getting started
|
||||||
|
|
||||||
The image is called `phusion/baseimage`, and is available on the Docker registry.
|
The image is called `phusion/baseimage`, and is available on the Docker registry.
|
||||||
|
|
||||||
By default, it allows SSH access for the key in `image/insecure_key`. This makes it easy for you to login to the container, but you should replace this key as soon as possible.
|
By default, it allows SSH access for the key in `image/insecure_key`. This makes it easy for you to login to the container, but you should replace this key as soon as possible.
|
||||||
@ -86,6 +117,7 @@ By default, it allows SSH access for the key in `image/insecure_key`. This makes
|
|||||||
# Clean up APT when done.
|
# Clean up APT when done.
|
||||||
RUN apt-get clean && rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/*
|
RUN apt-get clean && rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/*
|
||||||
|
|
||||||
|
<a name="adding_additional_daemons"></a>
|
||||||
### Adding additional daemons
|
### Adding additional daemons
|
||||||
|
|
||||||
You can add additional daemons to the image by creating runit entries. You only have to write a small shell script which runs your daemon, and runit will keep it up and running for you, restarting it when it crashes, etc.
|
You can add additional daemons to the image by creating runit entries. You only have to write a small shell script which runs your daemon, and runit will keep it up and running for you, restarting it when it crashes, etc.
|
||||||
@ -106,6 +138,7 @@ Here's an example showing you how to a memached server runit entry can be made.
|
|||||||
|
|
||||||
Note that the shell script must run the daemon **without letting it daemonize/fork it**. Usually, daemons provide a command line flag or a config file option for that.
|
Note that the shell script must run the daemon **without letting it daemonize/fork it**. Usually, daemons provide a command line flag or a config file option for that.
|
||||||
|
|
||||||
|
<a name="running_startup_scripts"></a>
|
||||||
### Running scripts during container startup
|
### Running scripts during container startup
|
||||||
|
|
||||||
The baseimage-docker init system, `/sbin/my_init`, runs the following scripts during startup, in the following order:
|
The baseimage-docker init system, `/sbin/my_init`, runs the following scripts during startup, in the following order:
|
||||||
@ -125,6 +158,7 @@ The following example shows how you can add a startup script. This script simply
|
|||||||
RUN mkdir -p /etc/my_init.d
|
RUN mkdir -p /etc/my_init.d
|
||||||
ADD logtime.sh /etc/my_init.d/logtime.sh
|
ADD logtime.sh /etc/my_init.d/logtime.sh
|
||||||
|
|
||||||
|
<a name="login"></a>
|
||||||
### Login to the container
|
### Login to the container
|
||||||
|
|
||||||
You can use SSH to login to any container that is based on baseimage-docker.
|
You can use SSH to login to any container that is based on baseimage-docker.
|
||||||
@ -145,6 +179,7 @@ Now SSH into the container. In this example we're using [the default insecure ke
|
|||||||
|
|
||||||
ssh -i insecure_key root@<IP address>
|
ssh -i insecure_key root@<IP address>
|
||||||
|
|
||||||
|
<a name="building"></a>
|
||||||
## Building the image yourself
|
## Building the image yourself
|
||||||
|
|
||||||
If for whatever reason you want to build the image yourself instead of downloading it from the Docker registry, follow these instructions.
|
If for whatever reason you want to build the image yourself instead of downloading it from the Docker registry, follow these instructions.
|
||||||
@ -168,6 +203,7 @@ If you want to call the resulting image something else, pass the NAME variable,
|
|||||||
|
|
||||||
make build NAME=joe/baseimage
|
make build NAME=joe/baseimage
|
||||||
|
|
||||||
|
<a name="conclusion"></a>
|
||||||
## Conclusion
|
## Conclusion
|
||||||
|
|
||||||
* Using baseimage-docker? [Tweet about us](https://twitter.com/share) or [follow us on Twitter](https://twitter.com/phusion_nl).
|
* Using baseimage-docker? [Tweet about us](https://twitter.com/share) or [follow us on Twitter](https://twitter.com/phusion_nl).
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user