首页 > 其他分享 >Docker网络管理

Docker网络管理

时间:2024-08-04 23:17:38浏览次数:9  
标签:容器 run 网络管理 -- 宿主机 web1 Docker docker

一、Docker 网络实现原理

Docker使用Linux桥接,在宿主机虚拟一个Docker容器网桥(docker0),Docker启动一个容器时会根据Docker网桥的网段分配给容器一个IP地址,称为Container-IP,同时Docker网桥是每个容器的默认网关。

在同一宿主机内的容器都接入同一个网桥,这样容器之间就能够通过容器的 Container-IP 直接通信。

Docker网桥是宿主机虚拟出来的,并不是真实存在的网络设备,外部网络是无法寻址到的,这也意味着外部网络无法直接通过 Container-IP 访问到容器。

如果容器希望外部访问能够访问到,可以通过映射容器端口到宿主主机(端口映射),即 docker run 创建容器时候通过 -p 或 -P 参数来启用,访问容器的时候就通过[宿主机IP]:[容器端口]访问容器。

#查看默认的网络模式
docker network list

二、网络模式介绍

1.host模式

容器和宿主机共享网络命名空间,即容器和宿主机使用同一个IP、端口范围(容器与宿主机/同模式的容器不可以相同的端口号)、路由、iptables规则等

docker run --network=host

2.container模式

和指定且已存在的容器共享网络命名空间,即两个使用同一个IP、端口范围(容器与宿主机/同模式的容器不可以相同的端口号)、路由、iptables规则等

docker run --network=container:指定的容器ID|容器名

3.none模式

每个容器都有独立的网络命名空间,但是容器没有eth0网卡、IP、端口等,只有lo网卡。

docker run --network=none

4.bridge模式

docker的默认网络模式。

此模式的每个容器都要独立的网络命名空间,即每个容器都有独立的IP、端口范围(每个容器可以相同的端口号)、路由、iptables规则等。

docker run [--network=bridge]

5.自定义网络

可以自定义创建一个网段、网桥、网络模式,从而可自定义容器IP来创建容器

docker network create --subnet 新网段 --opt "com.docker.network.bridge.name"="新网桥名" 新网络模式名

docker run --network 新网络模式名 --ip 自定义IP

三、Docker网络通信

1.端口映射

在启动容器的时候,如果不指定对应的端口,在容器外是无法通过网络来访问容器内的服务。

端口映射机制将容器内的服务提供给外部网络访问,实质上就是将宿主机的端口映射到容器中,使得外部网络访问宿主机的端口便可访问容器内的服务。

docker run  -d  -P       #使用从32768开始的随机端口映射容器

docker run -p 宿主机端口:容器端点       #指定宿主机端口映射容器
docker run -d --name test1 -P nginx                    #随机映射端口(从32768开始)

docker run -d --name test2 -p 43000:80 nginx        #指定映射端口

docker ps -a

2.容器互联

容器互联是通过容器的名称在容器间建立一条专门的网络通信隧道。

简单点说,就是会在源容器和接收容器之间建立一条隧道,接收容器可以看到源容器指定的信息。

#创建并运行源容器取名web1
docker run -itd -P --name web1 centos:7 /bin/bash    
    
#创建并运行接收容器取名web2,使用--link选项指定连接容器以实现容器互联
docker run -itd -P --name web2 --link web1:web1 centos:7 /bin/bash            
#--link 容器名:连接的别名
# --link web1:web1
web1是指定的目标容器的名称或别名。
web1是目标容器中可以使用的别名,在web2容器中可以通过这个别名访问web1容器。

#进web2 容器, ping web1
docker exec -it web2 bash
ping web1

 

标签:容器,run,网络管理,--,宿主机,web1,Docker,docker
From: https://www.cnblogs.com/hxqwe/p/18342403

相关文章

  • Docker数据管理
    一、容器的数据管理介绍1.Docker容器的分层容器的数据分层目录LowerDir:image镜像层,即镜像本身,只读UpperDir:容器的上层,可读写,容器变化的数据存放在此处MergedDir:容器的文件系统,使用UnionFS(联合文件系统)将lowerdir和upperdir合并完成后给容器使用,最终呈......
  • Go 静态编译及在构建 docker 镜像时的应用
    Go语言具有跨平台和可移植的特点,同时还支持交叉编译,可以在一个系统上编译出运行在另一个系统上的二进制可执行文件,这是因为Go在编译时支持将依赖的库文件与源代码一起编译链接到二进制文件中,所以在实际运行时不再需要依赖运行环境中的库,而只需要一个二进制文件就可以运行,在构建......
  • docker入门学习
    docker入门学习前言一、简介1.docker是什么2.docker特点及应用3.docker与虚拟机的区别4.docker相关概念理解5.docker网络二、docker安装1.安装2.配置镜像三、docker命令1.服务相关命令2.容器相关命令3.镜像相关命令四、搭建服务测试1.搜索tomcat镜像2.pulltomcat3.查......
  • 谈谈你对docker的理解
    Docker是一种容器化技术,主要用于轻量级、可移植的应用程序打包和部署。1.容器化技术的基本概念容器:容器是一种轻量级的、独立运行的应用程序打包方式,包含运行所需的所有依赖项(代码、运行时环境、系统工具、库等),并且在任何环境中均能保持一致运行。Docker:Docker是当......
  • 【保姆级讲解Docker容器 ! ! !】
    ......
  • gogs的安装和使用(docker)
    1.docker安装gogs1.1拉取gogs镜像dockerpullgogs/gogs#也可改为自己需要的版本号 1.2创建存储目录mkdir/root/gogs 1.3 运行镜像 dockerrun--name=gogs-d-p10022:22-p13000:3000-v/root/gogs:/datagogs/gogs1.3.1指令解析 --name=gogs:指......
  • Docker常用容器安装
    Docker安装安装docker(centos)docker引擎安装官网地址:InstallDockerEngineonCentOS|DockerDocumentation手动安装#卸载旧版本sudoyumremovedocker\docker-client\docker-client-latest\docker-common\docker-latest\docker-latest-logrotate\docker-l......
  • Docker 常用命令总结
    前言本文介绍Docker常用的一些命令,Docker常用配置可参考Docker实用配置技巧。Docker管理查看服务端和客户端版本dockerversion查看服务端和客户端配置和参数信息dockerinfo镜像操作Docker镜像可以看作一个模板。查看本地镜像列表dockerimages使用-q......
  • Docker Hub 和 registry-1.docker.io 的关系
     registry-1.docker.io是DockerHub的底层注册表(Registry)地址,用于存储和管理Docker镜像。在Docker中,一个注册表(Registry)是存储Docker镜像的地方,而registry-1.docker.io是DockerHub的注册表地址之一。DockerHub和registry-1.docker.io的关系:DockerHub:Do......
  • 更换yum源,安装docker与拉取镜像
    1.更换yum源备份:mv/etc/yum.repos.d/CentOS-Base.repo/etc/yum.repos.d/CentOS-Base.repo.backup更换:wget-O/etc/yum.repos.d/CentOS-Base.repohttps://mirrors.aliyun.com/repo/Centos-7.repo运行  yummakecache 生成缓存2.CentOS7(使用yum进行安装docker)st......