Docker Compose、私有镜像站和Swam集群

十六、Docker Swarm 借助docker-compose.yml部署集群 搭建详细过程,看如下链接,铁子:十五、Docker Swarm集群搭建及服务案例-优快云博客。 阅读详情

Docker Compose

单机容器编排,一键批量管理多个容器,使用yaml格式:docker-compose.yml

  • Docker Compose V1(docker-compose)

    • 命名形式:命令为 docker-compose(带连字符)。

    • 开发语言:基于 Python 开发,是独立于 Docker 引擎的第三方工具。

    • 在配置文件中显式指定 version 字段)。

使用dockercompose部署wordpress(单机Docker环境)

 # 创建一个名为docker-compose.yml的文件
 vim docker-compose.yml
 ----------------------------------
 version: '3.8'
 services:
   db:
     image: mysql:5.7
     volumes:
       - db_data:/var/lib/mysql
     restart: always
     environment:
       MYSQL_ROOT_PASSWORD: root123
       MYSQL_DATABASE: wordpress
       MYSQL_USER: wordpress
       MYSQL_PASSWORD: root123
       MYSQL_ROOT_HOST: '%'
     command: --default-authentication-plugin=mysql_native_password
 ​
   wordpress:
     depends_on:
       - db
     image: wordpress:latest
     ports:
       - "8000:80"
     restart: always
     environment:
       WORDPRESS_DB_HOST: db:3306
       WORDPRESS_DB_USER: wordpress
       WORDPRESS_DB_PASSWORD: root123
       WORDPRESS_DB_NAME: wordpress
     volumes:
       - wp_data:/var/www/html
 ​
 volumes:
   db_data:
   wp_data:
 --------------------------------------
 # 如果之前有下载过需要删除的(没有就省略)
 docker compose down -v
 # 启动服务
 docker compose up -d
 # 浏览器搜索192.168.221.21:8000


Docker私有镜像站-Harbor

私有镜像站,方便管理、下载部署内部的镜像;

 ## 下载Harbor
 cd /opt
 wget http://192.168.57.200/Software/harbor-offline-installer-v2.14.0.tgz

 ## 安装Harbor
 tar -xvf harbor-offline-installer-v2.14.0.tgz
 # 进入Harbor目录,后续都在这个目录里操作
 cd harbor/
 ./install.sh
 # 最后出现两行这个就说明正确了
 # prepare base dir is set to /opt/harbor
 # no config file: /opt/harbor/harbor.yml
 # 修改配置文件中的主机名为本机IP
 cp harbor.yml.tmpl harbor.yml
 vim harbor.yml
 第五行的hostname改为192.168.221.21
 
 ## 创建密钥
 # 1.进入证书目录
 mkdir ssl
 cd ssl/
 # 2.创建本地私有密钥
 openssl genrsa -out ssl.key 2048
 # 3.按提示输入即可
 openssl req -new -key ssl.key -out ssl.csr
 # 4.创建证书crt
 openssl x509 -req -days 1460 -in ssl.csr -signkey ssl.key -out ssl.crt
 # 5.创建证书pem
 openssl dhparam -out ssl.pem 2048
 # 后面就是一堆点了,等待......

 ## 修改配置文件
 vim harbor.yml
 第17行的certificate改成/opt/harbor/ssl/ssl.crt
 第18行的private_key改成/opt/harbor/ssl/ssl.key
 第47行的密码可以改成root123,不改的话登陆密码就是原来的
 ./install.sh
 # 最后出现✔ ----Harbor has been installed and started successfully.----
 docker compose up -d
 # 浏览器搜索IP就是Harbor的界面了
 ​
 vim /etc/docker/daemon.json
   "insecure-registries": [
 在这个后面加两行"http://192.168.57.200:8099",
     "http://192.168.221.21",
     "https://192.168.221.21"
    ]
 systemctl daemon-reload
 systemctl restart docker
 docker compose up -d
 docker login http://192.168.221.21
 docker login https://192.168.221.21
 # 最后都出现Login Succeeded就对了
 
# 在项目中标记镜像:
 docker tag SOURCE_IMAGE[:TAG] 192.168.221.21/library/REPOSITORY[:TAG]
 # 推送镜像到当前项目:
 docker push 192.168.221.21/library/REPOSITORY[:TAG]


Docker-Swarm

多主机容器集群管理工具;统一管理多台服务器上的Docker容器;

