docker 容器添加指定网络地址
docker 容器添加指定网络地址
在搭建halo博客时,准备让 halo、mysql8.1、nginx 三个容器在同一个网段中,并指定IP。
实现docker内部容器之间网络互通。
查看容器网络信息命令
docker inspect 容器名
各容器部署成功后网络效果如下:
nginx 网络
IP:172.10.0.4
网关 :172.10.0.1

halo 网络
IP:172.10.0.2
网关 :172.10.0.1

halodb 网络(halo数据库 mysql8.1)
IP:172.10.0.3
网关 :172.10.0.1

部署流程如下:
halo 博客部署
由于开始前我没有创建自定义网络。
我采用的是 部署halo时创建网络。
如果需要创建自定义网络看 》》》自定义创建网络
如果已经有自定义网络,将 halo docker-compose.yaml文件中 networks 配置,
按照下面 nginx docker-compose.yaml文件 networks 来修改。
采用docker-compose.yaml 文件部署halo 和mysql。
进入halo 目录 执行 docker-compose up -d 命令, 容器部署成功后会同时创建 mynetwork 网络。
halo和数据库 部署 docker-compose.yaml文件如下
version: "3"
services:
#halo 配置halo:image: halohub/halo:2.11container_name: halorestart: on-failure:3depends_on:halodb:condition: service_healthynetworks:mynetwork: #网络名称ipv4_address: 172.10.0.2 ###halo指定网络volumes:- ./halo2:/root/.halo2ports:- "8090:8090"healthcheck:test: ["CMD", "curl", "-f", "http://localhost:8090/actuator/health/readiness"]interval: 30stimeout: 5sretries: 5start_period: 30scommand:- --spring.r2dbc.url=r2dbc:pool:mysql://halodb:3306/halo- --spring.r2dbc.username=root# MySQL 的密码,请保证与下方 MYSQL_ROOT_PASSWORD 的变量值一致。- --spring.r2dbc.password=123456- --spring.sql.init.platform=mysql# 外部访问地址,请根据实际需要修改- --halo.external-url=http://47.98.237.238:8090/
#halo 数据库配置halodb:image: mysql:8.1.0container_name: halodbrestart: on-failure:3networks:mynetwork: #网络名称ipv4_address: 172.10.0.3 ###mysql指定网络command: - --default-authentication-plugin=caching_sha2_password- --character-set-server=utf8mb4- --collation-server=utf8mb4_general_ci- --explicit_defaults_for_timestamp=truevolumes:- ./mysql:/var/lib/mysql- ./mysqlBackup:/data/mysqlBackupports:- "33060:3306"healthcheck:test: ["CMD", "mysqladmin", "ping", "-h", "127.0.0.1", "--silent"]interval: 3sretries: 5start_period: 30senvironment:# 请修改此密码,并对应修改上方 Halo 服务的 SPRING_R2DBC_PASSWORD 变量值- MYSQL_ROOT_PASSWORD=123456- MYSQL_DATABASE=halo
# 创建网络,创建成功后网络名称 halo_mynetwork
# 创建网络过程中 会将文件名 halo 作为前缀。
# 如果已经有自定义网络,就将networks 配置 按照下面nginx 来配置即可。
networks:mynetwork: ###网络名称driver: bridge ###网络模式 桥接ipam:config:- subnet: 172.10.0.0/24gateway: 172.10.0.1
查看当前容器存在的网络
docker network ls
部署好 halo 和mysql 后,创建的网络为 halo_mynetwork

