从零开始的Docker详解(五)

2023-11-19

Docker容器互联

简介:docker可以定义一个连接系统将多个容器都连接在一起,共享连接信息。docker链接会创建一个父子关系,其中父容器可以看到子容器的信息。

新建网络

使用命令docker network ls来查看当前已有的docker网络。
在这里插入图片描述
使用命令docker network create -d bridge <name>来创建一个新的docker网络。
在这里插入图片描述参数说明:

  • -d:指定docker网络类型,有bridge、overlay等

连接容器

1.创建一个容器testa并连接到新建的my-net网络。

docker run -itd --name testa --network my-net ubuntu /bin/bash

在这里插入图片描述2.创建一个容器 testb 加入到新建的 my-net 网络。

docker run -itd --name testb --network my-net ubuntu /bin/bash

在这里插入图片描述
3.通过 ping 来证明 testa 容器和 testb 容器建立了互联关系。
首先,需要在容器内安装ping命令

apt-get update # 读取所有源的软件列表,需要联网下载,作用是激活和更新源
apt install iputils-ping # 安装ping命令

在这里插入图片描述
在容器 testa 中 ping testb
在这里插入图片描述在容器 testb 中 ping testa
在这里插入图片描述

配置DNS

设置全部容器的DNS

可以在宿主机的/etc/docker/daemon.json文件中添加以下内容来设置全部容器的DNS。

{
  "dns" : [
    "114.114.114.114",
    "8.8.8.8"
  ]
}

注:配置完需要重启docker服务(systemctl restart docker)才会生效,启动容器的DNS会自动配置为 114.114.114.114 和 8.8.8.8

示例:启动一个容器并查看该容器的DNS是否生效。

docker run -it --name testc ubuntu cat etc/resolv.conf

在这里插入图片描述

设置指定容器的DNS
docker run -it --rm -h my_ubuntu  --dns=114.114.114.114 --dns-search=test.com ubuntu

参数说明:

  • -h :设定容器的主机名,会被写入到容器内的 /etc/hostname 和 /etc/hosts。
  • –dns=ip_address:添加 DNS 服务器到容器的 /etc/resolv.conf 中,让容器用这个服务器来解析所有不在 /etc/hosts 中的主机名。
  • –dns-search=DOMAIN: 设定容器的搜索域,当设定搜索域为 test.com 时,在搜索一个名为 hostname 的主机时,DNS 不仅搜索 hostname,还会搜索 host.test.com。
    在这里插入图片描述

注:如果容器启动时没有指定–dns和–dns-search,docker默认使用宿主机上/etc/resolv.conf来配置容器的DNS

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

