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

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: bridgename: my_networkhalo_network:  driver: bridgename: halo_network

2.指定已经存在的网络

version: "3"  services:  halo:  image: halohub/halo:2.18  container_name: halo  restart: on-failure:3  networks:  - my_network  - halo_networkvolumes:  - ./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.mrgr.cn/news/20714.html

相关文章:

  • 三大技术都有的零信任厂商,他来打擂了!
  • 练习实践-git工具-id:1-git 工具的基础命令
  • Android中Fragment的高级用法
  • 全国科普日知识竞赛答题
  • 网页开发 HTML
  • 飞速了解Conda的作用和安装使用教程
  • Qt实现几何、颜色、不透明度动画
  • 解决商店汽水兑换问题——利用贪心算法与循环结构
  • 4-2.Android Camera 之预览图像编码模板(SurfaceView)
  • zabbix4.0创建自定义监控项
  • 【Boost】Asio库学习(二)
  • C# 排序算法之快速排序
  • 利用全核范数去噪技术优化彩色图像处理
  • Electron32-Vue3OS桌面管理os模板|vite5+electron32+arco后台os系统
  • Vue实现双向数据绑定
  • 信息安全保障
  • 支持图片和视频分割,SAM2最新分割一切大模型分享
  • 什么是视频矩阵
  • Windows10彻底关闭自带的防病毒功能
  • Java 使用 Redis