2
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

【Docker】Arukas アプリ作成時にハマったこと(EXPOSE 宣言は必須編)

Last updated at Posted at 2019-03-24

はじめに

さくらインターネットの Docker ホスティングサービスである Arukas でアプリを作成しているときにハマったのでメモ。

顛末

まず、Arukas で アプリ(= Docker コンテナ)を起動するためには、Docker Hub に登録されているイメージを利用する必要がある。

今回使おうとしたのは Ubuntu18.04 の公式イメージ。
image.png

Arukas のアプリ追加コンソールを開いて、イメージとして Docker Hub で公式提供されているubuntu:18.04を指定してアプリ作成。
image.png

[OK]でアプリ起動。
image.png

アプリのステータスが「アプリはデプロイ中です」となったまましばらく待つ1と...「アプリの起動に失敗しました」となり起動できない。
image.png

イメージ名を_/ubuntu:18.04と指定して再試行したが同様に起動に失敗する。

調べてみると Arukas のFAQに以下のような記載があった。

対象ポートはDockerfile内においてEXPOSE宣言で開放されておりますでしょうか。 EXPOSEで開放されているポートが入力されていない場合、サーバとして起動しないことがございます。

とのこと。
これ、特にポート開放を必要とするサービスは入れない場合に、適当なポートをEXPOSE宣言しておくだけで良いのだろうか?例えば SSH デーモンを動かさずとも取り敢えずEXPOSE 22を設定しておくだけで正常起動の要件は満たされるのだろうか?

検証してみる。
以下のような、素の Ubuntu にポート22を開放するだけの Dockerfile を用意。

FROM ubuntu:18.04

EXPOSE 22

CMD echo 'Hello docker world!'

上記 Dockerfile からイメージをビルドして、自身の管理する Docker Hub に登録。(実際の試行ではxxxxxxを実在の Docker Hub アカウント名としています)

docker build . -t xxxxxx/ubuntu:18.04
docker push xxxxxx/ubuntu:18.04

Arukas のアプリ作成画面に戻り、先程登録したイメージxxxxxx/ubuntu:18.04を指定し、アプリを作成し、起動。(この時、Arukas 側のポート設定は不要です。)
image.png

アプリが正常に起動した。
image.png

結論

Arukas のアプリで利用するイメージは何らかの一つ以上のポートがEXPOSE宣言されている必要がある。
しかし、コンテナ内でそのポートを利用するサービスを動かしたり、 Arukas 側のポート設定で同じ番号のポートを開放する必要はない。

おまけ

因みに、SSH デーモンがちゃんと設定されたイメージを使用し、以下のように Arukas 側でもポート22を設定してあげれば、
image.png

作成後のアプリのポート22に対して動的なハイポート(~arukascloud.io:31XXX31XXX部分)が自動的にマッピングされるので、例えば以下のようなマッピングが行われた場合はssh root@seaof-163-43-82-XXX.jp-tokyo-02.arukascloud.io -p 31XXXとすればアプリに SSH 接続できます。(アプリを再起動するたびに URI やハイポートの値は動的に変わるので注意。)
スクリーンショット 2019-03-23 21.43.12.png

  1. https://support.arukas.io/hc/ja/articles/210357188 によると、アプリケーションの設定内容に誤りがある場合は起動試行中のアプリケーションは15分以内に強制停止されるとのこと。

2
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?