このコマンドの -p 8080:80 の意味として正しいものは?
$ docker run -d -p 8080:80 nginx:1.27正答
- コンテナの 8080 番を、ホストの 80 番として公開する
- ホストの 8080 番への接続を、コンテナの 80 番に転送する
- ホストの 80 番から 8080 番までの範囲を、まとめて公開する
- コンテナの中だけで、8080 番と 80 番の両方を待ち受ける
解説
-p(--publish)は「ホスト側のポート:コンテナ側のポート」の順に書く。-p 8080:80 なら、ホストの 8080 番に来た接続がコンテナの 80 番(nginx の待ち受け)に転送され、ブラウザでは http://localhost:8080/ で開く。順番を逆に覚えると、開くべきポートを取り違えて「つながらない」と悩むことになる(1 番目)。範囲の指定は 8000-8010:8000-8010 のようにハイフンで書くもので、コロンは範囲の意味ではない(3 番目)。待ち受けるのはアプリで、-p はホストからの転送を設定するだけ(4 番目)。-d はバックグラウンドで起動する指定。
参考: docs.docker.com
この問題を含む Docker のテストを制限時間つきで解く
Dockerクイズへ