首页 > 其他分享 >docker-compose种不通的服务之间的访问问题,夸容器访问

docker-compose种不通的服务之间的访问问题,夸容器访问

时间:2023-11-28 16:36:00浏览次数:40  
标签:容器 compose redis 访问 mysql docker kodbox

背景

我们知道对于docker 的每个容器都是独立的,想要夸容器访问的话,不能用127.0.0.1加端口号去访问,所以需要docker虚拟网卡的网关分配的地址去访问,
可以通过docker inspect对每个容器的局域网ip进行查看,但是这样比较麻烦,所以有一个新的解决办法,就是通过docker-compose配置文件的方式创建多个service,然后就可以用service的name的方式访问了,servicename会自动解析成对应的ip,确保访问不出问题

应用

先看一个列子

# 编写compose文件:
version: '3.0'
services:
  kodcloud:
    container_name: kodcloud
    image: kodcloud/kodbox
    restart: always
    ports:
      - 1111:80
    depends_on:
      - mysql
      - redis

  mysql:
    container_name: mysql
    image: mysql:8.0.29
    restart: always
    volumes:
      - /root/kodbox/mysql/data:/var/lib/mysql
      - /root/kodbox/mysql/conf:/etc/mysql/conf.d
      - /root/kodbox/mysql/logs:/logs
    ports:
      - 9004:3306
    environment:
      - "MYSQL_ROOT_PASSWORD=2002"

  redis:
    container_name: redis
    image: redis:5.0
    restart: always
    volumes:
      - /root/kodbox/redis/data:/data
      - /root/kodbox/redis/redis.conf:/etc/redis/redis.conf
    ports:
      - 9005:6379

docker-composer up -d后台启动后,进入kodcloud容器,然后ping redis和mysql的端口,,注意这里容器间的相互访问时内部端口不是映射的主机端口
image

docker-compose的ports、expose、links、depends_on的使用技巧

ports端口映射[主机]:[容器],如果不加:默认是内部的端口,主机端口随机
expose只是dockerfile的声明,没什么实际作用,
links是别名,相当于dns或者host设置了指定ip,可以通过service名字直接访问,列入

version: "3.1"
 ​
 services:
   db:
     image: mariadb
     command: --transaction-isolation=READ-COMMITTED --binlog-format=ROW
     volumes:
       - "./db:/var/lib/mysql"        #左边 ./db 代表数据库持久化目录位置
     environment:
       - "TZ=Asia/Shanghai"
       - "MYSQL_ROOT_PASSWORD=sbsn555"
       - "MYSQL_DATABASE=kodbox"
       - "MYSQL_USER=kodbox"
       - "MYSQL_PASSWORD=sbsn555"
 ​
   app:
     image: kodcloud/kodbox
     ports:
       - 5326:80        #左边 5326 是主机访问端口,可按需修改
     links:
       - db
       - redis
     volumes:
       - "./site:/var/www/html"        #左边 ./site 代表kodbox持久化目录位置
     restart: always
 ​
   redis:
     image: redis:alpine
     environment:
       - "TZ=Asia/Shanghai"
     restart: always

depends_on:容器的依赖关系
通过depends_on告诉docker-compose当前服务启动之前先要把depends_on指定的服务启动起来才行

标签:容器,compose,redis,访问,mysql,docker,kodbox
From: https://www.cnblogs.com/codedingzhen/p/17862100.html

相关文章

  • arthas 热更新docker容器中的代码
    1、将修改并编译好的class文件复制到docker容器中dockercpBasicController.classarthas-demo:/将文件BaseiController.class复制到arthas-demo容器根目录下BaseiController.class:编译后的代码arthas-demo:容器名 2、进入容器,运行arthas参见:地址 3、替换文件ret......
  • 三、Docker 常用命令
    1.帮助命令docker--versiondockerinfodocker--help防火墙相关帮助启动:systemctlstartfirewalld.service关闭:systemctlstopfirewalld.service查看状态:firewall-cmd--state开机禁用:systemctldisablefirewalld.service开机启用:systemctlenabl......
  • CentOS7安装Docker
    1、前言安装参考文档:https://docs.docker.com/engine/install/centos/阿里镜像地址:https://www.aliyun.com/product/acr安装命令:基于root账户进行安装,非root命令采用sudo2、安装docker2.1、删除原有的dockeryumremovedocker\docker-client\docker......
  • DockerCompose修改某个服务的配置(添加或编辑端口号映射后如何重启单个服务使其生效)
    场景docker-compose入门以及部署SpringBoot+Vue+Redis+Mysql(前后端分离项目)以若依前后端分离版为例:https://blog.csdn.net/BADAO_LIUMANG_QIZHI/article/details/128372122上面讲了dockercompose的应用示例,如果需要修改某个服务的配置文件,比如需要给其中一个java服务添加一......
  • Docker的CI/CD流水线简单配置(在windous本地配置)
    在做配置之前,请先了解一下知识点,更加方便了解下面代码:1.文件后缀名为.yml2.gitlab-runner3.CI/CD了解完之后就开始本次代码讲解(一定要先进行了解)首先先要做一些准备工作,方便下面步骤的使用1.运行docker里的gitlab2.找到你想应用的项目仓库里去设置弄一个访问令牌 添加一......
  • [信创]--达梦DM8数据库-docker方式部署
    下载:https://www.dameng.com/list_103.html下载镜像,上传到指定服务器:载入镜像:查看镜像: 启动容器:dockerrun-d-p5237:5236--restart=always--namedm8--privileged=true-eCASE_SENSITIVE=0\-ePAGE_SIZE=32-eEXTENT_SIZE=32-eUNICODE_FLAG=1-eLENGTH_IN......
  • 【Docker常用命令】docker 或 docker help
    1、用途:docker或dockerhelp命令用于要列出docker可用的命令。docker【命令】 --help命令用于查看具体本命令的使用帮助。2、格式docker或dockerhelp或docker--help或docker-h3、执行结果C:\Windows\System32>dockerUsage:docker[OPTIONS]COMMANDAself-suffi......
  • 二、Docker 安装
    1.环境提前说明1.1CentOSDocker安装Docker支持以下的CentOS版本:CentOS7(64-bit)CentOS6.5(64-bit)或更高的版本1.2前提条件目前,CentOS仅发行版本中的内核支持Docker。Docker运行在CentOS7上,要求系统为64位、系统内核版本为3.10以上。Docker运行在CentOS......
  • Android Compose 的导航(Navigation)
    基础知识基本内容看官方吧:Android使用Compose进行导航B回调数据给A内容当您从A导航到B并且希望B将信息传回A时,您可以传递回调(此处onSelect):有两者方法:自定义回调函数and使用相同ViewModel,需要根据具体的应用场景和需求来选择适合的方法。如果仅需要简单......
  • angie rocky docker 镜像问题 二
    我以前说过关于angierockydocker镜像的问题,今天官方已经修复了,修复方法与我介绍的是类似的参考官方修复方案通过dive工具查看到的 nginx参考资料https://github.com/webserver-llc/angie/issues/54......