docker --link容器互联的实现

目录
  • 容器互联
  • 实验:tomcat连接mysql
  • 创建启动mysql容器
  • 创建启动tomcat容器--link连接mysql容器

–link可以通过容器名互相通信,容器间共享环境变量。

–link主要用来解决两个容器通过ip地址连接时容器ip地址会变的问题.

容器互联

先创建启动mysql容器

docker run -dti --name db --restart=always -e MYSQL_ROOT_PASSWORD=redhat -e MYSQL_DATABASE=blog  mysql:5.6

创建启动源容器wordpress

# docker run -dti --name 容器名 --restart=always -v 本地目录:容器内目录 -p 本地端口:容器端口 --link 数据库容器名:数据库容器别名 wordpress镜像
docker run -dti --name blog --restart=always -v /web:/var/www/html -p 80:80 --link db:mysql wordpress

当使用–link参数时,docker会自动在共享两个容器的变量。访问数据库的时候,不再是通过IP的方式来访问,而是通过容器名来访问.
在容器中执行: env | grep -i hub_name,会显示容器的的环境变量

实验:tomcat连接mysql

接下来在tomcat容器的webapps中配置msyql连接,数据源输入mysql的容器名即可。
–link 参数可以把两个容器连接为一组容器,一般用于连接mysql,而不用映射mysql的端口到宿主机

例如,tomcat和mysql建立link之后,在tomcat里可以直接ping通mysql的容器名.
在tomcat配置MySQL连接的文件中不需要再写入localhost或者ip地址,直接写入mysql容器名即可连接到mysql数据库

创建启动mysql容器

docker run -dti --name mysql --restart=always -e MYSQL_ROOT_PASSWORD=123456 mysql:5.6

创建启动tomcat容器 --link连接mysql容器

docker run -dti --name tomcat --restart=always -p 8080:8080 --link mysql -v /webapps:/usr/local/tomcat/webapps tomcat

接下来在tomcat容器的webapps中配置msyql连接,数据源输入mysql的容器名即可。
tomcat和mysql建立link之后,在tomcat里可以直接ping通mysql的容器名.
在tomcat配置MySQL连接的文件中不需要再写入localhost或者ip地址,直接写入mysql容器名即可连接到mysql数据库.

到此这篇关于docker --link容器互联的实现的文章就介绍到这了,更多相关docker --link容器互联内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

(0)

