Ubuntu 16.04 LTS の Docker で、サーバ再起動後に Docker コンテナ内のサービスを自動起動する方法

Ubuntu 14.04 LTS では、サーバ起動時はUpstart というもので Apache などのサービスを起動していたのだけれど、16.04 LTS からは Systemd というのに変わってしまった。それによって、これまで 14.04 LTS ではうまくいっていたサーバ起動時の Docker コンテナ起動ができなくなってしまった・・・

・・・と、お嘆きの皆様、systemd なんかをいろいろいじってみたのだが、以下のようなシンプルな手順で今は落ち着きました。

docker run --name <Docker 名> -h <ホスト名> -it <コンテナ ID> /bin/bash

でコンテナを起動しておく。そのあと、/etc/rc.local (の、最後の方)に

vi /etc/rc.local

以下のように docker start を書いておくだけ。

docker start <コンテナ ID>

That's it!