nginx 部署指定网络和挂载目录
nginx 部署 docker-compose.yaml 文件如下:
version: '3'services:nginx:image: nginx # 镜像名称container_name: mynginx # 容器名字restart: always # 开机自动重启networks:halo_mynetwork:ipv4_address: 172.10.0.4ports: # 端口号绑定(宿主机:容器内)- '8080:80'- '443:443'volumes: # 目录映射(宿主机:容器内)- /home/docker/nginx/nginx.conf:/etc/nginx/nginx.conf ###配置文件- /home/docker/nginx/log:/var/log/nginx ###这里面放置日志- /home/docker/nginx/html:/html ###这里面放置项目目录- /home/docker/nginx/conf.d:/etc/nginx/conf.d
#网络配置
networks:halo_mynetwork: ### 网络名称external: true ###外部网络
错误信息提示:
执行:docker-compose up -d 命令时报如下错误:
// 是因为网络不存在,查看docker-compose.yaml文件中网络配置是否正确。
service "nginx" refers to undefined network halo_mynetwork: invalid compose project

// docker-compose.yaml 文件编码不正确
parsing /home/docker/nginx/docker-compose.yml: yaml: invalid leading UTF-8 octet

// 文件格式化不正确,比如不能使用 tab进行缩进,采用空格键。
parsing /home/docker/nginx/docker-compose.yml: yaml: line 7: found character that cannot start any token

