対象読者
- Linuxの基礎コマンドを少し知っている方
- 簡単にサーバーを構築したいインフラ技術者、開発者
Dockerイメージを使うポイント
Docker Hubには、たくさんのDockerイメージが登録されており、docker runするだけでコンテナ化し、すぐに使えます。このときポイントとなるのは、次の3点です。これらの情報は、Docker Hubに登録されたドキュメントに記載されていることがほとんどなので、確認しておきます。
1. ポート設定
通信に用いるポート番号です。docker runする際に、-pオプションを使ってポートの結び付けを指定します。
2. 永続化すべきディレクトリ
コンテナ内部のディレクトリのうち、マウントを必要とするディレクトリです。例えば「コンテンツを保存するディレクトリ」「データベースを保存するディレクトリ」などは、docker runする際に、-vオプションでそのディレクトリをマウントし、コンテナが破棄されても消えないようにします。
3. 設定情報
ほとんどのDockerイメージは、環境変数などを使って各種設定をします。docker runする際に、-eオプションで指定します。

ファイル共有やグループウェアを提供するNextCloud
では、実際にDockerイメージを使ってみましょう。今回は、「NextCloud」というソフトを使ってみます。このソフトは、OneDriveやGoogleドライブのようなブラウザーで操作できるストレージ環境を提供するものです。プラグインをインストールすれば、連絡先やカレンダー、メールなどのグループウェア機能も使えます。




NextCloudは、Docker Hubに公式イメージがあるため、docker runすることで、すぐに使えます。今回は、このNextCloudを実際に使いながら、どんなところに着目して公開されているイメージを使えばよいのか、その感触をつかんでいきたいと思います。
NextCloudを起動する
Dockerイメージを利用するには、まず、ドキュメントを確認しましょう。NextCloudは、Docker Hubの公式イメージとして、次のURLで公開されています。
apacheイメージとfpmイメージ
ドキュメントを読むと、NextCloudのイメージには、「apacheイメージ」と「fpmイメージ」があることがわかります。前者はフルインストールパッケージ、後者はfastCGIプロセス上で動くイメージです。後者は、別途php-fpmというPHPのDockerイメージと組み合わせるものです。ここでは、いろいろとインストールしなくて済む、フルインストールパッケージを使います。
docker runで起動する
ドキュメントの「Using the apache image」の部分に、このapacheイメージを実行する起動コマンド例が示されています。

この記載を読むと、次のように入力することでNextCloudが起動し、ブラウザーから「http://localhost:8080/」でアクセスできるようになることがわかります。
下記の例では、--nameオプションを指定していないので、コンテナにはランダムな名前が付けられます。あとで停止したり破棄したりするときに不便なので、--nameオプションは指定しておいたほうがよいでしょう。
$ docker run -d -p 8080:80 nextcloud
初期設定する
実際に、上記のコマンドを入力して実行してみましょう。実行したら、ブラウザーで「http://localhost:8080/」にアクセスすると、NextCloudの初期設定画面が表示されるはずです。
ここで「ユーザー名」と「パスワード」の欄に、管理者として登録する任意の「ユーザー名」と「パスワード」を入力し、[セットアップを完了します]をクリックしてください。設定はこれだけです。
