【docker】docker数据卷与网络部署服务
Docker 网络模式
- 选择网络模式
- Host Mode (主机模式)
- 特点: 容器与宿主机共享网络命名空间
- 操作:
docker run --net=host ...
- Container Mode (容器模式)
- 特点: 容器与指定容器共享网络命名空间
- 操作:
docker run --net=container:<container-id-or-name> ...
- None Mode (无网络模式)
- 特点: 容器拥有独立的网络命名空间但没有任何网络设置
- 操作:
docker run --net=none ...
- Bridge Mode (桥接模式)
- 特点: 容器拥有独立的网络命名空间,具有独立的 IP 地址、端口和路由,通过 veth pair 连接到
docker0
网桥 - 操作:
docker run --net=bridge ...
- 特点: 容器拥有独立的网络命名空间,具有独立的 IP 地址、端口和路由,通过 veth pair 连接到
- Host Mode (主机模式)
- 执行网络操作
- 查看现有网络
- 操作:
docker network ls
- 操作:
docker network inspect <network-id-or-name>
- 操作:
- 连接容器到网络
- 操作:
docker network connect <network> <container>
- 操作:
- 断开容器与网络的连接
- 操作:
docker network disconnect <network> <container>
- 操作:
- 删除网络
- 操作:
docker network rm <network>
- 操作:
- 查看现有网络
Docker 网络模式的特性
- Host Mode (主机模式)
- 容器与宿主机共享网络命名空间。
- 容器可以直接访问宿主机的网络设备、IP 地址及端口。
- 不支持端口映射。
- Container Mode (容器模式)
- 容器与另一个容器共享网络命名空间。
- 共享的容器拥有相同的网络设备、IP 地址及端口。
- 不支持端口映射。
- None Mode (无网络模式)
- 容器拥有独立的网络命名空间。
- 容器没有任何网络配置。
- 可能用于不需要网络功能的服务。
- Bridge Mode (桥接模式)
- 容器拥有独立的网络命名空间。
- 每个容器都有独立的 IP 地址、端口和路由。
- 使用 veth pair 连接到
docker0
网桥。 - 支持端口映射。
- 可以通过 IP 地址或容器名称进行通信。
获取容器的进程号
- 命令:
docker inspect -f '{{.State.Pid}}' <container-id-or-name>
1、部署portainer,添加阿里云镜像仓库,通过portainer下载镜像构建容器
docker pull php
docker tag 3546b3772897 registry.cn-hangzhou.aliyuncs.com/shiina_space/shiina:php
docker push registry.cn-hangzhou.aliyuncs.com/shiina_space/shiina:php
docker run -d -p 8088:9000 --restart=always -v /var/run/docker.sock:/var/run/docker.sock --privileged=true portainer/portainer
浏览器访问192.168.99.130:8088,添加一个Registries
搜索镜像php,pull 这个镜像
创建容器
2、部署tomcat,将宿主机下的/opt/html目录挂载到tomcat容器内的webapps目录,在tomcat中发布电影网站
docker run -d -p 8085:8080 --name tomcat88 -v /opt/html:/usr/local/tomcat/webapps tomcat:8.5
apt-get install mysql-server
mysql_secure_installation
3、部署nginx,nginx读取的nginx.conf文件来自宿主机
docker run -d -p 86:80 -v /opt/nginxconfd:/etc/nginx/conf.d --name n8 nginx
4、创建一个独立的桥接网络,网段(20.0.0.0/24),用于部署前后端分离项目,需要nginx容器,mysql容器,java容器(基于centos容器以rpm方式部署jdk8.0)
创建docker网络
docker network create --driver bridge --subnet=20.0.0.0/24 myapp-net
部署MySQL
docker run --name mysql --network myapp-net -e MYSQL_ROOT_PASSWORD=root -d mysql:5.7
docker cp ./carbon.sql mysql:/opt
#Successfully copied 4.1kB to mysql:/opt
docker exec -it mysql /bin/bash cd /optmysql -uroot -p <carbon.sql
#Enter password:
部署后端Java spring
修改jdbc为20.0.0.2:3306后。
docker run --name java-app --network myapp-net -d -v $(pwd):/opt -p 8090:8090 \centos \bash -c "rpm -ivh /opt/jdk-8u371-linux-x64.rpm && java -jar /opt/carbon.jar"
部署前端nginx
nginx.conf:
user nginx;
worker_processes 1;error_log /var/log/nginx/error.log warn;
pid /var/run/nginx.pid;events {worker_connections 1024;
}http {include /etc/nginx/mime.types;default_type application/octet-stream;log_format main '$remote_addr - $remote_user [$time_local] "$request" ''$status $body_bytes_sent "$http_referer" ''"$http_user_agent" "$http_x_forwarded_for"';access_log /var/log/nginx/access.log main;sendfile on;#tcp_nopush on;#keepalive_timeout 0;keepalive_timeout 65;#gzip on;upstream backend {server java-app:8090;}server {listen 80;server_name localhost;# Serve static files from /bm directorylocation / {root /usr/share/nginx/html/bm;index index.html index.htm;}# Proxy requests to the Java applicationlocation /bm {proxy_pass http://backend;proxy_set_header Host $host;proxy_set_header X-Real-IP $remote_addr;proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;proxy_set_header X-Forwarded-Proto $scheme;}error_page 500 502 503 504 /50x.html;location = /50x.html {root /usr/share/nginx/html;}}
}
docker run --name nginx --network myapp-net -p 80:80 -v /opt/carbon/bm:/usr/share/nginx/html -d nginx
docker cp /opt/carbon/nginx.conf nginx:/etc/nginx
docker restart nginx
访问192.168.99.130
相关文章:

