コマンドの `-p`フラグは、docker run -p 8000：80 nginx`の略です。`-publish`フラグに相当します。

ここでは、ホストのポート8000がコンテナのTCPポート80にマッピングされます。言い換えれば、外部からコンテナと対話するために、ポート8000を使用します。Dockerコンテナで実行されているアプリケーションは、ポート80を通じて通信します。

`-p`フラグに対する議論は形式です。
`[ip：] host_port [-host_port_upper_range]：container_port [-container_port_upper_range] [/protocol]`

追加の例：
`-p 127.0.0.1：8000：80`：IP 127.0.0.1（localhost）をホストするための接続のために、ホストのポート8000にコンテナのTCPポート80をバインドします
`-p 8000：80/udp`：コンテナのUDPポート80をホストのポート8000にバインドします
`-P 7000-8000：7000-8000/TCP`：バインドコンテナのTCPポート7000から8000からホストポート7000〜8000

`-publish`は`  -  expose`に似ていますが、後者はそれを公開していません。露出したポートは内部でのみアクセスできますが、公開されたポートは外部サービスでアクセスできます。
The `-p` flag in the command `docker run -p 8000:80 nginx` stands for "publish". It is equivalent to the `--publish` flag.

Here port 8000 of the host is mapped to TCP port 80 of the container. In other words, to interact with the container from the outside, we use port 8000. The application running in the docker container communicates through port 80.

The argument to the `-p` flag is of the form:
`[ip:]host_port[-host_port_upper_range]:container_port[-container_port_upper_range][/protocol]`

Additional examples:
`-p 127.0.0.1:8000:80` : Bind container's TCP port 80 to host's port 8000 for connections to host IP 127.0.0.1 (localhost)
`-p 8000:80/udp` : Bind container's UDP port 80 to host's port 8000
`-p 7000-8000:7000-8000/tcp` : Bind container's TCP ports 7000 through 8000 to host's ports 7000 through 8000

Similar to `--publish` is `--expose` but the latter does not publish it. Exposed ports can only be accessed internally while published ports can be accessible by external services.