Docker 进阶
Mike Metzger
Data Engineer
EXPOSE 指令<number>、<number>/tcp 或 <number>/udpEXPOSE 80 或 EXPOSE 80/tcpdocker run 中使用 -p 或 -P 才能让端口对外可用-P 会自动将临时端口映射到已暴露端口。需用 docker ps -a 查看映射结果。-p<host port>:<container port> 可指定端口# Dockerfile
FROM python:3.11-slim
ENTRYPOINT ["python","-mhttp.server"]
# Let the Docker engine know
# port 8000 should be available
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 进阶