clns
clns

Reputation: 2324

Ubuntu docker container with upstart and syslog

After searching around, I'm still confused whether you can have a docker container running Ubuntu with a working init system (upstart) and syslog, or not.

I know docker containers are meant for running a single process and not a full OS, but my use case is testing a daemon on various linux distros, making sure the daemon starts, stops and restarts successfully on crashes, etc., with logging to syslog. So I'm trying to decide if I can use a docker container for this or maybe I would be better of with Vagrant.

Some resources I found are confusing:

So basically what I need at the end is to be able to run:

$ initctl start <daemon>
$ initctl stop <daemon>

of course after creating the necessary conf file at /etc/init/<daemon>.conf, and see the logs with syslog.

Upvotes: 8

Views: 3760

Answers (1)

Wolfgang Fahl
Wolfgang Fahl

Reputation: 15594

see https://github.com/BITPlan/docker-stackoverflowanswers/tree/master/33233329 to repeat the steps

Going from the Dockerfile

FROM ubuntu:14.04

building it:

docker build -t bitplan/ubuntutest:0.1 .
Sending build context to Docker daemon 2.048 kB
Step 0 : FROM ubuntu:14.04
---> 0a17decee413
Successfully built 0a17decee413

running it:

docker run -it bitplan/ubuntutest:0.1 /bin/bash

and checking the running services:

 root@50a738241d03:/# service --status-all
 [ ? ]  console-setup
 [ + ]  cron
 [ ? ]  killprocs
 [ ? ]  kmod
 [ ? ]  networking
 [ ? ]  ondemand
 [ - ]  procps
 [ ? ]  rc.local
 [ + ]  resolvconf
 [ - ]  rsyslog
 [ ? ]  sendsigs
 [ - ]  sudo
 [ - ]  udev
 [ ? ]  umountfs
 [ ? ]  umountnfs.sh
 [ ? ]  umountroot
 [ - ]  urandom

You can see that there are multiple services running in a typical OS based container. If you install more stuff like apache, mysql and the like than there will be more services.

So if you'd like to start more of these I'd recommend to use

service start service stop

which you'll find e.g. in the entrypoint of our docker-mediawiki image at:

https://github.com/BITPlan/docker-mediawiki/blob/master/docker-entrypoint.sh

see e.g.

service mysql start

in there.

Upvotes: -1

Related Questions