相关文章:
docker 容器添加指定网络地址
docker 容器添加指定网络地址 在搭建halo博客时,准备让 halo、mysql8.1、nginx 三个容器在同一个网段中,并指定IP。 实现docker内部容器之间网络互通。 查看容器网络信息命令 docker inspect 容器名各容器部署成功后网络效果如下: nginx …...
后端怎样防止重复提交订单?
参考文章 通常我们可以在前端通过防抖和节流来解决短时间内请求重复提交的问题, 如果因网络问题、Nginx重试机制、微服务Feign重试机制或者用户故意绕过前端防抖和节流设置,直接频繁发起请求,都会导致系统防重请求失败,甚至导致后…...
数据结构之二叉搜索树
二叉搜索树 满足条件: 1.对于根节点:左子树中所有节点的值小于右子树中所有节点的值 2.任意节点的左右子树也是二叉搜索树,同样满足条件1 二叉搜索树的常用操作 我们将二叉搜索树封装为一个类 BinarySearchTree ,并声明一个成员变…...
《设计模式的艺术》笔记 - 抽象工厂模式
介绍 提供了一个创建一系列相关或相互依赖的对象的接口,而无须指定它们具体的类。抽象工厂模式又称为Kit模式,它是一种对象创建型模式。 在抽象工厂模式中,每个具体工厂都提供了多个工厂方法用于产生多种不同类型的产品,这些产品构…...
7.11、Kali Linux中文版虚拟机安装运行教程
目录 一、资源下载准备工作 二、安装教程 三、kali linux换源 四、apt-get update 报错 一、资源下载准备工作 linux 中文版镜像历史版本下载:http://old.kali.org/kali-images/ 大家可以自行选择版本下载,本人下载的是2021版本 二、安装教程 打开vmvare wokst…...
Go+快速开始详细指南
Go快速开始 Go编程语言是为工程、STEM教育和数据科学设计的。 对于工程:用儿童能掌握的最简单的语言工作。对于STEM教育:学习一门可以在未来工作中使用的工程语言。对于数据科学:用同一种语言与工程师交流。 安装方法 现在,我们建议您从源代码安装Go。 注意:需…...
SQL:一行中存在任一指标就显示出来
当想要统计的两个指标不在一张表中时,需要做关联。但很多情况下,也没有办法保证其中一张表的维度是全的,用left join或right join可能会导致数据丢失。所以借助full join处理。 1)如,将下面的数据处理成表格中的效果&…...
【代码随想录06】454. 四数相加 II 383. 赎金信 15. 三数之和 18. 四数之和
目录 454. 四数相加 II题目描述做题思路参考代码 383. 赎金信题目描述做题思路参考代码 15. 三数之和题目描述参考代码 18. 四数之和题目描述参考代码 454. 四数相加 II 题目描述 给你四个整数数组 nums1、nums2、nums3 和 nums4 ,数组长度都是 n ,请你…...
NodeJs 第十五章 session
Session代表服务器和客户端一次会话的过程。 在计算机科学领域来说,尤其是在网络领域,会话(session)是一种持久网络协议,在用户(或用户代理)端和服务器端之间创建关联,从而起到交换数据包的作用机制,session在网络协议…...
JRTP实时音视频传输(1)-必做的环境搭建与demo测试
1.需求 1)支持协议自动切换。在网络优的情况下使用TCP、网络差的情况下使用UDP,满足实时音视频传输需求, 2)支持RTCP ,流量控制,阻塞控制等。需要能支持RTCP,这样便能在这个基础上,…...
腿部臀部训练
坐式蹬腿器 100kg,是器械的极限了,也差不多是我的极限,深蹲是40kg,应该还可以加点,大腿外扩器55kg,没有尝试能不能做更重的,羡慕健身房里面的好身材的同学,自己得好好练 1.21健身房关…...
windows系统下docker软件中使用ubuntu发行版本的linux系统
1.软件下载 官网下载地址 下载安装之后,再去微软商店下载wsl软件,可以直接用,或者也可以使用命令行拉取(下面会讲) 2.在docker里面创建容器的两种方法 2.1.命令行创建 前言:输入 winr 打开命令行进行下面…...
vue实现小球掉落
首先,将小球儿动画代码封装成组件,创建个文件,例如qiu.js let createBall (left, top,box) > {// 点击事件 const {clientX,clienty} ev createBall(clientX,clienty)const ball document.createElement(div);ball.style.position a…...
k8s的存储卷、数据卷---动态PV创建
当发布PVC之后可以生成PV,还可以在动态服务器上直接生成挂载目录。PVC直接绑定和使用PV。 动态PV需要两个组件 存储卷插件:Provisioner(存储分配器)根据定义的属性创建PV StorageClass:定义属性 存储卷插件 存储卷插件:k8s本…...
go最佳实践:如何舒适地编码
什么是 "最佳 "做法? 有很多做法:你可以自己想出来,在互联网上找到,或者从其他语言中拿来,但由于其主观性,并不总是容易说哪一个比另一个好。”最佳”的含义因人而异,也取决于其背景…...
C# 消息队列、多线程、回滚、并行编程、异步编程、反射
消息队列 消息队列是一种在应用程序之间传递消息的异步通信机制。它可以使应用程序解耦并提高系统的可伸缩性和可靠性。在 C# 中,你可以使用多个消息队列技术,其中一种广泛使用的技术是 RabbitMQ。 RabbitMQ 是一个开源的消息代理,实现了高…...
汇编代码生成和编译器的后端
1.前置程序:语义分析和中间代码生成 基于SLR(1)分析的语义分析及中间代码生成程序-CSDN博客https://blog.csdn.net/lijj0304/article/details/135097554?spm1001.2014.3001.5501 2.程序目标 在前面编译器前端实现的基础上,将所生成的中间代码翻译成某…...
MySQL 8.0中新增的功能(九)
FROM_UNIXTIME()、UNIX_TIMESTAMP()和CONVERT_TZ()的64位支持 根据MySQL 8.0.28版本的更新,FROM_UNIXTIME()、UNIX_TIMESTAMP() 和 CONVERT_TZ() 函数现在在支持64位的平台上处理64位值。这包括64位版本的Linux、MacOS和Windows。在兼容的平台上,UNIX_T…...
QT基础篇(8)QT5模型视图结构
1.概述 QT5的模型视图结构主要包括模型(Model)、视图(View)和委托(Delegate)三个部分。 模型(Model):模型是数据的抽象表示,负责存储和管理数据。它可以是自…...
vue3-响应式基础之reactive
reactive() 还有另一种声明响应式状态的方式,即使用 reactive() API。与将内部值包装在特殊对象中的 ref 不同,reactive() 将使对象本身具有响应性: 「点击按钮1」 <script lang"ts" setup> import { reactive } from vuec…...
免费开源的质谱分析革新工具:从数据到发现的完整路径
免费开源的质谱分析革新工具:从数据到发现的完整路径 【免费下载链接】OpenMS The codebase of the OpenMS project 项目地址: https://gitcode.com/gh_mirrors/op/OpenMS OpenMS作为一款免费开源的质谱数据分析平台,为科研人员提供了从原始质谱数…...
深度学习模型过拟合的实战诊断与优化策略
1. 过拟合现象的诊断方法 第一次训练神经网络时,我盯着训练准确率冲到99%兴奋不已,结果测试集表现只有65%——这就是典型的过拟合现场。判断模型是否过拟合,就像医生看体检报告,需要多维度交叉验证。 最直观的方法是训练集与验证集…...
CS231n实战解析:从HOG/HSV特征到图像分类性能提升
1. 图像特征工程入门:为什么HOG和HSV如此重要 第一次接触CS231n作业时,我对HOG和HSV这两个特征提取方法感到既陌生又好奇。直到在CIFAR-10数据集上做了对比实验才发现,使用原始像素训练的模型准确率只有0.51,而加入特征工程后直接…...
好写作AI|避免“AI味”过重:硕士初稿中的人机协同写作技巧
家人们,谁懂啊? 你兴冲冲地把用AI写的初稿交给导师,结果导师只看了一页,就皱起眉头: “这段是你自己写的还是AI写的?” 你心里咯噔一下,强装镇定:“我自己写的啊……” 导师…...
3步解锁ZTE ONU工厂模式:高效实用的网络设备管理完整指南
3步解锁ZTE ONU工厂模式:高效实用的网络设备管理完整指南 【免费下载链接】zteOnu A tool that can open ZTE onu device factory mode 项目地址: https://gitcode.com/gh_mirrors/zt/zteOnu 你是否曾经面对ZTE ONU设备的管理界面感到束手无策?想…...
文墨共鸣使用避坑指南:避免这3个误区让分析更准确
文墨共鸣使用避坑指南:避免这3个误区让分析更准确 1. 引言:从“会用”到“用好”的关键一步 你已经成功部署了文墨共鸣,体验了它那充满诗意的水墨界面,也尝试过输入几段文字来感受AI对语义的“雅鉴”。但你是否遇到过这样的困惑…...
AssetRipper终极指南:轻松提取Unity游戏资源的完整教程
AssetRipper终极指南:轻松提取Unity游戏资源的完整教程 【免费下载链接】AssetRipper GUI Application to work with engine assets, asset bundles, and serialized files 项目地址: https://gitcode.com/GitHub_Trending/as/AssetRipper 还在为无法获取Uni…...
Ostrakon-VL-8B实战:模拟互联网产品A/B测试中的视觉效果分析
Ostrakon-VL-8B实战:模拟互联网产品A/B测试中的视觉效果分析 每次产品迭代,设计团队和产品经理之间总少不了一场“拉锯战”。新版本的设计稿出来了,A方案简洁现代,B方案信息突出,到底哪个更能吸引用户点击?…...
利用Qwen3-14B-AWQ优化数据库课程设计:智能ER图生成与SQL语句优化
利用Qwen3-14B-AWQ优化数据库课程设计:智能ER图生成与SQL语句优化 1. 课程设计的痛点与解决方案 每到数据库课程设计阶段,学生们总会遇到相似的困扰:面对一个模糊的业务需求,如何准确识别实体和关系?如何设计规范的数…...
零代码!用Qwen-Image-2512-ComfyUI轻松制作中文电商配图与营销素材
零代码!用Qwen-Image-2512-ComfyUI轻松制作中文电商配图与营销素材 1. 为什么选择Qwen-Image-2512-ComfyUI 电商运营和内容创作者经常面临一个共同难题:如何快速制作高质量的中文营销素材。传统设计工具需要专业技能,而普通AI绘画工具又难以…...
