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

背景:镜像 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.4

USER root

RUN 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/emqx

USER 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
相关推荐
Rock Chin69715 分钟前
把 n8n 接进 Slack:在对话里 @机器人 触发自动化工作流
运维·机器人·自动化
浩浩测试一下1 小时前
Linux 底层知识点 1
linux·运维·服务器
Eloudy1 小时前
全文 - IMEX 第01节 -IMEX overview
运维·服务器·网络
物联网软硬件开发-轨物科技2 小时前
【技术白皮书】光伏清检一体化机器人系统解决方案技术白皮书
大数据·运维·网络·人工智能·机器人
海宇数据2 小时前
零信任架构实战:基于海宇网上踪迹欺诈行为识别构建自动化信贷资信评估网关
运维·人工智能·架构·自动化
忆挽篱笙歌3 小时前
环境变量,本地变量
linux·运维·服务器
码间留白4 小时前
手把手把 GitHub 推上阿里云 ECS:Actions CI/CD 全链路避坑实录(折腾好几天,到 2 分钟见绿)
运维·阿里云·ci/cd·docker·devops·github actions
吹什么轩5 小时前
linux系统复习:僵尸进程与孤儿进程
linux·运维·php
老李IT笔记6 小时前
连不上不一定是网不好:新系统不认的服务端配置卡在哪一档
运维·服务器·网络
小此方6 小时前
Linux网络(二十八):从NAT转换到正反向代理:图解内网通信、NAPT端口映射
linux·运维·网络