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 而内部 使用

点赞(0) 打赏

评论列表 共有 0 条评论

暂无评论

微信公众账号

微信扫一扫加关注

发表
评论
返回
顶部