【Docker】docker中容器之间通信方式

这篇具有很好参考价值的文章主要介绍了【Docker】docker中容器之间通信方式。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。


点击跳转:Docker安装MySQL、Redis、RabbitMQ、Elasticsearch、Nacos等常见服务全套(质量有保证,内容详情)

1. Docker容器之间通信的主要方式

1.1 通过容器ip访问

容器重启后,ip会发生变化。通过容器ip访问不是一个好的方案。

1.2. 通过宿主机的ip:port访问

通过宿主机的ip:port访问,只能依靠监听在暴露出的端口的进程来进行有限的通信。

容器之间通信不能用 localhost127.0.0.1,只能用宿主机的 ip:port 通信,但是主机的ip地址会随着宿主机的重启而变化

以 MySQL 容器为例如下:

  • 创建容器
docker run -it -p 3306:3306 --name mysql -e MYSQL_ROOT_PASSWORD=root mysql:5.7
  • 主机直接访问暴露的端口

如下图,暴露端口的方式很方便主机与容器之间的通信,跟连接主机本地一样

【Docker】docker中容器之间通信方式,Docker,docker,容器

1.3. 通过link建立连接(官方已不推荐使用)

运行容器时,指定参数link,使得源容器与被链接的容器可以进行相互通信,并且接受的容器可以获得源容器的一些数据,比如:环境变量。

# 源容器:mysql
docker run -itd --name mysql_test -e MYSQL_ROOT_PASSWORD=root mysql:5.7
#被链接容器 ubuntu
docker run -itd --name ubuntu_test --link test-mysql:mysql  ubuntu /bin/bash
#进入test-ubuntu
docker exec -it ubuntu_test /bin/bash

1.4. 通过 User-defined networks(推荐)

通过用户自定义网络,加入了这个网络的容器可以互相联通,通过容器名称即可互相访问,相当于在同一个局域网。

推荐新建的容器 -p--network 都配置。

配置 -p 选项让宿主机和容器之间通过 暴露端口 来通信

配置 --network 选项让容器加入同一个网络,加入同一个网络后就可通过容器名称来通信。

centosmysql容器之间通信为例:

  • 创建网络

docker network来创建一个桥接网络,在docker run的时候将容器指定到新创建的桥接网络中,这样同一桥接网络中的容器就可以通过互相访问。

docker network create dockerbetweennetwork
  • 启动mysql容器时,加入创建的网络

创建mysql容器加入到dockerbetweennetwork网络,也暴露了3306端口给主机使用

# 创建mysql容器
docker run -p 3306:3306 --name mysql \
--network dockerbetweennetwork \
-e MYSQL_ROOT_PASSWORD=root \
-d mysql:5.7
  • 启动centos容器时,加入创建的网络
# 创建centos容器
docker run -it --name centos \
--network dockerbetweennetwork \
--rm centos /bin/bash

centos这种服务器性质的docker容器必须跟上命令,不然会默认退出;

  • 查看mysql容器的ip地址
# 查看mysql容器ip地址
docker inspect mysql

【Docker】docker中容器之间通信方式,Docker,docker,容器

  • 进入centos容器连接mysql

测试是否可以通过容器名称ping通mysql容器。

# 进入centos容器中
docker exec -it centos /bin/bash
# ping 上面得到的mysql容器的地址
ping mysql

【Docker】docker中容器之间通信方式,Docker,docker,容器

2. 参考资料

我的文章:《如何查看一个Docker镜像有哪些版本.md》

我的文章:《Docker设置国内镜像源.md》

我的文章:《Docker快速入门实用教程.md》

我的文章:《Docker安装MySQL、Redis、RabbitMQ、Elasticsearch、Nacos等常见服务.md》

我的文章:《Docker安装Nacos服务.md》

我的文章:《如何修改Docker中的文件.md》

我的文章:《Docker容器间的连接或通信方式.md》

我的文章:《Docker安装的MySQL如何持久化数据库数据.md》

我的文章:《制作Docker私有仓库.md》

我的文章:《使用docker-maven-plugin插件构建发布推镜像到私有仓库.md》

我的文章:《解决Docker安装Elasticsearch后访问9200端口失败.md》


传送门:保姆式Spring5源码解析

欢迎与作者一起交流技术和工作生活

联系作者文章来源地址https://www.toymoban.com/news/detail-611627.html

