docker通信及路径映射

By | 2025-08-23

docker通信及路径映射

docker通信

  • docker相关基础命令
    # 开启docker,需要cd到docker_app的目录
    docker compose up -d
    # 关闭docker,同上
    docker compose down
    # 显示正在运行的docker
    docker ps
    
  • docker的通信原理
模式 特点 适用场景
Bridge 每个容器分配独立 IP,通过 docker0 虚拟网桥与宿主机通信。容器间可通过 IP 或容器名(需在同一自定义网络)通信。 多容器隔离环境(如开发、测试)
Host 容器直接使用宿主机的网络栈,无独立 IP。性能高,但端口冲突风险大。 高性能需求(如负载均衡器)
None 完全禁用网络 仅用于特殊场景(如离线数据处理)
Overlay 用于跨主机的容器通信 Swarm 集群
  1. 查看docker_app网络模式
    # 查询当前Docker网络和容器
    docker network ls
    
  2. 查看docker_app的ip
    # 查看docker_app的容器子网和网关,docker_app_network用上面的docker network ls看
    docker network inspect [docker_app_network] | grep -E "Subnet|Gateway"
    
  • 固定docker的容器ip
    直接修改docker_app所在文件夹下docker-compose.yml文件,在文末加上ip配置即可。
    networks:
      app_network:
          driver: bridge
          ipam:
              config:
                  - subnet: 172.28.0.0/16
                    gateway: 172.28.0.1
    
  • 实操案例
  1. llonebot与nonebot反向ws通信
    • llonebot使用docker版安装、启动
    • docker-compose.yml文件固定ip
    • llonebot开启反向ws
    • 反向ws地址填写:ws://172.28.0.1:3004/onebot/v11/ws
    • nonebot监听端口:0.0.0.0:3004(端口相同,必须0.0.0.0)

docker路径映射

  • Docker 无法直接访问宿主机文件系统,需要像挂载U盘一样,通过volume挂载将宿主机目录绑定到容器内的指定路径。例如,使用-v参数将主机上的~/host_folder映射到容器内的/app/data