You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何通过Docker部署WordPress并使用不同于宿主机的IP地址访问

实现方案

核心原理是Docker支持端口映射时指定绑定的宿主机IP,只要该IP是宿主机网卡已配置的可用IP,即可实现通过指定IP单独访问WordPress服务,和宿主机原有IP互不干扰。

步骤1:给宿主机绑定目标自定义IP

首先确认你要使用的自定义IP是当前局域网未被占用的可用IP,将其绑定到宿主机物理网卡上:

  • 临时生效(重启后失效):执行命令 ip addr add 你要指定的IP/24 dev 你的网卡名,网卡名可通过ip a命令查询
  • 永久生效:根据宿主机发行版修改网络配置文件,Debian/Ubuntu修改/etc/network/interfaces,CentOS/RHEL修改/etc/sysconfig/network-scripts/ifcfg-你的网卡名,添加对应IP配置项即可。

步骤2:Docker部署时绑定指定IP

默认Docker端口映射格式为-p 宿主机端口:容器端口,会绑定宿主机所有IP,你只需修改为-p 你指定的IP:宿主机端口:容器端口格式即可。

docker run 部署示例

首先创建自定义容器网络:

docker network create wp-net

启动MySQL服务:

docker run -d \
  --name wp-mysql \
  --network wp-net \
  -e MYSQL_ROOT_PASSWORD=自定义数据库root密码 \
  -e MYSQL_DATABASE=wordpress \
  -e MYSQL_USER=自定义wordpress数据库账号 \
  -e MYSQL_PASSWORD=自定义wordpress数据库密码 \
  mysql:8.0

启动WordPress服务,绑定到指定IP的80端口:

docker run -d \
  --name wordpress \
  --network wp-net \
  -e WORDPRESS_DB_HOST=wp-mysql:3306 \
  -e WORDPRESS_DB_USER=你设置的wordpress数据库账号 \
  -e WORDPRESS_DB_PASSWORD=你设置的wordpress数据库密码 \
  -e WORDPRESS_DB_NAME=wordpress \
  -p 你指定的IP:80:80 \
  wordpress:latest

docker compose 部署示例

创建docker-compose.yml文件,内容如下:

version: '3.8'
services:
  mysql:
    image: mysql:8.0
    restart: always
    environment:
      MYSQL_ROOT_PASSWORD: 自定义数据库root密码
      MYSQL_DATABASE: wordpress
      MYSQL_USER: 自定义wordpress数据库账号
      MYSQL_PASSWORD: 自定义wordpress数据库密码
    volumes:
      - mysql-data:/var/lib/mysql
  wordpress:
    image: wordpress:latest
    restart: always
    depends_on:
      - mysql
    environment:
      WORDPRESS_DB_HOST: mysql:3306
      WORDPRESS_DB_USER: 你设置的wordpress数据库账号
      WORDPRESS_DB_PASSWORD: 你设置的wordpress数据库密码
      WORDPRESS_DB_NAME: wordpress
    ports:
      - "你指定的IP:80:80"
    volumes:
      - wp-data:/var/www/html
volumes:
  mysql-data:
  wp-data:

执行命令docker compose up -d启动服务即可。

步骤3:验证配置

执行docker port wordpress,输出应显示80/tcp -> 你指定的IP:80,说明绑定成功,此时直接访问你指定的IP即可打开WordPress初始化页面,宿主机原有IP无法通过80端口访问该服务。

可选方案:使用Macvlan给容器分配独立IP

如果你不想给宿主机绑定额外IP,希望容器本身直接拥有独立的局域网IP,可使用Docker的Macvlan网络驱动:

  1. 创建Macvlan网络,示例网段为192.168.1.0/24,网关为192.168.1.1,物理网卡为eth0:
    docker network create -d macvlan --subnet=192.168.1.0/24 --gateway=192.168.1.1 -o parent=eth0 wp-macvlan
  2. 启动容器时指定IP参数--network wp-macvlan --ip 你要指定的IP,即可让容器直接使用该独立IP,不需要额外端口映射。
    注意:该方案默认宿主机无法和Macvlan网络内的容器通信,需额外配置宿主机Macvlan子接口,适合仅需局域网其他设备访问容器的场景。

注意事项
  • 指定的IP必须是宿主机所在局域网的可用IP,否则其他设备无法正常路由访问
  • 若宿主机开启了防火墙,需放行对应IP的80/443端口访问权限
  • 如需公网访问该自定义IP,需在路由器上配置对应IP的端口映射或公网IP绑定规则

内容的提问来源于stack exchange,提问作者lil_bat109

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.07 08:36:04