01_虚拟机中间件部署_root 用户安装 docker 容器,配置非root用户权限

01_中间件部署_root 用户安装 docker 容器

目录

虚拟机理解

1、用户选择

复制代码
在虚拟机中,使用普通用户还是root用户进行中间件部署?
----选择普通用户安装,我这里的【ljh】作为业务用户。
	用户						用途
	root				系统管理、安装软件	
	ljh					NFTurbo 项目 + 所有中间件
总结:
-业务相关的,全部归于业务用户
-安装基础环境、修改系统级配置、给 ljh 目录授权 这些操作,就需要切换root用户来设置。

2、运行环境分析

2-1:系统基本信息
复制代码
Ubuntu 版本、内核版本、发行版信息
lsb_release -a
uname -a
cat /etc/os-release
2-2:创建文件夹
复制代码
确认当前用户:
whoami
输出:ljh

确认 HOME 目录:
pwd
输出:/home/ljh

新建统一存放中间件的文件夹
mkdir -p ~/nfturbo/middleware

pwd:
/home/ljh/nfturbo/middleware
2-3:切换用户
复制代码
sudo -i  输入密码 , 进入root用户
exit 退出,返回到 ljh 用户
也可以 su - ljh 切换回 ljh 用户
2-4:查看当前虚拟机有哪些用户
复制代码
cut -d: -f1 /etc/passwd
复制代码
# 显示的是 谁登录系统
who

# 查看的是当前终端用户,已经是 root
whoami

理解:我一开登录虚拟机是ljh这个用户号,然后才用 sudo -i 切换成root用户的。

root 用户安装 docker 容器

ubuntu安装 docker

安装前理解

docker 在root安装还是普通用户安装?

用 root 安装,普通用户 ljh 使用

安装 Docker 要改系统配置 → 只有 root 能做

日常用 Docker(跑容器) → 普通用户更安全

安装docker命令

java 复制代码
执行以下命令安装 Docker 社区版本
如果您使用的是非阿里云服务器,请将 http://mirrors.cloud.aliyuncs.com 替换为 https://mirrors.aliyun.com
安装 Docker 命令,在任意路径都能执行,不用切换目录。
后续用挂载数据卷时才需要指定具体路径


# 1.更新包管理工具,确保最新的软件源列表----------------------
sudo apt-get update

# 添加Docker软件包源 -- 这里我是在虚拟机的ubuntu系统安装的,所以需要改成 https://mirrors.aliyun.com----------------------

# 2. 安装依赖工具(支持 https 源和其他必要组件)
sudo apt-get -y install apt-transport-https ca-certificates curl software-properties-common

# 3. 添加阿里云 Docker 官方 GPG 密钥,保证软件包安全性
sudo curl -fsSL https://mirrors.aliyun.com/docker-ce/linux/ubuntu/gpg | sudo apt-key add -

# 4. 添加阿里云的 Docker 软件源(这里会自动根据你的系统架构和版本选择)
sudo add-apt-repository -y "deb [arch=$(dpkg --print-architecture)] https://mirrors.aliyun.com/docker-ce/linux/ubuntu $(lsb_release -cs) stable"

# 安装Docker社区版本,容器运行时containerd.io,以及Docker构建和Compose插件----------------------
sudo apt-get -y install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin

# 启动 Docker----------------------
sudo systemctl start docker

# 设置Docker守护进程在系统启动时自动启动,就是开机自启动----------------------
sudo systemctl enable docker


通过查看Docker版本命令,验证Docker是否安装成功。 
sudo docker -v

执行以下命令,查看Docker是否启动。 
sudo systemctl status docker

Docker配置非root用户权限,将当前用户添加到docker用户组

查看权限
复制代码
# 查看 docker 组成员
getent group docker
如图可以看出,此时的docker 只有root能用,ljh这个用户还没有被加入docker组中
复制代码
# 查看当前用户ljh属于哪些用户组
groups 
命令
复制代码
# 让 ljh 可以用 docker(不用 sudo),将当前用户添加到docker用户组
sudo usermod -aG docker ljh

# 执行newgrp docker命令生效后。直接使用docker命令,无需添加sudo
newgrp docker

如图,可以看到ljh用户也能使用docker了

配置镜像源

java 复制代码
vi /etc/docker/daemon.json  

daemon.json 是 Docker 的守护进程配置文件,默认情况下这个【文件不存在】,需要我自己来创建
如果文件不存在,vi 会新建一个空文件,然后就可以在里面写配置内容

{
  "registry-mirrors": [
    "https://docker.anyhub.us.kg/",
    "https://hub.uuuadc.top/",
    "https://dockerhub.jobcher.com/",
    "https://dockerhub.icu/",
    "https://docker.ckyl.me/",
    "https://docker.awsl9527.cn/",
    "https://q7ta64ip.mirror.aliyuncs.com",
    "https://hx983jf6.mirror.aliyuncs.com",
    "https://docker.mirrors.ustc.edu.cn",
    "https://hub-mirror.c.163.com",
    "https://docker.m.daocloud.io",
    "https://mirror.baidubce.com",
    "https://docker.nju.edu.cn",
    "https://jockerhub.com",
    "https://dockerhub.azk8s.cn",
    "https://dockerproxy.com",
    "https://mirror.baidubce.com",
    "https://docker.nju.edu.cn",
    "https://mirror.iscas.ac.cn",
    "https://dockerpull.org",
    "https://docker.1panel.dev",
    "https://docker.fxxk.dedyn.io",
    "https://docker.xn--6oq72ry9d5zx.cn",
    "https://docker.zhai.cm",
    "https://docker.5z5f.com",
    "https://a.ussh.net",
    "https://docker.cloudlayer.icu",
    "https://hub.littlediary.cn",
    "https://hub.crdz.gq",
    "https://docker.unsee.tech",
    "https://docker.kejilion.pro",
    "https://registry.dockermirror.com",
    "https://hub.rat.dev",
    "https://dhub.kubesre.xyz",
    "https://docker.nastool.de",
    "https://docker.udayun.com",
    "https://docker.rainbond.cc",
    "https://hub.geekery.cn",
    "https://docker.1panelproxy.com",
    "https://atomhub.openatom.cn",
    "https://docker.m.daocloud.io"
  ]
}

w(write 保存) + q(quit 退出)

使配置生效:
sudo systemctl daemon-reload

重启Docker:
sudo systemctl restart docker
相关推荐
JH_Kong5 小时前
解决 WSL 中 Docker 权限问题:从踩坑到完整修复
docker·容器
忆~遂愿6 小时前
GE 引擎与算子版本控制:确保前向兼容性与图重写策略的稳定性
大数据·开发语言·docker
陈桴浮海7 小时前
Kustomize实战:从0到1实现K8s多环境配置管理与资源部署
云原生·容器·kubernetes
70asunflower9 小时前
Emulation,Simulation,Virtualization,Imitation 的区别?
linux·docker
ShiLiu_mtx10 小时前
k8s - 7
云原生·容器·kubernetes
春日见10 小时前
车辆动力学:前后轮车轴
java·开发语言·驱动开发·docker·计算机外设
xuhe210 小时前
[全流程详细教程]Docker部署ClawBot, 使用GLM4.7, 接入TG Bot实现私人助理. 解决Docker Openclaw Permission Denied问题
linux·docker·ai·github·tldr
星火s漫天11 小时前
第一篇: 使用Docker部署flask项目(Flask + DB 容器化)
数据库·docker·flask
MonkeyKing_sunyuhua13 小时前
docker compose up -d --build 完全使用新代码打包的方法
docker·容器·eureka