网络链接
网络设置
Docker 容器可以通过多种网络模式实现与宿主机网络的连接,以下是一些常用的网络模式:
网络模式 | 描述 | 如何使用 | 备注 |
---|---|---|---|
Bridge | 默认网络模式,为每个容器创建一个独立的网络命名空间,容器通过虚拟网桥与外部通信 | docker run --network bridge 或不指定网络模式 | 容器间可以通过内部IP通信,与外部通信需要端口映射 |
Host | 容器共享宿主机的网络命名空间,使用宿主机的网络接口 | docker run --network host | 容器与宿主机网络完全融合,无隔离,可能存在安全隐患 |
None | 容器拥有自己的网络命名空间,但不配置任何网络接口 | docker run --network none | 适用于不需要网络连接的容器,需要手动配置网络 |
Container | 新创建的容器与已存在的容器共享一个网络命名空间 | docker run --network container:<name_or_id> | 两个容器网络共享,其他方面隔离 |
User-defined | 用户自定义网络,可以是桥接、覆盖或MACVLAN等 | docker network create 然后 docker run --network <network_name> | 提供网络隔离和定制化的网络配置 |
Macvlan | 容器直接映射到物理网络,拥有独立的MAC地址 | 使用 docker network create --driver macvlan | 适用于容器需要直接访问物理网络的场景 |
在创建容器时,可以通过指定网络模式来实现容器与宿主机网络的连接。例如,如果需要容器直接使用宿主机的网络接口,可以使用 --network host
选项。如果需要容器拥有独立的网络空间,但同时希望它能够与宿主机网络通信,可以使用桥接模式并通过端口映射来实现。
此外,还可以创建自定义网络,为容器提供一个独立的网络环境,同时允许容器与宿主机网络通信。自定义网络可以通过 docker network create
命令创建,并使用 --network
选项在运行容器时指定。
需要注意的是,不同的网络模式有不同的适用场景和限制,选择合适的网络模式需要根据具体的应用需求和安全考虑来决定。
常用的网络指令
# 创建一个新网络
docker network create <网络名>
docker network create --subnet=172.168.0.0/16 <网络名>
# 查看网络信息
docker network inspect psd-tools
docker inspect psd-tools-redis
docker inspect psd-tools-v1
当前网络
docker network ls
通过上面命令可以列出docker当前环境下拥有的网络环境,
查看容器的网络的信息信息
docker network inspect psd-tools
创建一个网络并映射端口到宿主机
docker network create --driver bridge yibu-wx-v1
# 后台运行
docker run --name your_container_name \
--network yibu-wx-v1 \
-p host_port:container_port \
-d image_name
# 直接进入容器
docker run --name your_container_name \
--network yibu-wx-v1 \
-p host_port:container_port \
-it image_name