【docker】docker数据卷与网络部署服务
Docker 网络模式 选择网络模式 Host Mode (主机模式) 特点: 容器与宿主机共享网络命名空间操作: docker run --nethost ... Container Mode (容器模式) 特点: 容器与指定容器共享网络命名空间操作: docker run --netcontainer:<container-id-or-name> ... None Mode (无…...

Spring MVC框架学习笔记
学习视频:10001 Spring MVC概述_哔哩哔哩_bilibili~11005 请求映射方式_哔哩哔哩_bilibili 目录 1.概述 Java EE三层架构 Spring MVC在三层架构中的位置 编辑 Spring MVC在表现层的作用 Spring MVC的特点 2.Spring MVC入门程序 代码实现 Spring MVC工作原理 Spring …...

LeetCode 100道题目和答案(面试必备)(一)
1.两数之和 给定一个整数数组 nums 和一个整数目标值 target,请你在该数组中找出 和为目标值 target 的那 两个 整数,并返回它们的数组下标。 你可以假设每种输入只会对应一个答案。但是,数组中同一个元素在答案里不能重复出现。 你可以按…...

OpenGL投影矩阵
OpenGL Projection Matrix OpenGL投影矩阵...
Linux中的`make`与`Makefile`:项目自动化构建工具
Linux中的make与Makefile:项目自动化构建工具 在Linux及类Unix系统中,make是一种广泛使用的自动化构建工具,它通过读取和执行Makefile(或makefile,文件名不区分大小写)中的指令来自动化编译和构建程序。Ma…...

GitHub开源项目精选:轻量级预约/预订日历组件,用React和TypeScript构建
在日常开发中,我们经常需要在项目中添加预约或预订功能。今天给大家推荐一个超级轻量级的预约/预订日历组件,它是用React和TypeScript构建的,非常适合那些需要简单易用的日历解决方案的开发者。 安装方法: 你可以选择使用npm或者y…...

闲钱放在哪里?收益稳定且又高!
家庭理财,最大的问题就是,手里这点闲钱,说多不多,但打理起来,还真的很”挠头“。 放银行,存款利率接二连三下调,利息又又又要变少了! 投资出去,看着到处的雷声隆隆&…...

【Linux】简易线程池项目
线程池是一个可以巩固一些线程相关接口 && 加强理解的一个小项目。 注意:这里的线程池使用的线程并不是Linux原生接口,而是经过封装的,具体请看线程封装,为什么不使用原生接口? 因为原生接口一旦进行pthread…...

基于vue框架的NBA球星管理系统1878g(程序+源码+数据库+调试部署+开发环境)系统界面在最后面。
系统程序文件列表 项目功能:用户,球员,球员数据,榜单类型,联盟榜单,重要比赛回放,精彩时刻视频,视频专栏,本赛季赛程,十佳球,投票信息,投票结果 开题报告内容 基于Vue框架的NBA球星管理系统 开题报告 一、选题背景 随着互联网的普及和体育产业的蓬勃发展&#x…...

【docker】Dockerfile练习
1、overlay文件系统原理测试 cd /mnt mkdir A B C worker merged echo "From A">./A/a.txt echo "From A">./A/b.txt echo "From A">./A/c.txt echo "From B">./B/a.txt echo "From B">./B/d.txt echo &quo…...
数据可视化的魔法:Python Matplotlib库的奇妙之旅
标题:数据可视化的魔法:Python Matplotlib库的奇妙之旅 在数据科学和分析领域,数据可视化是一种将复杂数据转换为图形表示的强有力工具,它可以帮助我们更直观地理解数据。Python中的Matplotlib库是进行数据可视化的瑞士军刀&…...
Python数据科学的秘密武器:Pandas库的深度解析
标题:Python数据科学的秘密武器:Pandas库的深度解析 Python作为数据科学领域的宠儿,其强大的数据处理能力离不开Pandas库的加持。Pandas是一个开源的数据分析和操作库,它提供了快速、灵活和表达力强的数据结构,旨在使…...

云计算实训24——python基本环境搭建、变量和数据类型、数据集合、py脚本
一、python环境搭建 确保拥有阿里云镜像 查看python环境 [rootpython ~]# yum list installed | grep python 查看epel是否安装 [rootpython ~]# yum list installed | grep epel 安装epel [rootpython ~]# yum -y install epel-release.noarch 查看是否安装python3 [rootpyt…...
深入了解网络性能监控(NPM):优化网络性能的关键
目录 网络性能监控(NPM)是什么? 关键网络性能指标 案例分享:如何利用NPM优化网络性能 实用技巧:如何高效运维你的网络 结论 随着企业依赖于互联网和内部网络进行业务运营,网络的稳定性和性能显得尤为重…...

Vue引入使用iconfont字体图标
由于element-ui或element-plus提供的图标有时候并不能满足日常需求,所以这篇介绍一下前端引入阿里巴巴矢量图标库使用,不止是vue使用,不限于vue2、vue3,html或是其他框架也是同样的道理,只要引入都是同样可以使用的。 1. 首先进入阿里巴巴矢量图标库官网 官网:https://…...
Doc2Vec
Doc2Vec 是一种扩展自 Word2Vec 的算法,它不仅可以生成词向量,还可以生成句子或文档的向量。下面是一个使用 Doc2Vec 比较两个句子的具体过程: 步骤 1: 训练 Doc2Vec 模型 首先,你需要有一个训练好的 Doc2Vec 模型。训练过程大致…...

MES生产过程透明管理,实施掌握生产每个环节
MES(制造执行系统)生产过程透明管理,旨在通过集成多种技术手段和管理模块,实现对生产过程的实时监控和精准掌握,确保每个生产环节都能被清晰地记录和追踪。以下是对MES生产过程透明管理的详细阐述: 一、MES…...
Java解析压缩包,并根据指定文件夹上传文件
方法 public Multimap<String, String> getCodeBucketMultimap(HttpServletRequest request)throws IOException {MultipartHttpServletRequest multiRequest (MultipartHttpServletRequest) request;// 基于servlet获取文件流List<MultipartFile> multipartFile…...

【HTML】纯前台字符验证码
效果图: 大致思路: 1.在<canvas>画布里写出几个字符; 2.给字符一个随机的角度和颜色; 3.给字符上画出一些干扰线和干扰点。 <canvas width"100" height"30" id"canvasRef" click"…...
如何在 Vue.js 项目中动态设置页面标题
目录 方法 1:使用 Vue Router 的元信息(meta) 步骤 1: 配置路由元信息 步骤 2: 使用路由守卫设置标题 方法 2:在组件内设置标题 在组件挂载时设置标题 使用响应式数据动态更新标题 在开发 Vue.js 应用时,设置动态页面标题是常见需求,尤其当应用包含多个页面时,为每…...

python/java环境配置
环境变量放一起 python: 1.首先下载Python Python下载地址:Download Python | Python.org downloads ---windows -- 64 2.安装Python 下面两个,然后自定义,全选 可以把前4个选上 3.环境配置 1)搜高级系统设置 2…...

【SQL学习笔记1】增删改查+多表连接全解析(内附SQL免费在线练习工具)
可以使用Sqliteviz这个网站免费编写sql语句,它能够让用户直接在浏览器内练习SQL的语法,不需要安装任何软件。 链接如下: sqliteviz 注意: 在转写SQL语法时,关键字之间有一个特定的顺序,这个顺序会影响到…...
CRMEB 框架中 PHP 上传扩展开发:涵盖本地上传及阿里云 OSS、腾讯云 COS、七牛云
目前已有本地上传、阿里云OSS上传、腾讯云COS上传、七牛云上传扩展 扩展入口文件 文件目录 crmeb\services\upload\Upload.php namespace crmeb\services\upload;use crmeb\basic\BaseManager; use think\facade\Config;/*** Class Upload* package crmeb\services\upload* …...
python报错No module named ‘tensorflow.keras‘
是由于不同版本的tensorflow下的keras所在的路径不同,结合所安装的tensorflow的目录结构修改from语句即可。 原语句: from tensorflow.keras.layers import Conv1D, MaxPooling1D, LSTM, Dense 修改后: from tensorflow.python.keras.lay…...
Java + Spring Boot + Mybatis 实现批量插入
在 Java 中使用 Spring Boot 和 MyBatis 实现批量插入可以通过以下步骤完成。这里提供两种常用方法:使用 MyBatis 的 <foreach> 标签和批处理模式(ExecutorType.BATCH)。 方法一:使用 XML 的 <foreach> 标签ÿ…...

DingDing机器人群消息推送
文章目录 1 新建机器人2 API文档说明3 代码编写 1 新建机器人 点击群设置 下滑到群管理的机器人,点击进入 添加机器人 选择自定义Webhook服务 点击添加 设置安全设置,详见说明文档 成功后,记录Webhook 2 API文档说明 点击设置说明 查看自…...
人工智能--安全大模型训练计划:基于Fine-tuning + LLM Agent
安全大模型训练计划:基于Fine-tuning LLM Agent 1. 构建高质量安全数据集 目标:为安全大模型创建高质量、去偏、符合伦理的训练数据集,涵盖安全相关任务(如有害内容检测、隐私保护、道德推理等)。 1.1 数据收集 描…...

实战三:开发网页端界面完成黑白视频转为彩色视频
一、需求描述 设计一个简单的视频上色应用,用户可以通过网页界面上传黑白视频,系统会自动将其转换为彩色视频。整个过程对用户来说非常简单直观,不需要了解技术细节。 效果图 二、实现思路 总体思路: 用户通过Gradio界面上…...

SQL注入篇-sqlmap的配置和使用
在之前的皮卡丘靶场第五期SQL注入的内容中我们谈到了sqlmap,但是由于很多朋友看不了解命令行格式,所以是纯手动获取数据库信息的 接下来我们就用sqlmap来进行皮卡丘靶场的sql注入学习,链接:https://wwhc.lanzoue.com/ifJY32ybh6vc…...
在Spring Boot中集成RabbitMQ的完整指南
前言 在现代微服务架构中,消息队列(Message Queue)是实现异步通信、解耦系统组件的重要工具。RabbitMQ 是一个流行的消息中间件,支持多种消息协议,具有高可靠性和可扩展性。 本博客将详细介绍如何在 Spring Boot 项目…...