過去問ドリル

LinuCレベル2 コンテナ 問9

コンテナ/Dockerコンテナとコンテナイメージの管理

docker runでnginxのコンテナを起動する際、ホストの8080番ポートへの接続をコンテナの80番ポートへ転送する指定として適切なものはどれか。

当サイトのオリジナル問題(LinuCレベル2の出題範囲「コンテナ」に対応。実際の試験問題ではありません)

正解:C

解説

docker runの-p(--publish)オプションは「ホスト側ポート:コンテナ側ポート」の順で指定し、ホストのポートへの接続をコンテナのポートへ転送(ポート変換)します。-p 8080:80 とすれば、ホストの8080番ポートへの接続がコンテナの80番ポートに届きます。-p 127.0.0.1:8080:80 のようにホスト側のIPアドレスを指定して、待ち受けを限定することもできます。設定されたポートの対応は docker ps の出力や docker port コマンドで確認できます。

選択肢ごとの解説

  • A誤り。順序が逆で、これはホストの80番ポートをコンテナの8080番ポートへ転送する指定になります。
  • B誤り。--exposeはコンテナが使うポートを宣言するだけで、ホストのポートとの対応付け(公開)は行いません。
  • C正しい。-p ホスト側ポート:コンテナ側ポート の順で指定します。
  • D誤り。--linkはコンテナ同士を名前で接続する旧来の機能で、ポートの転送を指定するものではありません。
LinuCレベル2の問題を演習モードで解く