debian 12 系统容器更换阿里源和用户权限

embedded/2025/2/24 10:01:31/

背景:镜像 emqx/emqx:5.8.4 用户为 emqx 无权限 系统为 debian 12
使用 root 用户创建容器登录即可

发现时间不对,换阿里源之后无法更新
更换上海时区

echo "Asia/Shanghai" > /etc/timezone
ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime

更换阿里源
该方式在阿里源只更新到 debian 11 的文档
www-data@emqx-75dc55f996-tnczp:/opt/emqx$ cat /etc/apt/sources.list

deb https://mirrors.aliyun.com/debian/ bookworm main non-free non-free-firmware contrib
deb-src https://mirrors.aliyun.com/debian/ bookworm main non-free non-free-firmware contrib
deb https://mirrors.aliyun.com/debian-security/ bookworm-security main
deb-src https://mirrors.aliyun.com/debian-security/ bookworm-security main
deb https://mirrors.aliyun.com/debian/ bookworm-updates main non-free non-free-firmware contrib
deb-src https://mirrors.aliyun.com/debian/ bookworm-updates main non-free non-free-firmware contrib
deb https://mirrors.aliyun.com/debian/ bookworm-backports main non-free non-free-firmware contrib
deb-src https://mirrors.aliyun.com/debian/ bookworm-backports main non-free non-free-firmware contrib

apt update 即可,所花费时间较久
完成之后安装测试

apt install -y vim curl net-tools

该镜像的项目存放在 /opt/emqx 下
如需更换权限如下

chown -R www-data:www-data /opt/emqx
vim /etc/passwd 将33 uid 的www-data 用户改成 /bin/bash 即可

注意其下的 /opt/emqx/data 和 /opt/emqx/log 是volume
我们在创建容器的时候还是会改变权限为 emqx 或 root
所以需要创建的时候先复制目录到宿主机,更改宿主机目录为 www-data 权限
然后在进行挂载进去持久化

docker cp emqx:/opt/emqx/data .
docker cp emqx:/opt/emqx/log .
chmod www-data:www-data -R data
chmod www-data:www-data -R log

届时创建容器才能正常写入内容成功启动服务
换成Dockerfile如下 减少了阿里源配置

FROM emqx/emqx:5.8.4USER rootRUN date \
&& echo "Asia/Shanghai" > /etc/timezone \
&& ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime \
&& date \
&& echo "deb https://mirrors.aliyun.com/debian/ bookworm main non-free non-free-firmware contrib" > /etc/apt/sources.list \
&& echo "deb https://mirrors.aliyun.com/debian-security/ bookworm-security main" >> /etc/apt/sources.list \
&& echo "deb https://mirrors.aliyun.com/debian/ bookworm-updates main non-free non-free-firmware contrib" >> /etc/apt/sources.list \
&& apt update
RUN apt install -y net-tools \
&& chown -R www-data:www-data /opt/emqxUSER www-data

注意这里构建不一定成功,因为阿里源可能还是会显示超时更新源不了
可手动启动镜像进去执行对应命令,通过 docker commit emqx emqx:test01 保存即可
启动镜像如下

docker run -d \--name emqx \--cap-add=SYS_PTRACE \--security-opt seccomp=unconfined \-p 1883:1883 \-p 8083:8083 \-p 8084:8084 \-p 8883:8883 \-p 18083:18083 \-v /var/www/test01/emqx/data:/opt/emqx/data \-v /var/www/test01/emqx/log:/opt/emqx/log \emqx:test01

http://www.ppmy.cn/embedded/164802.html

相关文章

设计模式-组合模式、模板模式

组合模式 定义 将对象组合成树形结构以表示"部分-整体"的层次结构,组合模式使得用户对单个对象和组合对象的使用具有一致性; 组合模式实现的最关键的地方是-简单对象和复合对象必须实现相同的接口。这就是组合模式能够将组合对象和简单对象进…

【NLP算法面经】本科双非,头条+腾讯 NLP 详细面经(★附面题整理★)

【NLP算法面经】本科双非,头条腾讯 NLP 详细面经(★附面题整理★) 🌟 嗨,你好,我是 青松 ! 🌈 自小刺头深草里,而今渐觉出蓬蒿。 NLP Github 项目推荐: 【AI…

kubernetes proxy中 发现长时间运行的tcp连接 如何处理invalid包 如果更优雅的解决需要修改哪个参数?

在 Kubernetes 中,kube-proxy 是一个关键组件,用于管理服务的虚拟 IP 和负载均衡流量。处理长时间运行的 TCP 连接时,如果出现无效(invalid)包,kube-proxy 需要正确处理这些包,以防止连接中断或…

Vue框架中Ajax请求的实现方式:使用axios库或fetch API

在Vue框架中,Ajax请求是前后端交互的重要手段,用于异步获取数据。Vue本身不包括Ajax功能,但可以通过引入外部库来实现。常用的有 axios库和原生的 fetch API。下面将详细介绍这两种实现方式,以及它们的使用示例。 使用Axios库 A…

day56 第十一章:图论part06

108.冗余连接 注意init初始化 改进&#xff1a; 其实只有一条边冗余&#xff0c;改为&#xff0c;如果两条边在同一个集合里&#xff0c;就输出&#xff0c;不然加入。 #include <iostream> #include <vector> using namespace std;int n 1005; vector<int>…

DeepSeek写俄罗斯方块手机小游戏

DeepSeek写俄罗斯方块手机小游戏 提问 根据提的要求&#xff0c;让DeepSeek整理的需求&#xff0c;进行提问&#xff0c;内容如下&#xff1a; 请生成一个包含以下功能的可运行移动端俄罗斯方块H5文件&#xff1a; 核心功能要求 原生JavaScript实现&#xff0c;适配手机屏幕 …

在windows下安装windows+Ubuntu16.04双系统(下)

这篇文章的内容主要来源于这篇文章&#xff0c;为正式安装windowsUbuntu16.04双系统部分。在正式安装前&#xff0c;若还没有进行前期准备工作&#xff08;1.分区2.制作启动u盘&#xff09;&#xff0c;见《在windows下安装windowsUbuntu16.04双系统(上)》 二、正式安装Ubuntu …

C++ 模板初阶

目录 一、前言 二、正文 1、函数模板 1.1函数模板概念 1.2函数模板格式 1.3函数模板的原理 1.4函数模板的实例化 1.5模板参数的匹配原则 2.类模板 2.1类模板的定义格式 2.2类模板函数化 3.template与typedef的区别 三、结言 一、前言 据说C创建初期&#xff0c;…