需要至少一个master节点:统一管理node节点和所有node节点上的容器;

相关命令

Docker Swarm命令:

 init        初始化一个Swarm。
 join        将Docker主机加入到Swarm作为工作节点或管理节点。
 leave       使节点离开Swarm。
 update      更新Swarm配置。

Docker Service命令:

 create      创建一个新的服务。
 inspect     检查一个或多个服务。
 update      更新一个服务。
 remove      移除一个或多个服务。
 tasks       列出一个或多个服务的任务。

Docker Node命令:

 accept      接受加入到Swarm的请求。
 promote     将节点提升为Swarm中的管理节点。
 demote      将管理节点降级为Swarm中的工作节点。
 inspect     检查一个或多个节点。
 update      更新一个节点。
 tasks       列出分配给一个或多个节点的任务。
 ls          列出Swarm中的节点。
 rm          从Swarm中移除一个或多个节点。

Docker Stack命令:

 config      输出最终的配置文件,在完成合并和插值后
 deploy      部署一个新的堆栈或更新现有的堆栈
 ls          列出堆栈
 ps          列出堆栈中的任务
 rm          移除一个或多个堆栈
 services    列出堆栈中的服务

swam集群部署

 - 192.168.221.21  Manager
 - 192.168.221.22  Node1
 - 192.168.221.23  Node2

 # 1.安装Docker
 apt update
 apt-get -y install ca-certificates curl gnupg lsb-release
 curl -fsSL http://mirrors.aliyun.com/docker-ce/linux/ubuntu/gpg | sudo apt-key add -
 add-apt-repository "deb [arch=amd64] http://mirrors.aliyun.com/docker-ce/linux/ubuntu $(lsb_release -cs) stable"
 apt-get -y install docker-ce docker-ce-cli containerd.io
 systemctl stop docker
 vim /etc/docker/daemon.json
 {
     "registry-mirrors": [
         "https://0c105db5188026850f80c001def654a0.mirror.swr.myhuaweicloud.com",
         "https://5tqw56kt.mirror.aliyuncs.com",
         "https://docker.1panel.live",
         "http://mirrors.ustc.edu.cn",
         "http://mirror.azure.cn",
         "https://hub.rat.dev",
         "https://docker.chenby.cn",
         "https://docker.hpcloud.cloud",
         "https://docker.m.daocloud.io",
         "https://docker.unsee.tech",
         "https://dockerpull.org",
         "https://dockerhub.icu",
         "https://proxy.1panel.live",
         "https://docker.1panel.top",
         "https://docker.1ms.run",
         "https://docker.ketches.cn"
     ],
     "insecure-registries": [
         "http://192.168.57.200:8099"
     ],
     "hosts": [
         "tcp://0.0.0.0:2375",
         "unix:///var/run/docker.sock"
     ]
 }
 sed -i 's/ExecStart=\/usr\/bin\/dockerd -H fd:\/\/ --containerd=\/run\/containerd\/containerd.sock/ExecStart=\/usr\/bin\/dockerd --containerd=\/run\/containerd\/containerd.sock/' /lib/systemd/system/docker.service
 systemctl daemon-reload
 systemctl restart docker
 # 2.所有节点设置 hosts 解析
 cat >> /etc/hosts << EOF
 192.168.221.21 server01
 192.168.221.22 server02
 192.168.221.23 server03
 EOF
 ## 接下来分开操作
 ​
 # 在第一台manager机器上(192.168.221.21操作)
 # 3.初始化集群-init
 docker swarm init --advertise-addr 192.168.221.21
 # 保存第三行的命令与token令牌,用于添加工作节点;添加Manager节点到Swarm集群时,执行'docker swarm join-token manager'获取令牌
 # 4.添加worker(node工作节点)到swarm集群(在另外两台22和23节点上操作)
 # 复制你自己上一步中输出的完整命令到工作节点中。
 docker swarm join --token SWMTKN-1-5q4ztzm6zd0fzdnxw7tprido1d2p38jb650mdujddianpo812n-b51z5ij8vqzlmcr56mluk4irg 192.168.221.21:2377
 第三台机器同理
 最后出现这一行 This node joined a swarm as a worker.
 # 验证加入情况,确保三台机器都在(192.168.221.21操作)
 docker node ls
 ID                            HOSTNAME    STATUS    AVAILABILITY   MANAGER STATUS   ENGINE VERSION
 ifo32t0qq63nl6c2t3a3kio2h *   server-21   Ready     Active         Leader           28.5.1
 shzi3kedbzdvn5lmy5ovgp59s     server-22   Ready     Active                          28.5.1
 lctl7rf6k96dnvqy4bmqiaxvs     server-23   Ready     Active                          28.5.1
 # 在Docker集群中运行容器((192.168.221.21操作)无需下载nginx镜像)
 # 1.在集群中创建overlay网络,让不同宿主上的容器可以在同一个网段内通信,方便搭建负载均衡
 docker network create -d overlay nginx_net
 docker network ls | grep nginx_net
 会出现一行drht1x02my05   nginx_net     overlay   swarm
 # 2.使用service创建相同容器的集群,replicas 3表示至少需要3个副本(三个都running则成功)
 docker service create --replicas 3 --network nginx_net --name my_nginx -p 80:80 nginx
 # 3.验证集群信息
 # 查看正在运行服务的列表
 docker service ls
 # 查询Swarm中服务的信息(-pretty 使命令输出格式化为可读的格式,不加 --pretty 可以输出更详细的信息)
 docker service inspect --pretty my_nginx
 # 4.查看容器ID
 docker ps
 docker exec -it 容器ID /bin/bash
 echo "nginx-1" > /usr/share/nginx/html/index.html
 # 5.查看浏览器(反复刷新)
 curl 192.168.221.21

