【docker】docker数据卷与网络部署服务

news2024/9/25 1:23:58

Docker 网络模式

  1. 选择网络模式
    • 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 ...
  2. 执行网络操作
    • 查看现有网络
      • 操作: 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 /opt
 mysql -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 directory
        location / {
            root /usr/share/nginx/html/bm;
            index index.html index.htm;
        }

        # Proxy requests to the Java application
        location /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
在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1993138.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

XP服务器-远程桌面连接不上

今天遇到个很奇怪的事&#xff0c;xp服务器突然远程桌面连接不上了&#xff0c;根据上网百度的结果&#xff0c;防火墙关了&#xff0c;也允许远程连接了。我之前修改过服务器的默认端口号3389&#xff0c;改为了新端口号A&#xff0c;但是当时修改完是可以正常登陆的。而且新端…

004集——静态常量和动态常量——C#学习笔记

首先普及一个小白使用的小技巧&#xff1a;tab键可以自动输出系统显示的引导字符。 常量是使用 const 关键字来定义的 。定义一个常量的语法如下&#xff1a; const <data_type> <constant_name> value; 下面的代码演示了如何在程序中定义和使用常量&#xff1…

win服务器cmd执行exe文件失败

问题场景 场景&#xff1a;用python打包的exe文件&#xff0c;在cmd下执行是没问题的&#xff0c;放到定时任务就不执行。。。动di脚本调试没问题&#xff0c;打包成exe可执行程序也能正常运行。就是放到定时任务有问题。 解决&#xff1a; 解决方案 1.打开计划任务创建计划任…

OpenGL3.3_C++_Windows(34)

demo 1 Fresnel-Schlick PBR直接光源 顾名思义&#xff1a;直接光源指有光源直接照射到点p 的辐射强度&#xff0c;由于一个光源只会有一个光线wi影响点p&#xff0c;所以和之前的计算没什么差异对于影响p的光源&#xff0c;并不需要积分计算半球形辐照度&#xff0c;遍历每个…

71 为对象定义类

① 类定义对象的特征和行为。 ② 一个 Python 类使用变量存储数据域&#xff0c;定义方法来完成动作。类就是一份契约&#xff08;有时也称之为模板或蓝本&#xff09;&#xff0c;它定义对象的数据域和方法。 ③ 对象是类的一个实例&#xff0c;可以创建一个类的多个对象。创建…

【Linux】yum软件包管理器(使用、生态、yum源切换)

目录 1.yum-软件包管理器&#x1f638;1.1yum使用方法1.2什么是yum&#xff1f;&#x1f638;1.3yum的周边生态1.4yum源切换1.4.1 查看系统本身yum源1.4.2 软件源1.4.3yum源配置 1.yum-软件包管理器 以下操作需要联网的情况下进行 &#x1f638;1.1yum使用方法 安装软件时由于需…

蜜罐——HFish使用

蜜罐——HFish的使用 一、蜜罐简介 1.1 蜜罐技术 蜜罐技术本质上是一种对攻击方进行欺骗的技术&#xff0c;通过布置一些作为诱饵的主机、网络服务或者信息&#xff0c;诱使攻击方对它们实施攻击&#xff0c;从而可以对攻击行为进行捕获和分析&#xff0c;了解攻击方所使用的…

分类预测|基于灰狼优化最小二乘支持向量机结合Adaboost集成的数据分类预测Matlab程序GWO-LSSVM-Adaboost

分类预测|基于灰狼优化最小二乘支持向量机结合Adaboost集成的数据分类预测Matlab程序GWO-LSSVM-Adaboost 文章目录 前言分类预测|基于灰狼优化最小二乘支持向量机结合Adaboost集成的数据分类预测Matlab程序GWO-LSSVM-Adaboost 一、GWO-LSSVM-Adaboost模型1. Grey Wolf Optimize…

c++基本数据类型变量的最大值,最小值和内存空间

基本数据类型有哪些&#xff1f; 在C中&#xff0c;基本数据类型主要包括以下几种&#xff1a; 整型 (Integral Types)&#xff1a; int&#xff1a;通常为32位&#xff0c;有 signed 和 unsigned 两种版本&#xff0c;如 int, unsigned int.short 或 signed short / unsigned …

sqlserver怎么做全文搜索

