一般来说,容器启动后,我们都是通过端口映射来使用容器提供的服务,实际上,端口映射只是使用容器服务的一种方式,除了这种方式外,还可以使用容器连接的方式来使用容器服务。
例如,有两个容器,一个容器运行一个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
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持小牛知识库。
本文向大家介绍Python连接Impala实现步骤解析,包括了Python连接Impala实现步骤解析的使用技巧和注意事项,需要的朋友参考一下 Impyla是用于分布式查询引擎的HiveServer2实现(如Impala、Hive)的python客户端 1)安装impyla pip install impyla 安装报错 解决办法: 根据提示下载对应的工具 https://visualstudio
本文向大家介绍Docker容器运行ASP.NET Core的实现步骤,包括了Docker容器运行ASP.NET Core的实现步骤的使用技巧和注意事项,需要的朋友参考一下 最近要学习的知识太多,都不知道先学哪些了,原本计划这篇博客是写xamarin.forms中的listview用法,关于listview的用法简书上有一篇介绍的也比较详细,所以暂时先缓一缓,属于次要任务,等以后再写。本周在万能的淘
主要内容:网络端口映射,Docker 容器互联,配置 DNS前面我们实现了通过网络端口来访问运行在 docker 容器内的服务。 容器中可以运行一些网络应用,要让外部也可以访问这些应用,可以通过 -P 或 -p 参数来指定端口映射。 下面我们来实现通过端口连接到一个 docker 容器。 网络端口映射 我们创建了一个 python 应用的容器。 另外,我们可以指定容器绑定的网络地址,比如绑定 127.0.0.1。 我们使用 -P 绑定端口号,使用 dock
本文向大家介绍Python接口开发实现步骤详解,包括了Python接口开发实现步骤详解的使用技巧和注意事项,需要的朋友参考一下 一、操作步骤 1. 导入:import flask,json 2. 实例化:api = flask.Flask(__name__) 3. 定义接口访问路径及访问方式:@api.route('/index',methods=['get/post/PUT/DELETE'])
我拉出了mysql docker映像,并用命令运行容器: 此时,springBoot在本地工作。它与MySQL连接: 现在,我希望springBoot应用程序也在单独的docker容器上,在同一服务器上。为此,我使用了DockerFile: 同样,它无法连接到数据库:
我的数据库连接是用下面的类处理的: 这是我的spring boot控制器 下面是我的dockerfile: 我读了这里和这里提到的解决方案。也阅读了一些教程,但我无法将这些解决方案中的任何一个适合我的代码。在我的代码中,我应该在哪里更改?