扩容、缩容

scale是在Swarm中的动态扩展服务,它提供了容器复制的功能。 可以通过 docker service scale 命令来设置服务中容器的副本数。

 # 将上面的 my_nginx 容器动态扩展到6个
 docker service scale my_nginx=6
 # 将上面的 my_nginx 容器动态缩到2个
 docker service scale my_nginx=2

容器版本升级、回滚

 # 容器版本升级
 docker service update --image nginx:1.29 my_nginx
 # 回滚
 docker service update --image nginx:1.26 my_nginx
 # 查看版本可以加上参数-i
 curl -i 192.168.221.21

使用dockercompose部署wordpress(Docker Swarm集群)

 # 1)创建wordpress文件夹
 mkdir -p /data/wordpress
 cd /data/wordpress/
 # 2)编辑docker-compose.yml文件
 vim docker-compose.yml
 ---------------------------------
 version: "3"
 ​
 services:
   wordpress:
     image: wordpress
     ports:
       - 8090:80
     networks:
       - overlay
     environment:
       WORDPRESS_DB_HOST: db:3306
       WORDPRESS_DB_USER: wordpress
       WORDPRESS_DB_PASSWORD: root123
     deploy:
       mode: replicated
       replicas: 3
 ​
   db:
     image: mysql:5.7
     networks:
        - overlay
     volumes:
       - db-data:/var/lib/mysql
     environment:
       MYSQL_ROOT_PASSWORD: root123
       MYSQL_DATABASE: wordpress
       MYSQL_USER: wordpress
       MYSQL_PASSWORD: root123
     deploy:
       placement:
         constraints: [node.role == manager]
 ​
   visualizer:
     image: dockersamples/visualizer:stable
     ports:
       - "8080:8080"
     stop_grace_period: 1m30s
     volumes:
       - "/var/run/docker.sock:/var/run/docker.sock"
     deploy:
       placement:
         constraints: [node.role == manager]
 ​
 volumes:
   db-data:
 networks:
   overlay:
 # 3)部署服务
 docker stack deploy -c docker-compose.yml wordpress
 # 部署服务使用docker stack deploy命令
 # -c:指定compose文件名
 docker stack ls
 # 4)查看效果
 打开浏览器输入 任一节点IP:8080 即可看到各节点运行状态

所有数据仅供实验参考,开发环境不要设置这么简单

Jetson Orin边缘语音AI实战:用Riva ASR/TTS + Llama 2打造离线智能语音助手 本文详细介绍了如何利用NVIDIA Jetson Orin的边缘计算能力,结合Riva ASR/TTS语音引擎和Llama 2大语言模型,构建完全离线的智能语音助手。通过硬件优化、量化部署和性能调优,实现在网络不稳定环境下的高效语音交互,适用于智能家居、车载系统等场景。 阅读详情

相关推荐

RingBuffer 环形缓冲区----镜像指示位

