尧图网站建设 尧图网络
  • 首页
  • 关于我们
  • 服务项目
  • 案例展示
  • 建站流程
  • 资讯中心
  • 联系我们
首页/资讯中心/详情

【记录】CentOS7(Linux)通过Docker部署Ethercalc(含redis)

【记录】CentOS7(Linux)通过Docker部署Ethercalc(含redis)
📅 发布时间:2026/7/6 21:54:55

【记录】在Linux-CentOS7通过Docker部署Ethercalc

  • Docker重新安装
    • 卸载容器
    • 安装容器
    • 修改容器配置
  • 安装Ethercalc
    • 用docker安装Ethercalc
    • 进入容器安装redis

Docker重新安装

因为原先版本的容器在调整配置文件后,重启会报错,经排查可能是版本不兼容的问题,所以对旧版本的docker进行卸载,重新安装最新版。
报错信息:

Jobfordocker.service failed because the control process exited with error code. See"systemctl status docker.service"and"journalctl -xe"fordetails.

卸载容器

1、查看安装过的包:

yum list installed|grep docker

发现本机安装过的旧版本:docker.x86_64,docker-client.x86_64,docker-common.x86_64
2、删除安装的docker相关的包

yum-yremove docker.x86_64 yum-yremove docker-client.x86_64 yum-yremove docker-common.x86_64

安装容器

1、确认CentOS系统版本,安装Docker需内核版本官方要求至少 3.8 以上,建议 3.10 以上

uname-r

2、把yum包更新到最新

yum update

3、安装需要的软件包,yum-util 提供yum-config-manager功能

sudo yum install-y yum-utils device-mapper-persistent-datalvm2

4、设置yum的源

sudo yum-config-manager--add-repohttps://download.docker.com/linux/centos/docker-ce.repo

5、查看核实仓库中docker的版本,我们用的社区版(CE),为免费版本;还有一个版本:企业版(EE),为收费版本。

yum list docker-ce--showduplicates|sort-r

6、安装docker

sudoyuminstalldocker-ce

7、启动docker,设置开机启动

sudosystemctl startdockersudosystemctlenabledocker

8、查看版本

dockerversion

修改容器配置

1、查看当前容器数据路径

sudodockerinfo

一般默认是在/var/lib/docker,这样后期会因为容器日志占用太大内存,导致磁盘爆满,进而影响服务器的正常使用,所以我们要修改容器数据的路径,并控制日志的数量和大小
2、修改容器配置

sudovi/etc/docker/daemon.json

然后配置如下内容:

{"data-root":"/data/docker/","log-driver":"json-file","log-opts":{"max-size":"200m","max-file":"3"},"registry-mirrors":["https://registry.docker-cn.com"]}

第一行是修改数据路径,我这边修改为/data/docker,
第二、三行是说明日志类型并限制容器日志的大小和数量,我这边是限制单个日志文件大小为200M,数量个数为3个,即每个容器日志最多600M
第四行是指定容器的源
3、加载配置,并重启容器

systemctl daemon-reload systemctl restartdocker

4、再次确认是否生效

安装Ethercalc

用docker安装Ethercalc

1、搜索镜像

sudodockersearch ethercalc


2、拉取好评最多的镜像

sudodockerpull audreyt/ethercalc

共1.04G
3、创建数据卷

sudodockervolume create ethercalc_data_20221212


创建数据卷用于后续容器挂载,方便后续数据的迁移等
4、启动容器

sudodockerrun-p9000:8000-uroot--privileged=true--restartalways--cpus2-itd--name20221212_ethercalc-vethercalc_data_20221212:/dump/ audreyt/ethercalc

-p 9000:8000 代表将容器内的8000端口映射到宿主机的9000端口,这边需要说明的是,如何知道容器内的Ethercalc服务,采用的是8000端口?同样的,如何知道容器内的数据是在哪个路径?
因为当时在官方文档没找到相关说明,我这边采用的是先试运行一个,查看运行的信息,确认端口等信息

sudodockerrun-uroot--privileged=true--restartalways-itaudreyt/ethercalc

可以得知,端口号为8000,由于启用redis失败,存储路径回退到/dump/,稳妥起见,我们进入该目录,先看看里面有什么,然后再建一个新的线上表,模拟一些数据后,发现确实多了三个文件,cat文件后里面的内容和模拟数据一致,至此确定文件存储目录。

-uroot:是给了 root 用户身份,但并没有真正的 root 权限
–privileged:真正让当前用户有了 root 权限
否则容器在运行的过程中,可能存在因为权限问题,无法正常创建及读写

–restart always,是为了保证该容器在docker重启后,可以自动启动

–cpus 2,是为了限制该容器可以调动cpu的数量,避免占用cpu太多,影响服务器其它应用。

-v ethercalc_data_20221212:/dump/,这边采用的是具名挂载。
数据卷挂载方式有三种:
-v 容器内路径 #匿名挂载(数据卷名称随机生成)

-v 卷名:容器内路径 #具名挂载(数据卷名称是自行取的)

