docker-compose 解决容器间相互通信,例如:容器内项目访问其他容器的mysql

最近使用docker部署的项目,遇到容器间相互通信的问题,遂整理处理以便后续使用。我的应用场景是mysql数据库和springboot项目分别使用不同的docker容器启动,这样导致springboot项目访问数据库受限,期间采用过多种方式都未解决,最后使用docker-compose启动方式完美解决问题。

至于安装docker和docker-compose请自行百度,这里不再讲解。

这里直接贴上docker-compose.yml配置

-links参数是保证容器间通信的关键

version: '2'

services:
    mysql:
        container_name: mysql
        restart: always
        image: docker.io/mysql:ninemax
        environment:
            MYSQL_ROOT_PASSWORD: ninemax
        volumes:
          - ./mysql/:/var/lib/mysql/
        ports:
          - "3308:3306"
        networks:
          - mynet
    benti-images:
      build: .
      container_name: benti-images
      restart: always
      image: benti-images:11.0
      #links链接到其它服务中的容器,配置后benti-images容器就可以用mysql连接数据库,如:mysql:3306
      links: 
        - mysql
      ports:
        - "8080:7080"
      #tty: true 配置是为了容器保持后台运行,不退出。如果不加这个参数,benti-images容器会不断退出不断重启
      tty: true
      networks:
        - mynet
networks: 
    mynet: 
        driver: bridge                                  

启动容器:docker-compose up -d ###  -d参数是进行后台启动

---------------------------分割线---------------------------------------

最新项目已经使用k8s来管理docker容器了,对于k8s这里就不过多介绍了。小弟在这里奉上免费的k8s的视频教程,需要的伙伴可以拿去学习学习。

https://download.csdn.net/download/yanzi920403/88440045

你可能感兴趣的:(docker镜像,docker命令,docker-compose,docker)