相关推荐

  • Docker link实现容器互联的方式

    目录 1.1.容器间通过IP进行网络访问 1.2.容器间通过容器名或容器id进行网络访问 1.1.容器间通过IP进行网络访问 新建两个容器tomcat01和tomcat02 docker run -d -P --name tomcat01 tomcat docker run -d -P --name tomcat02 tomcat 使用 ifconfig 命令查看toncat01的网卡信息: 可以看到,tomcat01的IP地址为 172.17.0.2 再查看toncat02的网卡信息: 可以看

  • Docker学习笔记之Weave实现跨主机容器互联

    Docker的原生网络支持非常有限,且没有跨主机的集群网络方案.目前实现Docker网络的开源方案有Weave.Kubernetes.Flannel.Pipework以及SocketPlane等,其中Weave被评价为目前最靠谱的,那么这里就对Weave的基本原理及使用方法做个总结. 简介 Weave是由Zett.io公司开发的,它能够创建一个虚拟网络,用于连接部署在多台主机上的Docker容器,这样容器就像被接入了同一个网络交换机,那些使用网络的应用程序不必去配置端口映射和链接等信息.外部设备

  • 详解Docker 端口映射与容器互联

    1.端口映射实现访问容器 1.从外部访问容器应用 在启动容器的时候,如果不指定对应的参数,在容器外部是无法通过网络来访问容器内部的网络应用和服务的. 当容器中运行一些网络应用,要让外部访问这些应用时,可以通过-p或-P参数来指定端口映射.当使用-P(大写P)标记时,Docker会随机映射一个端口到内部容器开放的网络端口(端口范围在Linux系统使用的端口之外,一般都过万): [root@docker ~]# docker run -d --name nginx_1 -P nginx:latest

  • 浅谈关于Docker容器互联的初步实践

    一.Docker容器之间的互联 Docker现在已经成为一种轻量级的虚拟化方案,在同一宿主机下,所有的容器都可以通过网桥进行互联.如果之前有docker的使用经验,可能已经习惯了使用–link来对容器进行互联.随着docker的逐步完善,强烈推荐大家使用网桥(bridge)来对容器进行互联. 二.实践过程 1.创建一个网络my-net: [root@ChatDevOps ~]# docker network create my-net 71b42506de62797889372ea4a5270f

  • 详解Docker 容器互联方法

    Docker容器都是独立的,互相隔离的环境.然而,它们通常只有互相通信时才能发挥作用. 虽然有许多方法可以连接容器们,可是我将并不会试着去将其全部讨论在内.但是在这一系列的方法中,我们将看看那些常用的做法. 虽然看起来是很浅显,但是这对于与Docker成天打交道的朋友来说,理解这些技术及底层的设计理念就显得非常地重要了. 理解这些主题将会: 帮助开发和运维人员探索广泛的容器部署的选择. 让开发和运维人员更自信的着手于微服务microservice架构设计. 让开发和运维人员可以较好的编排更复杂的

  • docker --link容器互联的实现

    目录 容器互联 实验:tomcat连接mysql 创建启动mysql容器 创建启动tomcat容器--link连接mysql容器 –link可以通过容器名互相通信,容器间共享环境变量. –link主要用来解决两个容器通过ip地址连接时容器ip地址会变的问题. 容器互联 先创建启动mysql容器 docker run -dti --name db --restart=always -e MYSQL_ROOT_PASSWORD=redhat -e MYSQL_DATABASE=blog  mysql

  • docker中容器的网络配置常用命令详解

    网络基础配置 虽然Docker可以根据镜像"多开"容器,并而每个容器互不影响,但并不代表容器与容器之间是完全决裂的.Docker在运行镜像的时候提供了映射容器端口到宿主主机.容器端口到另一个容器的网络互联功能,使得容器与宿主主机.容器与容器之间可以相互通信. ### 从外部访问容器应用 在启动容器的时候,如果不指定对应的参数,在容器外是无法通过网络来访问容器内的网络应用和服务的.当容器中运行一些需要被外部访问的网络应用时,可以通过-P或者-p参数来指定端口映射.当使用-P标记时,Doc

  • docke自定义网络之容器互联

    目录 前言 –link 自定义网络 提问 前言 在前几期我们介绍了 容器间的互联可以使用 –Link 参数进行设置,这样可以在容器内不只访问ip,也可以访问对应设置的 域名.先温习下.操作之前先清除所有的容器. –link # 清除所有容器 $root@VM-8-11-ubuntu:~# docker stop $(docker ps -aq) && docker rm $(docker ps -aq) 88f8f241ca30 765ed1889bfa $root@VM-8-11-ubu

  • 聊聊Docker中容器的创建与启停问题

    目录 1. 镜像和容器 2. 新建并启动容器 3. 使用第一个容器 4. 容器命名 5.重启容器 6. 附着到容器上 1. 镜像和容器 看待镜像和容器的一种方式是将它们类比成程序与进程.一个进程可以视为一个被执行的应用程序,同样,一个Docker容器可以视为一个运行中的Docker镜像. 标题Docker镜像与容器 如果大家熟悉面向对象原理,看待镜像和容器的另一种方法是将镜像看作类而将容器看作对象.对象是类的具体实例,同样,容器是镜像的实例.用户可以从单个镜像创建多个容器,就像对象一样,它们之间

  • Docker Runc容器生命周期详细介绍

    Docker Runc容器生命周期 容器的生命周期涉及到内部的程序实现和面向用户的命令行界面,runc内部容器状态转换操作.runc命令的参数定义的操作.docker client定义的容器操作是不同的,比如对于docker client的create来说, 语义和runc就完全不同,这一篇文章分析runc的容器生命周期的抽象.内部实现以及状态转换图.理解了runc的容器状态转换再对比理解docker client提供的容器操作命令的语义会更容易些. 容器生命周期相关接口 最基本的require

  • Docker 限制容器可用的CPU的方式

    默认情况下容器可以使用的主机 CPU 资源是不受限制的.和内存资源的使用一样,如果不对容器可以使用的 CPU 资源进行限制,一旦发生容器内程序异常使用 CPU 的情况,很可能把整个主机的 CPU 资源耗尽,从而导致更大的灾难.本文将介绍如何限制容器可以使用的 CPU 资源. 本文的 demo 中会继续使用<Docker: 限制容器可用的内存>一文中创建的 docker 镜像 u-stress 进行压力测试,文中就不再过多的解释了. 限制可用的 CPU 个数 在 docker 1.13 及更高的

  • .NETCore Docker实现容器化与私有镜像仓库管理

    一.Docker介绍 Docker是用Go语言编写基于Linux操作系统的一些特性开发的,其提供了操作系统级别的抽象,是一种容器管理技术,它隔离了应用程序对基础架构(操作系统等)的依赖.相较于虚拟机而言,Docker共享的是宿主机的硬件资源,使用容器来提供独立的运行环境来运行应用.虚拟机则是基于Supervisor(虚拟机管理程序)使用虚拟化技术来提供隔离的虚拟机,在虚拟机的操作系统上提供运行环境!虽然两者都提供了很好的资源隔离,但很明显Docker的虚拟化开销更低! Docker涉及了三个核心

随机推荐