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
相关推荐
开心码农1号18 分钟前
k8s中service和ingress的区别和使用
云原生·容器·kubernetes
L16247633 分钟前
Kubernetes 完整学习手册(1 主多从 + 纯 YAML 部署 + 访问原理)
学习·容器·kubernetes
sbjdhjd4 小时前
Docker | 核心概念科普 + 保姆级部署
linux·运维·服务器·docker·云原生·面试·eureka
摇滚侠4 小时前
Vmvare 虚拟机安装 Linux CentOS 7 操作系统 一键安装 Docker 1Panel 一键安装 MySQL Redis OpenClaw
linux·docker·centos
comedate4 小时前
【OpenClaw】 Open-WebUI Docker 部署连接本地 Ollama 技术文档
docker·ollama·openwebui·openclaw
川trans5 小时前
基于 Docker & K8s 的 MySQL 容器化部署与应用关联实践
mysql·docker·kubernetes
BullSmall5 小时前
Prometheus 可以监控docker 部署的Nginx 吗?
nginx·docker·prometheus
阿沁QWQ5 小时前
Docker 核心技术和实现原理
运维·docker·容器
Tom Ma.5 小时前
Docker 安装 OpenClaw
运维·docker·容器
Meme Buoy6 小时前
13.6其他架构评估方法-中间件
中间件·架构