称作环形缓冲区,也称作环形队列(circular queue),是一种用于表示一个固定尺寸、头尾相连的缓冲区的数据结构,适合缓存数据流。这个宏定义用于计算向下对齐的地址。size和align。size是要对齐的内存大小,align是所需的对齐大小。这个宏返回一个值,该值是size向下对齐到align边界后的地址。例如,假设我们有一个 32 位的系统,并且我们需要将数据对齐到 64 位的边界。我们可以使用在这个例子中,data数组的大小为 10 个元素,我们需要将其对齐到 8 字节边界。宏返回data。

呵呵哒!的博客 2405

docker

docker的安装 下载以及安装docker,在win10家庭版中安装docker,可以到https://opsx.alibaba.com/mirror阿里云开源镜像站中下载docker toolbox for windows,下载之后点击安装,若git和virtualbox已经安装,可以不用勾选 安装完毕,在桌面上会出现相应的图标,点击docker quckstart terminal图标启...

qq_34745957的博客 199

2.实体机安装TrueNAS 方法

访问不了可以使用以下连接:提取码:0927。

Unofficial_user的博客 7429

docker基础和安装

NAMESPACE是能够实现轻量级虚拟化的关键技术之一。通过资源隔离,容器可以拥有自己的独立环境,确保容器之间互不干扰,从而实现应用的安全和稳定。每种namespace负责隔离特定的系统资源,包括进程ID、网络、挂载点、用户ID等。

m0_37965321的博客 946

VirusTotal API密钥获取与Python实战:从注册到自动化威胁分析

在网络安全和自动化运维领域,API(应用程序编程接口)是实现系统间数据交互与功能集成的核心技术。其工作原理是通过预定义的协议和端点,允许程序化访问特定服务的数据与功能。对于安全工程师和威胁分析师而言,API的价值在于能够将手动、重复的安全操作(如文件扫描、情报查询)转化为自动化工作流,从而极大提升威胁检测与响应的效率。一个典型的应用场景是集成第三方威胁情报平台,以实现对可疑文件、URL或哈希值的批量与实时分析。本文聚焦于全球知名的威胁情报服务VirusTotal,详细解析其API密钥的注册流程、安全配置要点

weixin_28707739的博客 418

Allegro如何使用Cross Copy命令快速复制器件的位号和丝印外形其他层

在Allegro做PCB设计的时候,如果需要复制器件的位号到其它层是无法直接实现的,如果直接拷贝器件的位号的话,效果如下。但是Allegro的Cross Copy命令是支持复制任何属性的图形到其它层的,下面以复制器件位号和丝印外框为例说明。同样如果使用Z-copy命令,也是无法Z-copy text的,Finds下方texts是灰色的。如何使用Cross Copy命令快速复制器件的位号和丝印外形其他层。另外cap处可以选择线段的端点是圆形,八角形,或者方形的铜皮。拷贝C1013,出现的是C*

weixin_54787054的博客 2671

docker 基础及进阶命令单章

docker 基础及进阶命令单章

qq_44637753的博客 1431

[RK3568 Android11] 开发之默认授予系统预置的APP权限

目录 一、系统预置的APP权限 二、默认授予系统预置的APP权限 一、系统预置的APP权限 1、在打开系统预置的APP时,都会弹窗提示,并且需要人工确定授予权限; 2、有些客户对定制有需求,需要系统预置的APP自动默认授予权限; 二、默认授予系统预置的APP权限 注意此方法只对系统预置的APP起效果,后期手动安装的APP无效; 修改文件: frameworks/base/services/core/java/com/android/server/pm/per...

~未来可期~ 5059

docker 常用命令,docker启动,重启,关闭命令

docker官网地址 https://www.docker.com/ docker启动命令,docker重启命令,docker关闭命令 启动 systemctl start docker 守护进程重启 sudo systemctl daemon-reload 重启docker服务 systemctl restart docker 重启docker服务 sudo se...

y19910825的博客 4195

手把手教你完成YOLOv8 PyQt5和PySide6目标检测界面搭建,前台系统+后台管理系统开发实战,可用于大论文凑工作量或毕设必备,全网最详细教程

