Docker构建
Docker构建
Dockerfile配置
举例python后端配置
1 | # 使用Python 3.9的slim版本作为基础镜像 |
前端配置:先打包程序,再部署到nginx
1 | # Step 1: 使用Node.js镜像来打包程序 |
Docker网络配置
docker network ls:查看Docker网络配置
docker network inspect <NetworkID>:查看网络配置详情
默认桥接模式(bridge)
这是Docker的默认网络模式。Docker会为每个容器分配一个IP地址,并创建一个本地的网络桥接接口,连接所有在该主机上运行的容器。
通过桥接接口,容器可以相互通信,也可以与主机上的其他服务通信。
Bridge模式提供了良好的隔离性,但可能会有一定的性能开销。适用于需要容器间通信且与外部网络隔离的场景。
graph TB
subgraph Docker0
172.17.01
end
subgraph Docker1
172.17.0.2
end
subgraph Docker2
172.17.0.3
end
Docker1-->Docker0
Docker2-->Docker0
subgraph Host
192.168.1.2
end
Docker0--IP转发-->Host
主机模式(host)
容器共享宿主机的网络栈,使用宿主机的IP地址和端口。
这种模式下,容器可以直接访问宿主机的网络资源,性能较高,但隔离性较差,可能带来安全风险。
适用于需要高性能网络连接的应用。
注:主机模式不允许端口映射和自定义路由规则,与主机保持一致。-p、-icc参数无效
graph TB
subgraph Host
192.168.1.2
subgraph Docker1
192.168.1.2:XXXX
end
subgraph Docker2
192.168.1.2:YYYY
end
end
容器模式(container)
多个容器共享同一个网络命名空间。
一个容器可以共享另一个容器的网络栈。新创建的容器不会创建自己的网卡,配置自己的 IP
适用于需要紧密协作的容器,如服务发现或负载均衡场景。
docker run -it --net container:<容器id> <镜像id>
无网络模式(none)
容器没有分配任何网络资源。无网络模式适用于不需要网络连接的容器,例如用于批处理作业或与外部网络完全隔离的容器。
- 自定义网络模式(user-defined):允许用户创建和管理自己的网络。自定义网络模式提供了更灵活的网络配置选项,例如指定子网、定义网络驱动程序和连接多个容器到同一个网络等。
自定义网络模式
docker network create custom_network,默认为driver模式,会创建一个新的虚拟网桥。可以让多个容器使用该自定义网络