当前位置: 首页 > article >正文

docker-network

docker_network手册

一、docker

1.常见指令

在 Docker 环境中,网络是实现容器之间以及容器与外部世界通信的关键部分。不同的网络设置可以满足不同的应用场景需求。

这个参数用于指定容器运行时所连接的网络。通过指定特定的网络,可以控制容器的网络隔离程度、访问权限以及与其他容器或外部服务的通信方式

1.Docker 网络创建的基本命令格式如下:

docker network create [OPTIONS] NETWORK
docker network create --driver bridge my-custom-network
# 查看网络列表
docker network ls # 查看自定义的my-custom-network
docker network rm my-custom-network # 
docker network inspect b36ae4ff2f5e #

创建网络:它告诉 Docker 创建一个新的网络。
指定驱动:通过 --driver bridge 指定了网络使用的驱动为 bridge。
命名网络:my-custom-network 是你给这个新网络指定的名称,之后你可以通过这个名字来引用这个网络。

2.运行容器

在启动MySQL容器时,使用--network选项将其连接到上一步创建的网络

docker run --name mysql02 -e MYSQL_ROOT_PASSWORD=yourpassword -d --network=my-custom-network mysql:tag

同样地,在启动Nacos容器时,也使用--network选项将其连接到my-custom-network网络。

docker run --name nacos -d --network=my-custom-network -e MODE=standalone -p 8848:8848 nacos/nacos-server

在Nacos的application.properties文件中 ,但是是使用容器内部的端口 而不是映射宿主机的端口

spring.datasource.platform=mysql  
db.num=1  
db.url.0=jdbc:mysql://mysql02:3306/nacos_config?characterEncoding=utf8&connectTimeout=1000&socketTimeout=3000&autoReconnect=true  
db.user.0=root  
db.password.0=yourpassword
docker network inspect b36ae4ff2f5e 

将名为 mysql02 的容器连接到名为 my-custom-network 的网络的命令:

docker network connect my-custom-network mysql02 
docker network connect my-custom-network emqx

运行 docker run 命令时没有指定 --network=my-custom-network,那么容器默认会连接到 Docker 的默认网络(通常是 bridge 网络,但名称可能是 bridgedocker0 或其他,取决于 Docker 的版本和配置)

断开与默认网络的连接的命令如下(但请谨慎使用):

docker network disconnect bridge mysql02 # 不使用,也可以增加容器网络连接

二、docker-comepose

1.comepose 自定义网络名

在networks自定义网路中指定name属性,这样就不会使用默认的名称生成策略

在 Compose 文件的顶层 version 下面添加如下代码:

networks:  
  my_network: 
    driver: bridge
    name: my_network
  halo_network:  
    driver: bridge
    name: halo_network

2.指定已经存在的网络

version: "3"  
  
services:  
  halo:  
    image: halohub/halo:2.18  
    container_name: halo  
    restart: on-failure:3  
    networks:  
      - my_network  
      - halo_network
    volumes:  
      - ./halo2/:/root/.halo2  
    ports:  
      - "8090:8090"  
    command:  
      - --spring.r2dbc.url=r2dbc:pool:mysql://halodb:3306/halo  
      - --spring.r2dbc.username=root  
      - --spring.r2dbc.password=2580qwe@HW
      - --spring.sql.init.platform=mysql  
      - --halo.external-url=https://lerlee.online  
      - --halo.security.initializer.superadminusername=admin  
      - --halo.security.initializer.superadminpassword=lerlee  
  
networks:  
  my_network:  
    external: true  # 假设my_network网络已经在其他docker-compose文件中定义或预先创建
  halo_network:
    external: true  # 假设halo_network网络已经在其他docker-compose文件中定义或预先创建

三、总结

在 comepose , 外部没有 这个 my-network 而内部 使用


http://www.kler.cn/a/294548.html

相关文章:

  • JVM详解:JVM的系统架构
  • 在 Service Worker 中caches.put() 和 caches.add()/caches.addAll() 方法他们之间的区别
  • 文献解读-DNAscope: High accuracy small variant calling using machine learning
  • Web大学生网页作业成品——婚礼婚纱网页设计与实现(HTML+CSS)(6个页面)
  • JavaScript高级程序设计基础(四)
  • Linux探秘坊-------1.系统核心的低语:基础指令的奥秘解析(1)
  • GatewayWorker框架的详解和应用
  • [建模已更新]2024数学建模国赛高教社杯A题:“板凳龙” 闹元宵 思路代码文章助攻手把手保姆级
  • Hive整合MySQL
  • tabBar设置底部菜单选项以及iconfont图标
  • Java学习第七天
  • 【功能实现】如何实现点击后跳转到顶部??
  • 57-java csrf防御方案
  • 【Redis】Redis 集群搭建与管理: 原理、实现与操作
  • vue项目打包后,生成的index.html直接本地打开后没内容
  • Web:攻防世界unseping
  • 11Python的Pandas:可视化
  • Element Plus(Vue 3 版本)来实现图片轮播
  • P01-Java何谓数组
  • sheng的学习笔记-AI-概率图,隐马尔可夫HMM,马尔可夫随机场MRF,条件随机场CRF
  • 尝试用java spring boot+VUE3实现前后端分离部署(8/31)
  • 时间段切块算法
  • Flask中 blinker 是什么
  • 【Spring基础1】- Spring 启示录-理解IoC控制反转
  • 电脑删除的Word文件怎么恢复?快速恢复技巧分享
  • C++入门基础