资讯专栏INFORMATION COLUMN

docker 容器间通讯

zebrayoung / 3078人阅读

摘要:参考链接外部容器的几种方式参考内容中有些许实现不到位的地方,按照测试例子,跑不起来,故参考后进行了一些修改,重新写了下文章记录一下,有些自己理解的可能不是很到位,大家凑合着看下,有问题欢迎指出,在此先谢过了,。

参考:Docker Compose:链接外部容器的几种方式
参考内容中有些许实现不到位的地方,按照测试例子,跑不起来,故参考后进行了一些修改,重新写了下文章记录一下,
有些自己理解的可能不是很到位,大家凑合着看下,有问题欢迎指出,在此先谢过了,(⊙v⊙)。

本文的docker 版本为1.13.1,具体操作如下 创建同一网络
docker network create app_net

# 查看创建的网络
docker network ls 
yml配置如下

mysql

version: "3"
services:
  mysql-service:
    image: mysql:5.7
    environment:
    - MYSQL_ROOT_PASSWORD=root
    restart: always
    ports:
    - "3306:3306"
    volumes:
    - /docker-service/mysql-5.7/data:/var/lib/mysql
    - /docker-service/mysql-5.7/conf:/etc/mysql/conf.d
    networks:
    - custom_net
networks:
  custom_net:
   external:
      name: app_net

app-tomcat

version: "3"
services:
  app-service:
    image: tomcat:9.0
    environment:
      TZ: Asia/Shanghai
    restart: always
    ports:
      - 8080:8080
    volumes:
    - /docker-service/app-tomcat-9.0/webapps:/usr/local/tomcat/webapps
    - /docker-service/app-tomcat-9.0/logs:/usr/local/tomcat/logs
    networks:
    - custom_net
networks:
  custom_net:
    external:
      name: app_net

nginx

version: "3"
services:
  nginx-service:
    image: nginx:1.14
    restart: always
    ports:
    - "80:80"
    volumes:
    - /docker-service/nginx-1.14/conf:/etc/nginx/conf.d
    - /docker-service/nginx-1.14/logs:/wwwlogs
    - /docker-service/nginx-1.14/www:/www
    networks:
    - custom_net
networks:
  custom_net:
    external:
      name: app_net

nginx 挂载后的配置文件,原容器中有一个default.conf,监听的事nginx的启动页,这里映射后,把default.conf覆盖了,故需/docker-service/nginx-1.14/conf下创建custom.conf重启容器

#api接口转发custom.conf
server {
    server_name xx.xxxx.com
    underscores_in_headers on;
    index index.html;
    location / {
        add_header "Access-Control-Allow-Origin" "*";
        proxy_pass http://app-service:8080/;
        #try_files $uri $uri/ /index.html;
    }
}
解析下yml配置及相关说明

所以上述docker-compose.yml中声明服务,nginx 中proxy.conf配置的app-service:8080,相当于通过tomcat的容器ip,
调用tomcat的8080端口,简单的将yml中的服务名称,理解为,加入同一网络后的"host"即可,这样理解起来更方便直观一点,
如tomcat中调用mysql服务,spring配置可以用

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/27900.html

相关文章

  • Docker容器通讯

    摘要:玩了后相信很多童鞋都会遇到一个问题就是我们部署的应用的容器连不上另一个数据库容器这个就好玩了在我多方查看查找资料问大佬的方式下终于找到了解决方案首先我们准备一个项目这里我以为例子首先我们把你的项目打包一个包出来改后缀为然后上传到你的上面去解 玩了docker后相信很多童鞋都会遇到一个问题,就是我们部署的应用的容器连不上另一个数据库容器 这个就好玩了,在我多方查看,查找资料问大佬的方式下...

    VishKozus 评论0 收藏0
  • Docker实战入门学习笔记】什么是docker

    摘要:实现前述目的的方式有两种在一个文件中指定一个基础镜像及需要完成的修改或通过运行一个镜像,对其进行修改并提交。容器对外公开服务是必要的,因此允许公开容器的特定端口。镜像必须完全可移植,不允许例外。 Docker是一个相对较新且发展非常快速的项目,可用来创建非常轻量的虚拟机。注意,这里的引号非常重要,Docker创建的并非真正的虚拟机,而更像是打了激素的chroot,嗯,是大量的激素。 D...

    seanHai 评论0 收藏0
  • 云计算与 Cloud Native | 数人云CEO王璞@KVM分享实录

    摘要:分享实录云计算技术源于互联网公司,现在云计算已经是下一代企业级的发展趋势。如何做云计算一直是云计算技术的领导者。互联网公司的快速发展,已经印证了云计算技术和云原生应用相比传统构架的巨大优势。 今天小数又给大家带来一篇干货满满的分享——来自KVM社区线上群分享的实录,分享嘉宾是数人云CEO王璞,题目是《云计算与 Cloud Native》。这是数人云在KVM社区群分享的第一弹,之后还有数...

    _Zhao 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<