-v /宿主机路径:容器内路径 #指定路径挂载(数据卷位置是指定宿主机的某个路径)

–name 20221212_ethercalc,对容器进行命名,若没有指定,则名字随机生成

进入容器安装redis

这一款镜像没有带有redis,我们可以自己再加上。有redis加持之后,线上表的服务能力会更强、更稳定。(这个也是之前踩的一个大坑)
1、查询容器ID

sudodockerps


2、进入容器

sudodockerexec-it容器ID /bin/bash

3、下载redis

cd/usr/local#进入指定路径mkdirredis#创建文件wgethttp://download.redis.io/releases/redis-5.0.3.tar.gz#下载安装包tar-zxvfredis-5.0.3.tar.gz#解压缩包cdredis-5.0.3#进入解压文件make#编译cdsrc#进入src文件夹makeinstallPREFIX=/usr/local/redis#指定安装位置进行安装mkdir/usr/local/redis/etc#创建文件夹

4、修改redis配置
此时默认的配置文件路径为:/usr/local/redis/redis-5.0.3/redis.conf
正常情况下,我们可以通过vi/vim对文件直接进行修改
然而发现在容器中无法使用vi,也无法使用yum。所以干脆复制到宿主机进行修改,然后复制回去。
需要修改的配置:
都在前200行内
将这行注释掉,表示可以远程访问

这个改为yes 表明需要在后台运行

修改完,将其复制到容器内

sudodockercp/usr/local/redis/etc/redis.conf 20221212_ethercalc:/usr/local/redis/etc/redis.conf

容器和宿主机文件交互:
从容器内复制到宿主机

sudo cp 容器名:容器内文件路径 宿主机文件路径

从宿主机复制到容器内

sudo cp 宿主机文件路径 容器名:容器内文件路径

5、设置redis开机自启动
和上一步一样,我们可以先在宿主机做好修改,再复制进去
创建一个文件名为:rc.local,在里面添加如下命令:

/usr/local/redis/bin/redis-server /usr/local/redis/etc/redis.conf

在复制到容器内之前,先要在容器内,创建指定文件夹

mkdir/etc/rc.d

然后在宿主机进行复制操作

sudodockercp/etc/rc.d/rc.local 20221212_ethercalc:/etc/rc.d/rc.local

6、启动redis

/usr/local/redis/bin/redis-server /usr/local/redis/etc/redis.conf

7、重启Ethercalc
先查询原来任务的进程id
杀死进程

kill -9 进程号

正常情况下,需要再执行启动Ethercalc

node/usr/local/bin/ethercalc

但容器内应已设置自动启动,Ethercalc已经新启动一个进程了

8、退出容器
CTRL+Q+P(退出不关闭)

相关新闻

  • Playwright自动化测试:利用storageState实现登录态持久化
  • Kali Linux渗透测试实战:从信息收集到后渗透的完整攻防指南
  • Linux MBR与GRUB引导故障深度对比:从原理到修复的5个关键决策点

最新新闻

  • 宋维刚词霸天下38000词思维导图:基于COCA词频的10级优先级划分与38907词覆盖分析
  • MAX9744与STM32L162ZE在嵌入式音频系统中的应用与优化
  • 计算机毕业设计之基于Yolov8的安全帽佩戴目标检测系统
  • DeepSeek API调用指南:实现自动化代码生成与集成
  • MySQL 8.0 运算符深度对比:!= 与 <> 的 3 大性能差异与 NULL 处理陷阱
  • PyTorch 2.x Tensor与NumPy互转:3种方法的内存共享与梯度陷阱详解

日新闻

  • AI智能体安全防护框架AgentGuard:从原理到实战部署指南
  • KMX63与PIC18F26K40硬件组合及低功耗设计实践
  • 基于YOLO13改进的门体检测模型:C3k2模块与PoolingFormer技术解析

周新闻

  • 基于YOLOv12的番茄成熟度智能检测系统开发
  • 终极RimWorld模组管理指南:用RimSort告别模组冲突烦恼
  • AI Agent框架开发:从理论到实践的完整指南

月新闻

  • 2026年6月公司网站搭建最新热门渠道测评:四大低成本/零代码平台对比+避坑
  • 【Linux】Linux arm 编译QT程序,出现expected “}“报错
  • 【MATLAB例程】四基站二维AOA定位与距离辅助增强对比仿真。基于角度观测和测距修正的固定目标平面定位精度分析

关于尧图

  • 公司简介
  • 团队介绍
  • 企业文化
  • 荣誉资质

服务项目

  • 定制开发
  • 电商建站
  • UI 设计
  • 运维服务

快速链接

  • 案例展示
  • 建站流程
  • 常见问题
  • 资讯中心

联系方式

  • 📍北京市朝阳区互联网产业园 A 座 10 层
  • 📞400-888-8888
  • ✉️contact@rkmt.cn
  • 🕐周一至周日 9:00-21:00

© 2024 北京尧图网络科技有限公司 版权所有 | 京 ICP 备 XXXXXXXX 号