到了这里,关于【Docker】docker中容器之间通信方式的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 如何实现docker内部容器之间的端口访问

    Docker 的普及促使众多应用迁至其上部署,得益其诸多优势。然而,相较于传统非 Docker 环境中各应用通过 127.0.0.1:端口 即可轻松互访,Docker 容器若未经端口映射,彼此间端口则无法直接相通。是否存在更优方案以应对这一挑战? 场景简述:alpine-client 与 alpine-server 两容器,前

    2024年04月22日
    浏览(29)
  • Docker cp命令详解:在Docker容器和主机之间复制文件/文件夹

    简介 Docker是一种流行的容器化平台,它允许开发人员在独立、可移植的环境中构建、打包和部署应用程序。在使用Docker时,常常需要在Docker容器和主机之间进行文件的复制和共享。Docker提供了一个名为 docker cp 的命令,可以轻松地在容器和主机之间复制文件和目录。本文将详

    2024年03月23日
    浏览(79)
  • 软件测试|Docker cp命令详解:在Docker容器和主机之间复制文件/文件夹

    简介 Docker是一种流行的容器化平台,它允许开发人员在独立、可移植的环境中构建、打包和部署应用程序。在使用Docker时,常常需要在Docker容器和主机之间进行文件的复制和共享。Docker提供了一个名为 docker cp 的命令,可以轻松地在容器和主机之间复制文件和目录。本文将详

    2024年02月12日
    浏览(67)
  • Docker之宿主机与容器之间的文件复制与挂载

    宿主机与容器之间的文件挂载与复制 1、从宿主机复制到容器命令格式为:       docker cp 宿主机的本地地址 容器名/容器ID:容器路径  先在宿主机里面创建一个666.txt的文件,然后docker cp 命令把文件复制到容器中。 2、从容器复制到宿主机命令格式:      docker cp 容器名字

    2024年02月13日
    浏览(56)
  • 什么是Docker的容器编排工具,它们之间有何不同?

    随着Docker容器技术的广泛应用,容器编排工具成为了自动化部署、扩展和管理容器化应用程序的关键组件。这些工具提供了一种抽象层,帮助开发者和管理员更高效地管理大量的Docker容器,确保它们在不同的主机和环境中能够可靠地运行。目前,市场上流行的Docker容器编排工

    2024年02月19日
    浏览(47)
  • Docker(四)、容器间通信

    1、模拟tomcat服务器:–name 为新产生的容器命名 docker run -d --name web tomcat 2、模拟数据库 -it建立交互模式,centos镜像名称 ,即创建一个基础的centos容器【centos容器创建完以后默认是自动退出的状态,想让当前容器创建完保持运行的状态,加上-it交互模式和访问 /bin/bash ,才能

    2024年02月07日
    浏览(34)
  • docker多个容器内部通信

    docker很方便的给我们用容器的方式解决了服务隔离运行,同时也产生了一个需要内部网络多个容器之间发生通讯,其实比较简单就可以实现,方式为:创建一个网络组、然后需要内部通讯的容器都加入到这个网络组中,然后这写加入的容器都是同一个网段,就可以通讯了。

    2024年02月11日
    浏览(43)
  • 【Docker存储】Docker的容器迁移方式详解

    在Docker中,有多种方式可以进行容器的迁移,以便在不同的环境中部署和运行。 Docker镜像迁移: 通过将Docker镜像导出为文件,然后在目标环境中导入该文件,可以实现镜像的迁移。 导出镜像:在源环境中运行以下命令,将镜像导出为文件。 导入镜像:将导出的镜像文件传输

    2024年02月08日
    浏览(42)
  • docker容器互通方式

    目录 docker中容器互通的方式 1、方式一:--link 2、方式二:创建service: 1、方式一:--link 2、方式二:创建service: 3、方式三:通过docker-compose文件,其实也是创建service:

    2024年02月01日
    浏览(33)
  • 两台服务器上的两个docker容器之间配置ssh免密登录

    因为要在两台服务器的容器上使用ucx实现GPU的RDMA,所以需要两个容器之间ssh免密登录 步骤如下(所有步骤均在容器内部进行) 切换成root用户 在容器内部安装openssh: # apt-get install openssh-client openssh-server 编辑ssh的配置文件,更改ssh的端口: # vim /etc/ssh/sshd_config 在最后一行加

    2024年03月13日
    浏览(56)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包