docker下不同容器的网络互相访问问题

news/2024/11/25 13:46:53/

目录

背景

​编辑

docker网络模式

解决方法

mysql下 docker-compose下网络设置

nacos

效果


背景

我这边有两个容器,宿主机ip为 192.168.1.115,一个mysql,一个nacos,部署在主机上,使用的默认网络bridge,想从nacos里面来使用mysql的库,发现不能使用主机的ip,现状:

查看当前网络

docker network ls

是因为容器间网络不互通的问题,

docker网络模式

  • host模式:和宿主机共用一个Network
  • bridge模式:默认网络模式,实际是在iptables做了DNAT规则,实现端口转发功能
  • none模式:拥有自己的Network Namespace,但是,并不为Docker容器进行任何网络配置。也就是说,这个Docker容器没有网卡、IP、路由等信息。需要我们自己为Docker容器添加网卡、配置IP等。没有办法联网,封闭的网络能很好的保证容器的安全性。
  • container模式:和已经存在的一个容器共享一个 Network Namespace,而不是和宿主机共享

解决方法

思路为创建一个共用网络,

 创建网络

docker network create dev

删除网络

 docker network rm mysql_default

mysql下 docker-compose下网络设置

version: '3.1'
services:
  mysql:
    image: mysql:8.0.17
    restart: always
    container_name: mysql
    privileged: true
    ports:
      - 3306:3306
    environment:
      TZ: Asia/Shanghai
      MYSQL_ROOT_PASSWORD: 111333
    command:
      --max_connections=1000
      --character-set-server=utf8mb4
      --collation-server=utf8mb4_general_ci
      --explicit_defaults_for_timestamp=true
      --lower_case_table_names=1
      --max_allowed_packet=128M
    volumes:
      - /apps/mysql/config:/etc/mysql
      - /apps/mysql/logs:/var/log/mysql
      - /apps/mysql/data:/var/lib/mysql
      - /apps/mysql/mysql-files:/var/lib/mysql-files/
    networks:
      - dev
networks:
  dev:
    external: true

创建一个mysql容器,使用这个dev,启动

查看网络状态

docker inspect dev

 mysql,已经挂到了这个网络下

nacos

可以直接使用容器名称来代替ip:

db.url.0=jdbc:mysql://mysql:3306/nacos

version: '3'
services:nacos:restart: alwaysimage: nacos/nacos-server:v2.2.1# 容器名称container_name: nacos# 端口映射ports:- 8108:8848- 9848:9848- 9849:9849# 容器权限privileged: true# 参数设置environment:JVM_XMS: 128mJVM_XMX: 128mJVM_MS: 64mJVM_MMS: 64mMODE: standaloneNACOS_REPLICAS: 1PREFER_HOST_MODE: ipSPRING_DATASOURCE_PLATFORM: mysqlMYSQL_SERVICE_HOST: mysqlMYSQL_SERVICE_DB_NAME: nacosMYSQL_SERVICE_PORT: 3306MYSQL_SERVICE_USER: rootMYSQL_SERVICE_PASSWORD: 113355volumes:- /apps/nacos/logs:/home/nacos/logs- /apps/nacos/plugins:/home/nacos/plugins- /apps/nacos/data:/home/nacos/data- /apps/nacos/config/application.properties:/home/nacos/conf/application.propertiesnetworks:- dev
networks:dev:external: true
### If use MySQL as datasource:
spring.datasource.platform=mysql### Count of DB:
db.num=1### Connect URL of DB:
db.url.0=jdbc:mysql://mysql:3306/nacos?characterEncoding=utf8&connectTimeout=1000&socketTimeout=3000&autoReconnect=true&useUnicode=true&useSSL=false&serverTimezone=UTC
db.user.0=root
db.password.0=113355nacos.core.auth.plugin.nacos.token.secret.key=SecretKey012345678901234567890123456789012345678901234567890123456789#
#nacos.core.auth.enabled=true
#nacos.core.auth.enable.userAgentAuthWhite=false
#nacos.core.auth.server.identity.key=自定义的值
#nacos.core.auth.server.identity.value=自定义的值

效果

启动后效果:

两个容器都已经加入的这个网络,并且可以使用容器名字访问

检查网络状态


http://www.ppmy.cn/news/82512.html

相关文章

selenium driver相关使用

1) 打开浏览器,创建driver对象 from selenium import webdriver import time from selenium.webdriver.common.by import Bydriver webdriver.Chrome() driver.maximize_window() driver.implicitly_wait(5) url "https://www.baidu.com/" driver.get(u…

RabbitMQ部署指南

文章目录 RabbitMQ部署指南1.单机部署1.1.下载镜像1.2.安装MQ 2.集群部署2.1.集群分类2.2.设置网络 RabbitMQ部署指南 1.单机部署 我们在Centos7虚拟机中使用Docker来安装。 1.1.下载镜像 方式一:在线拉取 docker pull rabbitmq:3-management方式二&#xff1a…

C++线程安全队列

在异步编程中&#xff0c;经常需要一个多线程安全的队列来作为线程间通讯的结构&#xff0c;但STL本身提供的std::queue并不是线程安全的&#xff0c;所以需要自己手动实现。 #pragma once#include <queue>#include <mutex>#include <condition_variable>tem…

西南交通大学智能监测 培训课程练习1

2023.05.24培训 task1&#xff1a;ER的用法、对应数据库的设计 task2&#xff1a;熟悉数据库基本操作、使用Navicat 目录 一、E-R图是什么 二、E-R图的组成要素 三、E-R图绘制 四、E-R图实例 4.1E-R图转换到关系模式 4.2具体数据表设计 五、Mysql基础操作 5.1操作数据库…

数字化转型入门

前言 数字化转型是指企业或组织利用数字化技术和数字化思维来提高业务效率、客户体验和创新能力的过程。在当今的数字化时代&#xff0c;企业或组织要想在激烈的市场竞争中获得竞争优势&#xff0c;就必须积极推进数字化转型。本指南将从数字化转型的概念、影响、挑战、关键因…

掌握RDD算子

文章目录 一、准备本地系统文件二、把文件上传到HDFS三、启动HDFS服务四、启动Spark服务五、启动Spark Shell六、映射算子案例任务1、将rdd1每个元素翻倍得到rdd2任务2、将rdd1每个元素平方得到rdd2任务3、利用映射算子打印菱形IDEA里创建项目实现 七、过滤算子案例任务1、过滤…

Google Cloud Natural Language情感分析教程

安装 Google Cloud SDK 支持的 Python 版本 Python 3&#xff08;3.5 到 3.9&#xff09;。 运行 PowerShell 命令&#xff1a; (New-Object Net.WebClient).DownloadFile("https://dl.google.com/dl/cloudsdk/channels/rapid/GoogleCloudSDKInstaller.exe", "…

苹果笔不用原装可以吗?apple pencil二代平替笔推荐

随着网络技术的飞速发展&#xff0c;移动电话、平板电脑、笔记本等移动设备正在逐渐走进人们的生活。就好比如我们现在用的是电容笔。我认为&#xff0c;如果我们可以运用它来学习记笔记&#xff0c;做笔记&#xff0c;或其他一些很简单的事情&#xff0c;我们将不必为一支原装…