Docker容器连接实现步骤解析
一般来说,容器启动后,我们都是通过端口映射来使用容器提供的服务,实际上,端口映射只是使用容器服务的一种方式,除了这种方式外,还可以使用容器连接的方式来使用容器服务。
例如,有两个容器,一个容器运行一个SpringBoot项目,另一个容器运行着mysql数据库,可以通过容器连接使SpringBoot直接访问到Mysql数据库,而不必通过端口映射来访问mysql服务。
为了案例简单,我这里举另外一个例子:
有两个容器,一个nginx容器,另一个ubuntu,我启动nginx容器,但是并不分配端口映射,然后再启动ubuntu,通过容器连接,在ubuntu中访问nginx。
具体操作步骤如下:
首先启动一个nginx容器,但是不分配端口,命令如下:
docker run -d --name nginx1 nginx
命令执行结果如下:
容器启动成功后,在宿主机中是无法访问的。
启动ubuntu
接下来,启动一个ubuntu,并且和nginx建立连接,如下:
docker run -dit --name ubuntu --link nginx1:mylink ubuntu bash
这里使用--link建立连接,nginx1是要建立连接的容器,后面的mylink则是连接的别名。
运行成功后,进入到ubuntu命令行:
docker exec -it ubuntu bash
然后,有两种方式查看nginx的信息:
第一种
在ubuntu控制台直接输入env,查看环境变量信息:
可以看到docker为nginx创建了一系列环境变量。每个前缀变量是MYLINK,这就是刚刚给连接取得别名。开发者可以使用这些环境变量来配置应用程序连接到nginx。该连接是安全、私有的。 访问结果如下:
第二种
另一种方式则是查看ubuntu的hosts文件,如下:
可以看到,在ubuntu的hosts文件中已经给nginx1取了几个别名,可以直接使用这些别名来访问nginx1。
小贴士:
默认情况下,ubuntu容器中没有安装curl命令,需要手动安装下,安装命令如下:
apt-get update
apt-get install curl
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持我们。
相关推荐
-
详解通过Docker搭建Mysql容器+Tomcat容器连接环境
1.实验目的:web容器能访问部署在另外容器中的MySQL 2.步骤1:拉取mysql镜像,拉取命令如下: docker pull mysql//官网的最新mysql进行 3.步骤2:拉取tomcat镜像,拉取命令如下: docker pull tomcat --name xuguokun/jdk-tomcat 4.步骤3:创建mysql的一个容器,容器的名字是mymysql,创建命令如下: 复制代码 代码如下: docker run --name mymysql -p 3306:3306 -
-
Docker SSH连接docker容器的示例代码
简介 什么是Docker Docker 是一个开源项目,诞生于 2013 年初,最初是 dotCloud 公司内部的一个业余项目.它基于 Google 公司推出的 Go 语言实现. 项目后来加入了 Linux 基金会,遵从了 Apache 2.0 协议,项目代码在 GitHub 上进行维护. Docker 自开源后受到广泛的关注和讨论,以至于 dotCloud 公司后来都改名为 Docker Inc.Redhat 已经在其 RHEL6.5 中集中支持 Docker:Google 也在其 PaaS
-
Docker容器互相连接三种实现方法详解
docker容器间的互连通信有三种方法: docker内部网络:不够灵活强大,不推荐 docker networking:1.9或更新版本,推荐使用 docker链接:1.9之前版本适用. 1.docker内部网络 涉及docker自己的网络栈. 安装docker后,系统会创建一个新的网络接口,名字是docker0,用于连接容器和宿主机,IP范围是172.16-172.30, 每个docker容器都会在这个接口上分配一个IP地址. docker每创建一个容器就会创建一组互联的网络接口,一端是容器
-
详解docker 允许主机ssh连接到docker容器中
在docker容器中,安装好ssh: 1)替换掉容器中的安装源为163源 2)安装ssh服务 apt-get update apt-get install openssh-server 3)添加目录,修改ssh配置文件 mkdir -p /var/run/sshd vim /etc/pam.d/sshd 找到 session required pam_loginuid.so 这一行,将它注释掉 4)添加要链接过来的主机公钥 将公钥放到/root/.ssh/authorized_ke
-
Docker如何使用link建立容器之间的连接
我们在使用Docker的时候,经常可能需要连接到其他的容器,比如:web服务需要连接数据库.按照往常的做法,需要先启动数据库的容器,映射出端口来,然后配置好客户端的容器,再去访问.其实针对这种场景,Docker提供了--link 参数来满足. 这里使用数据库服务器和客户端的例子来介绍下--link的用法. 一 创建容器 这里需要创建MySQL服务端和客户端的容器 MySQL 服务端的Dockerfile: FROM centos:centos6 MAINTAINER David "xx@xx.c
-
docker连接spring boot和mysql容器方法介绍
在之前使用docker部署运行了Spring Boot的小例子,但是没有使用数据库.在这一篇中,介绍docker如何启动mysql容器,以及如何将Spring Boot容器与mysql容器连接起来运行. docker基本命令 首先熟悉一下在操作过程中常用的docker基本命令: docker images:列出所有docker镜像 docker ps:列出所有运行中的容器,-a参数可以列出所有容器,包括停止的 docker stop container_id:停止容器 docker start
-
Docker使用Link在容器之间建立连接
在使用Docker的时候我们会常常碰到这么一种应用,就是我需要两个或多个容器,其中某些容器需要使用另外一些容器提供的服务.比如这么一种情况:我们需要一个容器来提供mysql的数据库服务,而另外两个容器作为客户端来连接使用mysql数据库服务.下面我们就来看看Docker是怎样通过Link来实现这种功能的. 1. 这里我们首先创建两个容器image,一个用来模拟mysql数据库,另外一个使用mysql的client来模拟一些使用mysql服务的应用,这种应用可以是任何php,python,java
-
详解Docker创建Mysql容器并通过命令行连接到容器
拉取网易蜂巢的mysql-server:5.6 docker pull hub.c.163.com/nce2/mysql:5.6 创建mysql5.6容器 1master+3个slave docker run --name mysql-master -d -P hub.c.163.com/nce2/mysql:5.6 docker run --name mysql-slave1 -d -P hub.c.163.com/nce2/mysql:5.6 docker run --name mysql-
-
Docker多容器连接(以Tomcat+Mysql为例)
Docker提供了多个容器直接访问的方法,最简单的方式是直接使用端口映射-p参数指定映射的端口或者-P映射所有端口,多个容器直接通过网络端口进行访问. 但网络端口映射方式并不是Docker中连接多个容器的唯一方式,更安全的方法是可以使用Docker的连接系统(--link)连接多个容器,当容器连接到一起时,接受者容器就可以看到源容器的信息. 以Tomcat + Mysql为例,建立容器之间的连接 在容器直接建立连接要使用--link选项 --link <name or id>:alias 这里
-
Docker容器连接实现步骤解析
一般来说,容器启动后,我们都是通过端口映射来使用容器提供的服务,实际上,端口映射只是使用容器服务的一种方式,除了这种方式外,还可以使用容器连接的方式来使用容器服务. 例如,有两个容器,一个容器运行一个SpringBoot项目,另一个容器运行着mysql数据库,可以通过容器连接使SpringBoot直接访问到Mysql数据库,而不必通过端口映射来访问mysql服务. 为了案例简单,我这里举另外一个例子: 有两个容器,一个nginx容器,另一个ubuntu,我启动nginx容器,但是并不分配端口映射
-
Docker容器连接相互通信的实现
端口映射并不是唯一把 docker 连接到另一个容器的方法. docker 有一个连接系统允许将多个容器连接在一起,共享连接信息. docker 连接会创建一个父子关系,其中父容器可以看到子容器的信息. 容器命名 当我们创建一个容器的时候,docker 会自动对它进行命名.另外,我们也可以使用 --name 标识来命名容器,例如: runoob@runoob:~$ docker run -d -P --name runoob training/webapp python app.py 43780
-
关于docker容器部署redis步骤介绍
目录 1 redis配置文件 2 docker命令启动 3 docker-compose启动 1 redis配置文件 官方下载:redis.conf 路径:在容器中,一般可以保存在/etc/redis/redis.conf 路径中 配置文件详解,根据实际情况进行修改: # 这里的bind指的是只有指定的网段才可以访问redis,注释后则没有这个限制 # bind 127.0.0.1 # 默认端口为6379 port 6379 # daemonize表示是否以守护进程进行执行,容器中执行必须设置成
-
.net 4.5部署到docker容器的完整步骤
前言 本文主要给大家介绍了关于.net 4.5部署到docker容器的相关内容,分享出来供大家参考学习,下面话不多说了,来一起看看详细的介绍吧 .net4.5部署到docker容器 部署到windows容器 部署到linux容器 部署到windows容器 由于.net本身就是运行在windows平台的,所以它与windows容器也是更加适合,你可以以iis镜像为基础,去编写你的Dockerfile文件,从而去构建你的.net项目镜像. 1.两个现成的例子 .net console程序 docke
-
Docker容器编排实现过程解析
在实际的开发环境或者生产环境,容器往往都不是独立运行的,经常需要多个容器一起运行,此时,如果继续使用run命令启动容器,就会非常不便,在这种情况下,docker-compose是一个不错的选择,使用dockercompose可以实现容器编排,本文就来看看docker-compose的使用.本文以jpress这样一个开源网站的部署为例,向读者介绍docker-compose的使用.jpress是Java版的wordPress,不过我们不必关注jpress的实现,在这里我们只需要将之当作一个普通的应
-
详解Docker 容器互联方法
Docker容器都是独立的,互相隔离的环境.然而,它们通常只有互相通信时才能发挥作用. 虽然有许多方法可以连接容器们,可是我将并不会试着去将其全部讨论在内.但是在这一系列的方法中,我们将看看那些常用的做法. 虽然看起来是很浅显,但是这对于与Docker成天打交道的朋友来说,理解这些技术及底层的设计理念就显得非常地重要了. 理解这些主题将会: 帮助开发和运维人员探索广泛的容器部署的选择. 让开发和运维人员更自信的着手于微服务microservice架构设计. 让开发和运维人员可以较好的编排更复杂的
-
Docker容器的网络管理和网络隔离的实现
一.Docker网络的管理 1.Docker容器的方式 1)Docker访问外网 Docker容器连接到宿主机的Docker0网桥访问外网:默认自动将docker0网桥添加到docker容器中. 2)容器和容器之间通信 需要管理员创建网桥:将不同的容器连接到网桥上实现容器和容器之间相互访问. 3)外部网络访问容器 通过端口映射或者同步docker宿主机网络配置实现通信. 2.Docker容器网络通信的模式 1)bridge 默认容器访问外网通信使用:依赖docker0网桥. 2)none 需要给
-
Docker创建Mysql容器的简单步骤
前言 前面我们已经安装好了Docker,也简单了解了Docker.下面就来给大家介绍下Docker创建Mysql容器的简单步骤,话不多说了,来一起看看详细的介绍吧 步骤如下 1.启动docker服务 [root@docker ~]# systemctl start docker 2.查看docker里面的镜像 [root@docker ~]# docker images REPOSITORY TAG IMAGE ID CREATED SIZE centos/mysql-57-centos7 la
-
通过Docker创建CentOS容器的实现步骤
目录 前言 创建桥接网络,方便容器间通信 通过CentOS 7镜像创建容器 连接容器 容器间互相访问 参考链接 前言 先安装Docker,使用文内的脚本可以快速创建CentOS 7.8虚拟系统集群,并通过SSH(Secure Shell)远程工具连接. 创建桥接网络,方便容器间通信 指令格式为docker network create <网络名称 >. docker network create test-network 列出Docker下所有网络可以看到test-network. docke
随机推荐
- bootstrap vue.js实现tab效果
- javascript中的链式调用
- javascript 打字游戏实现代码
- thinkphp3.2.2实现生成多张缩略图的方法
- python正则表达式去掉数字中的逗号(python正则匹配逗号)
- UCenter info: MySQL Query Error SQL:SELECT value FROM [Table]vars WHERE noteexists
- JavaScript错误处理
- Node.js本地文件操作之文件拷贝与目录遍历的方法
- 详解webpack 多入口配置
- 总结Python编程中三条常用的技巧
- KindEditor 编辑器 v3.5.1 修改版
- yii2-GridView在开发中常用的功能及技巧总结
- 服务器的MSDTC不可用解决办法
- Linux配置远程SSH无密码登录
- 模仿OSO的论坛(三)
- 关于php操作mysql执行数据库查询的一些常用操作汇总
- 苏热线为您提供提供10M-200M免费空间服务
- js中bool值的转换及“&&”、“||”、 “!!”详解
- Canvas实现微信红包照片效果
- TP(thinkPHP)框架多层控制器和多级控制器的使用示例