---
title:
slug:
description:
creation: 2026-06-17
lastmod: " 2026-06-17"
image: cover.png
math:
license:
hidden: false
draft: false
categories:
tags:
  - docker
  - 显示所有网络接口参数
  - 端口映射
---

# 网络与端口

## 为什么需要发布端口

容器为每个组件提供了隔离的进程。默认情况下，容器内的服务无法从主机直接访问。通过设置端口转发规则，我们可以将主机端口上的流量转发到容器内的端口。

## 指定端口映射

使用 `-p` 选项：
```console
docker run -d -p HOST_PORT:CONTAINER_PORT nginx
````

例如，将容器的端口 `80` 发布到主机端口 `8080`：

```console
docker run -d -p 8080:80 nginx
```

## 发布所有端口

使用 `-P` 或 `--publish-all` 标志自动将所有 EXPOSE 的端口发布到临时端口：

```console
docker run -P nginx
```

## 自定义网络

默认情况下，容器连接到桥接网络。你可以创建自定义网络以获得更好的隔离和 DNS 解析。

```console
docker network create mynetwork
docker run -d -e POSTGRES_PASSWORD=secret -p 5434:5432 --network mynetwork postgres
```

自定义网络的优势：容器可以通过名称相互解析，且隔离性更好。

更多网络细节可参阅官方文档，或与 [Docker Compose 与多容器管理](app://obsidian.md/Docker%20Compose%20%E4%B8%8E%E5%A4%9A%E5%AE%B9%E5%99%A8%E7%AE%A1%E7%90%86) 中的 YAML 配置结合使用。