LoginSignup
21
16

More than 5 years have passed since last update.

Dockerfile EXPOSE / --publish-all / --publish の使い分け

Posted at

Docker には以下の 3種類ポートの共有についての設定があると思う。

  • Dockerfile EXPOSE
  • docker run / create -P, --publish-all=true|false
  • docker run / create -p, --publish=[]

それぞれについて使い分けを説明する。

Dockerfile EXPOSE

Docker コンテナ間のポート共有の為の仕組み。

未検証だが、一つのホストに複数の用途が異なるコンテナを立てる場合に用いると思う。

詳しく -> https://docs.docker.com/reference/builder/#expose

docker run / create -P, --publish-all=true|false

Dockerfile EXPOSE で指定したポートをホストに公開する設定。

但し、ホスト側の 49153-65535 の間のポートで公開されるため、プログラムから Docker コンテナを立ち上げ、コンテナごとにポートを指定する場合に用いると思う。

詳しく -> https://docs.docker.com/articles/networking/#binding-ports

docker run / create -p, --publish=[]

-p 3306:3306 といった設定で host:guest のポートをつなぐ。

シンプルに Docker コンテナで Web アプリケーションサーバを起動して外部に公開する場合に利用すると思う。

詳しく -> man docker run or https://docs.docker.com/articles/networking/#binding-ports

21
16
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
21
16