Docker 中級
Mike Metzger
Data Engineer
EXPOSE コマンド<number>、<number>/tcp、<number>/udp で指定可能EXPOSE 80 や EXPOSE 80/tcpdocker run の -p または -P が必要です-P は公開ポートに自動でエフェメラルポートを割り当てます。どのポートかは docker ps -a で確認します。-p<ホストポート>:<コンテナポート> で特定ポートを指定できます。# Dockerfile
FROM python:3.11-slim
ENTRYPOINT ["python","-mhttp.server"]
# Docker エンジンに
# 8000 番ポートを利用することを通知
EXPOSE 8000
docker run pyserver
docker ps -a
CONTAINER ID IMAGE ... PORTS NAMES
8c3d320255ae pyserver ... 8000/tcp angry_chaum
docker run -P pyserver
docker ps -a
CONTAINER ID IMAGE ... PORTS NAMES
6bb458ef25da pyserver ... 0.0.0.0:55001->8000/tcp beautiful_lamarr
docker inspect は多くの情報を提供しますdocker inspect <id>
"NetworkSettings": {
"Bridge": "",
"Ports": {
"8000/tcp": [{
"HostIp": "0.0.0.0",
"HostPort": "55001"
}]
},
...
Docker 中級