在SQL Server Management Studio中管理界面&#xff0c;创建表全文索引&#xff0c; 选中表&#xff0c;右键–>全文检索–>定义全文检索—>SQLServer全文检索向导 &#xff0c;然后按提示下一步&#xff0c;创建要创建索引的列&#xff0c;就是搜索数据列 创建完了使…

抗噪声最大最小值筛选

问题 在如下图所示包含一些噪声的数据队列中如何可以把绿色的&#xff08;有一个点图片上忘记标了&#xff09;几个主观认为的最大值最小值筛选出来 思路 简述&#xff1a;定义一个噪声阈值&#xff0c;如果当前比上一次超过噪声阈值才进行更新&#xff0c;如果当前比上一次的…

双11订单实时大屏 - Flink实战洞见

每年的双11购物狂欢节不仅是消费者的狂欢&#xff0c;更是技术人员展示实力的舞台。在这个全民关注的时刻&#xff0c;如何实现实时、准确、鲜活的订单数据展示&#xff0c;成为了各大电商平台技术竞技的焦点。本文将深入探讨如何利用Apache Flink构建一个面向双11的订单实时大…

软件设计原则 KISS、YAGNI、DRY

软件设计原则 KISS、YAGNI、DRY flyfish 设计模式、设计原则与编程惯用法综述 图片来源SpaceX 简约至极的猛禽3(Raptor 3)火箭发动机 一、KISS (Keep It Simple, Stupid!, 保持简单) KISS原则&#xff0c;即“Keep it simple, stupid!”&#xff08;保持简单&#xff0c;傻…

鸿蒙(API 12 Beta3版)【AVCodec Kit简介】 音视频编码服务

AVCodec kit&#xff08;Audio & Video Codec Kit&#xff0c;音视频编解码&#xff0c;封装解封装原子能力&#xff09;是媒体系统中的音视频的编解码、媒体文件的解析、封装、媒体数据输入等原子能力。 能力范围 媒体数据输入&#xff1a;媒体应用可以传入文件fd、或者…

力扣面试150 反转链表 II 三指针

Problem: 92. 反转链表 II &#x1f468;‍&#x1f3eb; 参考题解 特殊情况 /*** Definition for singly-linked list.* public class ListNode {* int val;* ListNode next;* ListNode() {}* ListNode(int val) { this.val val; }* ListNode(int val…

【区块链+医疗健康】健康管理平台 | FISCO BCOS应用案例

如今&#xff0c;医疗数据的共通共享依然存在一些难点&#xff1a; 1. 数据碎片化&#xff0c;分散在各个机构和公司&#xff0c;难以整合和共享。 2. 数据不完整&#xff0c;缺乏全面的患者信息&#xff0c;导致决策质量下降。数据的可扩展性不足&#xff0c;难以长期跟踪患…

“Mutation Observer:让DOM变化尽在掌握

Mutation Observer&#xff08;变动观察者&#xff09; 定义 Mutation Observer是一种JavaScript API&#xff0c;用于异步监测DOM树的变动&#xff0c;包括元素的添加、删除、属性变化等。当DOM发生变动时&#xff0c;它可以触发回调函数&#xff0c;允许你对变动作出响应。 …

Ubuntu14.04安装网卡驱动

1&#xff0c;lspci 查看网卡型号 2,到官网下载解压&#xff0c;进入文件目录 3,新装的服务器会报错&#xff0c;提示我们没有安装make&#xff0c;下载缺少的gcc和make依赖&#xff0c;记得先执执行一下系统更新 sudo apt update && sudo apt upgrade -y sudo apt …

【css】使用CSS绘制奥运五环--巴黎奥运

使用CSS绘制奥运五环 在2024年巴黎奥运会期间&#xff0c;本文来使用 CSS 来画一个奥运五环。奥运五环由五个相互交叠的圆环组成&#xff0c;分别代表五大洲。 奥运五环是相互连接的&#xff0c;因此在视觉上会产生重叠效果&#xff0c;这也是实现五环最有挑战性的部分 HTML结…

Linux -软件包管理 下载与安装方式

1. wget下载 先下载再安装 wget命令是Linux系统用于从Web下载文件的命令行工具&#xff0c;支持 HTTP、HTTPS及FTP协议下载文件 当然现在更多支持用yum工具的&#xff0c;不过有的时候一些镜像站点不再维护一些旧版本的软件时&#xff0c;这时候就可以用wget可以先获取&…