从零开始的Docker详解(五) 的相关文章

  • 如何使用 pipelinev 为 python 应用程序制作轻量级 docker 镜像

    我可以通过以下简单的操作为我的 python 应用程序生成工作图像Dockerfile FROM python 3 7 WORKDIR myapp COPY Pipfile RUN pip install pipenv RUN pipenv
  • 如何以编程方式从Linux中的进程名称获取进程ID

    在我的项目中 我们使用 ACE 自适应通信环境 中间件来编写可在 Windows 和 Linux 上运行的独立于操作系统的代码 要求是从进程名称中获取进程 ID 由于 ACE 不支持这一点 因此我们必须使用特定于平台的宏来分离 Window
  • 每个进程每个线程的时间量

    我有一个关于 Windows 和 Linux 中进程和线程的时间量子的问题 我知道操作系统通常为每个线程提供固定的时间量 我知道时间量根据前台或后台线程而变化 也可能根据进程的优先级而变化 每个进程有固定的时间量吗 例如 如果操作系统为每个
  • 无法在 Google Cloud Run 上部署 Ubuntu 20.04 Docker 容器

    我正在尝试通过 Google Cloud Run 部署一个基于 Ubuntu 20 04 的简单的基于 Python 的 Docker 容器 我已经成功构建了映像 但是当我尝试部署 Cloud Run 服务时 出现以下错误 省略了项目详细信
  • Bash 方法的返回值总是模 256

    我有一个 bash 脚本方法 它返回输入值 然而 返回值始终是模 256 的值 我用 google 搜索了一段时间 发现this http www tldp org LDP abs html exitcodes html文章说它总是以 25
  • 适用于 KDE 和 Gnome 的 Gui [重复]

    这个问题在这里已经有答案了 我想为一个现在是 CLI 的应用程序编写一个 gui 它需要在 KDE 和 Gnome DE 中 看起来不错 充分利用用户的外观设置 如果我选择 Qt 或 GTK 我能够做到这一点吗 它们与两个 DE 集成良好吗
  • 从 Kubernetes Python 客户端登录到 GitLab 存储库

    我有一个 Django 应用程序 它使用python 的官方 Kubernetes 客户端 https github com kubernetes client python并且工作正常 但它只部署 正确 公共注册表 有没有办法执行登录后让
  • 使用 Nginx 在 Docker 容器内部署带有路由器的 Angular2

    我正在尝试部署一个使用框架的路由器功能的 Angular 2 但在 docker 容器内使用 nginx 为其提供服务时遇到一些问题 由 angular cli 构建的 Angular 应用程序具有如下文件结构 dist 08c42df75
  • 在主目录中安装库

    在 Linux Ubuntu 中 我尝试运行一个工具 但它显示错误 库丢失 我无权在系统中安装任何内容 或者根本无法从我的用户帐户执行 sudo 是否可以在我的主目录 没有 sudo 中安装缺少的库 在我的例子中为 libstdc so 6
  • diff 文件仅比较每行的前 n 个字符

    我有2个文件 我们将它们称为 md5s1 txt 和 md5s2 txt 两者都包含a的输出 find type f print0 xargs 0 md5sum sort gt md5s txt 不同目录下的命令 许多文件被重命名 但内容保
  • PHP 致命错误:未找到“MongoClient”类

    我有一个使用 Apache 的网站 代码如下 当我尝试访问它时 我在 error log 中收到错误 PHP Fatal Error Class MongoClient not found 以下是可能错误的设置 但我认为没有错误 php i
  • 如何制作和应用SVN补丁?

    我想制作一个SVN类型的补丁文件httpd conf这样我就可以轻松地将其应用到其他主机上 If I do cd root diff Naur etc httpd conf httpd conf original etc httpd con
  • Docker和--userns-remap,如何管理卷权限以在主机和容器之间共享数据?

    在 Docker 中 在容器内创建的文件在从主机检查它们时往往具有不可预测的所有权 默认情况下 卷上文件的所有者是 root uid 0 但一旦非 root 用户帐户参与容器并写入文件系统 从主机的角度来看 所有者或多或少会变得随机 当您需
  • .NET Core 中的跨平台文件名处理

    如何处理文件名System IO以跨平台方式运行类以使其在 Windows 和 Linux 上运行 例如 我编写的代码在 Windows 上完美运行 但它不会在 Ubuntu Linux 上创建文件 var tempFilename Dat
  • 在 Linux 中禁用历史记录 [关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 要在 Linux 环境中禁用历史记录 我执行了以下命令 export HISTFILESIZE 0 export HISTSIZE 0 u
  • Godaddy 托管上的 CakePHP 控制台

    我一直在努力让我的 CakePHP 网站在 Godaddy 网格托管 帐户上运行 我的蛋糕应用程序设置是从帐户的子目录托管的 并且可以通过子域访问 我必须调整我的 htaccess 文件才能使其正常工作 现在我需要让 CakePHP 控制台
  • Docker EXPOSE 使用运行时环境变量

    我的 Dockerfile 设置了一些环境变量的默认值 然后公开了两个应该是提供的环境变量的端口 FROM python 3 6 5 stretch ENV MY SERVICE PORT 8080 ENV MY SERVICE PORT
  • 在 Mac OS X 上从 boot2docker 迁移到 Vagrant+NFS 的最快方法是什么?

    我有一个从官方 mysql 构建的数据库容器docker pull mysql 我有一个前端应用程序app用蛋糕建造 我有一个后端应用程序cms使用 Symfony 构建 我为两者都设置了容器链接app and cms自动启动并连接到db
  • 在 Mac OS X 上构建 Linux 内核

    我正在做一个修改Linux内核的项目 我有一台桌面 Linux 机器 在上面构建内核没有问题 不过 我要去旅行 我想在途中工作 我只有一台 MacBook 当我尝试构建 Linux 内核时 它抱怨说elf h was not found 我
  • 我需要启用哪些权限才能使 Docker 卷正常工作?

    假设我有一个保存一些数据的 Docker 容器 我希望这些数据能够持续存在 如果容器被停止 删除 升级等 我仍然希望数据位于主机操作系统文件系统上的可访问位置 目前 我的解决方案是创建一个目录 srv service name在我的主机上

随机推荐

  • C++容器排序算法的简单应用

    功能实现 1 去掉所有重复的单词 2 按照单词的长度进行排序 3 统计长度等于或者超过6个字符的单词个数 4 按照单词的长度顺序进行输出 include
  • Ceph优化系列(一):Ceph架构及性能优化

    转载 Ceph架构及性能优化 对分布式存储系统的优化离不开以下几点 1 硬件层面 硬件规划 SSD选择 BIOS设置 2 软件层面 Linux OS Ceph Configurations PG Number调整 CRUSH Map 其他因
  • NoClassDefFoundError: org/springframework/cloud/client/loadbalancer/LoadBalancedRetryFactory

    异常信息 Exception in thread main java lang NoClassDefFoundError org springframework cloud client loadbalancer LoadBalancedR
  • CUDA异步执行与同步调试

    异步执行 默认情况下 GPU 操作是异步的 当您调用使用 GPU 的函数时 操作会被排入特定设备的队列 但不一定要等到稍后才会执行 这允许我们并行执行更多计算 包括在 CPU 或其他 GPU 上的操作 一般来说 异步计算的影响对调用者是不可
  • java基础-CAS、synchronized和AQS的理解

    乐观锁与悲观锁的区别 悲观锁 总是假设最坏的情况 每次去拿数据的时候都认为别人会修改 所以每次在拿数据的时候都会上锁 这样别人想拿这个数据就会阻塞直到它拿到锁 共享资源每次只给一个线程使用 其它线程阻塞 用完后再把资源转让给其它线程 传统的
  • Java数据库基础3

    行转列 首先我们默认的情况 每个名字都输出两次 而最终结果只有一次名字 所以肯定是 以名字分组 group by select from test 9 group by name 对我们来说 id 课程 和分数都不需要了 只需要有名字 然后
  • VMware设置centos7共享文件夹

    前言 VMware在设置centos6共享文件夹的时候 只需要安装vmware tools 然后在vmware里面配置共享文件夹即可 但是对于centos7 设置完之后 并不能如愿的将我们共享的目录显示在 mnt hgfs目录下 这里我们需
  • 新的征程

    十二生肖对应的五行 金 猴 鸡 木 虎 兔 水 鼠 猪 火 蛇 马 土 牛 龙 羊 狗 纳音五行如下 甲子乙丑海中金 甲午乙未沙中金 丙寅丁卯炉中火 丙申丁酉山下火 戊辰己巳大林木 戊戌己亥平地木 庚午辛未路旁土 庚子辛丑壁上土 壬申癸酉剑
  • unity2019.3 所有控制按键输入方法 input 鼠标输入,键盘输入,触屏输入,屏幕点击事件,物体拖拽点击事件说明带实例

    配置按键 unity为满足跨平台需求支持多种输入方式 比较常见的有触屏 摇杆 鼠标 按键 虽然unity可以直接在代码中直接指定某个按键的功能 但我们最好使用按键管理器来为项目配置输入操作 这是不仅是为了更好的统一管理 还是因为unity提
  • 白盒基本路径发测试实验报告_白盒测试之基本路径覆盖法

    基本路径覆盖法是在程序控制流图的基础上 通过分析控制结构的环路复杂性 导出基本可执行路径集合 设计测试用例的方法 该方法把覆盖的路径数压缩到一定限度内 程序中的循环体最多只执行一次 设计出的测试用例要保证在测试中 程序的每一个可执行语句至少
  • 20最佳代码审查工具-专门为开发人员准备

    程序员总是面临最后期限的压力和很多延误软件设计相当不稳定 整个产品是不稳定的 这种不稳定性的设计软件的原因是 它是不能正常测试 来的工作代码审查工具 的代码审查工具可以帮助web开发人员指出他们哪些区域的程序代码是错误的也可能有机会是不正确
  • 【教程】FISCO-BCOS一条龙配置go-sdk控制台搭建并启动

    前言 官网那个教程不是很好用 我在自己做了一遍之后整理了一下自己的步骤给大家 这篇没那么多废话直接开始 环境 Ubuntu18 正文 这里讲的是一条龙命令复制到最后直接完成 如果没有配置环境旁边也有文章点击跳转 1 启动节点 原理直接去看我
  • PCB设计小结

    PCB设计小结 1 给所有元器件编号 快捷键T A A 2 pcb中旋转 3 对齐 pcb中快捷键A 一般是右对齐 底对齐 保存间距 4 CTRL Z键撤销无效 点击撤销按钮也无效 保存重启软件就可以了 5 测距 ctrl m 6自动布线
  • 在vue3 中,使用element-plus中的el-scrollbar,让内容元素自动滚动

    在vue3 中 使用element plus中的el scrollbar 在el scrollbar中如果元素过大出现滑动 就自动滑动 到底部时就返回顶部重新向下滑动 鼠标放入框内停止滑动 模板部分
  • 转:Tendermint 简介

    Tendermint 是分布式一致性软件 即使有1 3的机器叛变了 也能保证其余机器上的数据一致 容忍机器以任意方式失败的能力 包括变得恶意 被称为拜占庭容错 BFT 该理论被提出来数十年了 由于bitcoin和ethereum 区块链技术
  • 【MySQL知识点】group by 的原理和理解

    1 文章转载自 https blog csdn net qq403580298 article details 90756352 ops request misc request id biz id 102 utm term mysql 2
  • 巴比特

    摘要 9 月 13 日 阿里云宣布通义千问大模型已首批通过备案 并正式向公众开放 百度发布文心一言插件生态平台 灵境矩阵 向广大开发者开启邀测 并提供百亿流量 亿元基金等激励措施 扶持插件生态建设 图片来源 由无界AI生成 热点资讯 百度发
  • 使用Nexus3创建docker个人仓库(匿名登录)

    使用Nexus3创建docker个人仓库 前言 一 镜像下载 二 Nexus配置 1 启动容器 2 登录GUI 3 创建仓库 4 创建Role 5 创建User 6 激活Realm 三 配置匿名 1 修改role 2 激活Anonymous
  • C/C++字符变量无法显示的问题

    快要找工作了 最近在狂看 程序员面试宝典 第二版 中间有个题目 作者解释错了 更重要的是 里面有个细节 导致我弄了好久才搞懂 现在拿出来分享下 下面是书中P37的源代码 面试例题1 下面程序的输出结果是多少 include
  • 从零开始的Docker详解(五)

    Docker容器互联 简介 docker可以定义一个连接系统将多个容器都连接在一起 共享连接信息 docker链接会创建一个父子关系 其中父容器可以看到子容器的信息 新建网络 使用命令docker network ls来查看当前已有的doc