前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Docker笔记9 | Docker中网络功能知识梳理和了解

Docker笔记9 | Docker中网络功能知识梳理和了解

原创
作者头像
虫无涯
发布2023-05-25 10:28:37
2870
发布2023-05-25 10:28:37
举报
文章被收录于专栏:全栈测试技术

简单说:Docker 允许通过外部访问容器或容器互联的方式来提供网络服务。

1 外部访问容器

1.1 访问方式

  • 要想让外部访问容器中的一些网络应用,需要通过 -P-p 参数来指定端口映 射;
  • -PDocker 会随机映射一个端口到内部容器开放的网络端口;
  • docker container ls查看到本地主机的 32768 被映射到了容器的 80 端口,此时访问本机的 32768 端口即可访问容器内 NGINX 默认页面:
    在这里插入图片描述
    在这里插入图片描述
  • docker run -d -P nginx:alpine
    在这里插入图片描述
    在这里插入图片描述
  • -p:指定要映射的端口(在一个指定端口上只可以绑定一个容器)。
代码语言:python
代码运行次数:0
复制
# 支持的格式
ip:hostPort:containerPort | ip::containerPort | hostPort:containerPort 

1.2 映射所有接口地址

  • 方式:hostPort:containerPort(默认会绑定本地所有接口上的所有地址);
  • 举例:本地的80映射到容器的80端口:
代码语言:python
代码运行次数:0
复制
docker run -d -p 80:80 nginx:alpine
在这里插入图片描述
在这里插入图片描述

1.3 映射到指定地址的指定端口

  • 方式:ip:hostPort:containerPort(指定映射使用一个特定地址);
  • 举例:比如localhost 地址:
代码语言:python
代码运行次数:0
复制
docker run -d -p 127.0.0.1:80:80 nginx:alpine 
  • 我这里端口已经被绑定了,所以会报错,先不管这个:
    在这里插入图片描述
    在这里插入图片描述

1.4 映射到指定地址的任意端口

  • 方式:ip::containerPort
  • 举例:绑定 localhost 的任意端口到容器的 80 端口,本地主机会自动分配一个端口:
代码语言:python
代码运行次数:0
复制
docker run -d -p 127.0.0.1::80 nginx:alpine
在这里插入图片描述
在这里插入图片描述

1.5 查看映射端口配置

  • 命令:docker port
    在这里插入图片描述
    在这里插入图片描述

2 容器互联

2.1 新建网络

  • 创建新的docker网络:
代码语言:python
代码运行次数:0
复制
docker network create -d bridge mynet
在这里插入图片描述
在这里插入图片描述

2.2 连接容器

  • 运行容器并连接到刚才新建的网络mynet
代码语言:python
代码运行次数:0
复制
docker run -it --rm --name busybox1 --network mynet busybox sh
在这里插入图片描述
在这里插入图片描述
  • 打开新的终端,再运行一个容器并加入到 mynet 网络:
代码语言:python
代码运行次数:0
复制
docker run -it --rm --name busybox2 --network mynet busybox sh
在这里插入图片描述
在这里插入图片描述
  • 再打开一个终端查看容器信息:
    在这里插入图片描述
    在这里插入图片描述
  • 使用ping命令来验证两个容器建立了互联关系:
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

3 配置DNS

  • Docker 利用虚拟文件来挂载容器的 3 个相关配置文件;
  • 通过mount命令查看挂载信息:
    在这里插入图片描述
    在这里插入图片描述
  • 宿主主机 DNS 信息发生更新后,所有 Docker 容器的 DNS 配置通过 /etc/resolv.conf文件立刻得到更新;
  • 配置全部容器DNS,也可以在 /etc/docker/daemon.json 文件中增加以下内容来设置:
代码语言:python
代码运行次数:0
复制
{
	"dns" : [
		"123.123.123.123",
		"6.6.6.6"
	]
}
  • 则,每次启动容器DNS为以上的配置。使得配置生效的命令为:
代码语言:python
代码运行次数:0
复制
 docker run -it --rm ubuntu:18.04 cat etc/resolv.conf

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 1 外部访问容器
    • 1.1 访问方式
      • 1.2 映射所有接口地址
        • 1.3 映射到指定地址的指定端口
          • 1.4 映射到指定地址的任意端口
            • 1.5 查看映射端口配置
            • 2 容器互联
              • 2.1 新建网络
                • 2.2 连接容器
                • 3 配置DNS
                相关产品与服务
                容器镜像服务
                容器镜像服务(Tencent Container Registry,TCR)为您提供安全独享、高性能的容器镜像托管分发服务。您可同时在全球多个地域创建独享实例,以实现容器镜像的就近拉取,降低拉取时间,节约带宽成本。TCR 提供细颗粒度的权限管理及访问控制,保障您的数据安全。
                领券
                问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档