目标检测是计算机视觉中的重要任务,广泛应用于安防监控、自动驾驶、智能家居等领域。YOLO系列模型由于其高效的检测速度和较高的准确率,成为目标检测任务的首选算法之一。本项目结合 YOLOv8 与 PyQt5,构建了一个图形化界面,便于用户进行目标检测的操作和展示,实现对图片、视频和摄像头的实时目标检测,不仅可以用于大论文的工作量展示,还可以作为毕业设计。支持目标检测、目标分割等模型进来检测

在职AI算法工程师,擅长计算机视觉,YOLO目标检测、分割等,擅长web、pyqt界面可视化,好内容持续更新中,来这里跟大家一起学习,共同进步 1万+

Allegro如何用自带的功能将线段变成铜皮操作指导

在做PCB设计的时候,有时根据设计需要将线段变成铜皮,可以借助辅助工具来实现这一操作,但是Allegro自身也自带这个功能,如下图。勾选Delete original objects。如何用自带的功能将线段变成铜皮操作指导。勾选Convert to shape,需要把这段走线变成铜皮。

weixin_54787054的博客 2945

使用GitLab、Jenkins、Docker建立快速持续化集成交付部署方案(一)

摘要 本系列文章将要完成的: 安装GitLab、Jenkins、Docker等一系列基础环境 建立自己的 Docker Registry,私有的Docker镜像服务,用于存储我们自己的Docker镜像仓库(Repository) 使用GitLab进行代码管理,并联动Jenkins进行自动化打包,生成Docker Image,推送到自己的Repository 使用Docker Compos...

十个菜 731

蓝牙模块HM-10手册

蓝牙模块HM-10手册,该手册对蓝牙模块HM-10进行了详细的介绍和使用方法以及一些AT指令。

Kafka Docker镜像构建终极指南:从零到多架构部署

还在为复杂的Kafka环境配置而烦恼吗?想要快速搭建一个可移植、支持多架构的Kafka集群吗?本教程将带你深入理解Kafka Docker镜像构建的核心原理,掌握自动化部署的关键技巧,让你的Kafka环境部署变得简单高效!🚀 ## 🤔 为什么选择Docker化Kafka? **痛点识别:** - 环境依赖复杂:需要手动安装Java、Zookeeper、Kafka - 版本兼容问题:不同版本

gitblog_00957的博客 795

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

SAP B1中文培訓教材_SDK

公司内部培训资料,对开发工具 ,DIAPI, UIAPI,Add-ON有详细解说

CTFd构建和动态flag生成

环境:Ubuntu22.04 镜像参考来源: 阿里巴巴开源镜像站: https://developer.aliyun.com/mirror/ 然后保存退出:wq! 安装docker和docker-compose 下载和安装CTFd 然后访问ip地址就可以访问CTFd我们可以先拉取别人弄好的题目测试是否有动态flag CTFd配置 然后就能看到生成的环境 然后我们进入网站 管理员点击进入Admin Panel 管理界面: 点击whale: 然后去配置frp 在direct ip address 配置网站

w33553355的博客 1009

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

Portainer-CE(可视化工具)一键部署+中文版

Portainer 是一个开源的图形化管理工具,用于管理 Docker 容器、Swarm 集群和 Kubernetes 集群。它提供了一个用户友好的 Web 界面,可以帮助用户更轻松地管理和监控容器化环境。

Lzcsfg的博客 3017

从瀑布到流水线:DevOps 入门与 GitLab + Jenkins + Docker 落地实践

先看清软件开发生命周期(SDLC)的全貌,再对比瀑布模型与敏捷开发,随后进入持续集成与 CI/CD 的机制内核;最后落到实操——在 GitLab、Jenkins、Docker 组成的四机实验环境里,走完源码托管、自动化构建、镜像封装与远程部署,直到参数化构建与版本回滚。概念与命令并重,既是入门地图,也是操作手册。

年轻的时候很穷,经过我多年的努力,终于不再年轻。 232

Docker Compose:搭建本地多服务开发环境

从一个 Java API、PostgreSQL 和 Redis 开始,配置服务名、端口、环境变量、健康检查、数据卷和依赖关系。理解 Compose 文件如何被解析、项目如何隔离,以及哪些数据不能依赖“重建容器”保留,能够把个人开发环境整理成团队可复用的启动入口。

m0_62221377的博客 347

docker Harbor 单机部署手册

适用对象:只有一台服务器(或一台测试虚拟机),想把私有镜像仓库跑起来。环境约定:单台机器 192.168.28.100(CentOS 7),Docker CE 20.10.18 + docker compose v2 + Harbor v2.9.0(HTTP)。仓库地址 192.168.28.100,账号 admin / Harbor12345。预计耗时:装 Docker 10 分钟;装 Harbor 15 分钟 + 下载 750MB 安装包。

Whiteknight2026的博客 125

docker dockerfile镜像制作零基础实操手册

适用对象:没写过 Dockerfile、只会敲几条 docker 命令的运维新手。环境约定:构建机 192.168.28.100(已装 Docker 和 Harbor),私有仓库 192.168.28.100,项目 ruoyi-project,账号 admin / Harbor12345。

Whiteknight2026的博客 183

DevOps入门-下篇-GitLab-Jenkins-Docker实战

打开demo_web项目 → 菜单VCS→Git→Push(或Remotes)→字段值NameoriginURLURL 直接从 GitLab 项目首页复制(Clone →),别手打,容易多斜杠。实践对应概念解决的问题GitLab 托管 + 分支管理版本控制代码唯一可信来源Jenkins 拉取并自动构建持续集成不再手工打包,问题早发现Maven 统一构建可重复构建谁打出来的包都一样Publish over SSH 自动推送持续交付部署不再是手工活Dockerfile 进仓库。

weixin_45488455的博客 624

Docker 部署 WordPress+MySQL 高可用架构

点「安装 WordPress」

一直在努力学习的菜鸟 219

Docker更新SSL证书后容器仍读旧文件:单文件挂载与目录挂载排查

宿主机证书已替换,容器里却还是旧内容?区分单文件绑定挂载、目录内替换和服务进程加载,再检查Certbot live软链接的目标是否可达。用无网络隔离容器复现文件可见性,不把读到新文件当成HTTPS已生效。

谁呀!的博客 431

6.用DockerCompose接入MinIO保存算法文件和模型文件

本文介绍如何通过 Docker Compose 部署 MinIO 作为算法系统的对象存储,解决文件持久化、多副本共享与版本管理问题。强调对象内容(MinIO)与元数据(数据库)分离存储,规范 Key 设计与权限控制,采用预签名上传降低 API 压力,实现模型版本化管理与安全读写。结合 Compose 实现可复用、易维护的文件服务架构,为算法工程化落地提供可靠支撑。

像风一样自由的博客 589

如何在本地 Docker 容器中运行 Redis,并使用 Redis Insight 和 Redis CLI 进行管理

本文教程介绍了如何使用Docker本地运行Redis服务器与RedisInsight,实现数据的可视化管理。通过RedisInsight和RedisCLI,学习了对哈希、字符串、列表、集合、有序集、流及JSON等数据类型的增删改查(CRUD)操作,涵盖HSET、GET、SADD、XADD等核心命令,帮助开发者高效掌握Redis基本用法。

csdn_aspnet的专栏,请点击博客主页右上角三个点中的私信联系 268

从零开始用 Docker 部署 Hoppscotch:自建 API 调试平台的完整教程

Hoppscotch是一款开源、轻量、跨平台的API调试工具,支持HTTP、WebSocket、GraphQL等多协议,具备接口调试、文档生成、Mock模拟、团队协作等功能。基于Docker可快速部署,支持私有化自托管,资源占用低,完全离线使用,数据安全可控。相比Postman等工具,其开源免费、无功能限制,适合个人与企业研发全周期使用。

专注大数据、云计算、人工智能、机器人领域技术传播 282

Docker跑Java踩了个大坑,容器显示8核实际只用到1核

小坏分享真实踩坑:Docker中Java应用因未配置容器感知,导致8核机器仅用1核。根源是JVM误读CPU核心数,引发GC、线程池等性能严重缩水。解决方案:显式添加-XX:+UseContainerSupport -XX:ActiveProcessorCount=8,并合理设置堆内存(如3g/4g容器)、启用G1GC及优化参数。附生产级Dockerfile模板,确保性能不“偷跑”。

小坏说Java,一个专注Java微服务架构的实战,Java全栈教程,SpringBoot, SpringCloud微服务到分布式、高并发架构,大数据开发,运维实战,K8S、Docker容器为一体的教程,结合企业级内部的技术栈学习 386
上一篇: Dockerfile及其部署镜像步骤
下一篇: 存储概述和相关名词、Ceph集群搭建
chen_note
博客等级 码龄1年 251粉丝 83原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值