Linux + Docker 考核总结及复盘反思
·
linux阶段考核作品
如何同时添加多个用户:使用 for 循环
for user in user1 user2 user3 user4; do
sudo useradd -m -s /bin/bash $user
echo "设置 $user 的密码:"
sudo passwd $user
done
修改用户权限的方法
1. 使用 chmod 命令(最常用)
数字表示法(八进制)
bash
# 基本格式
chmod [选项] 数字模式 文件/目录
# 常用权限示例
chmod 755 filename # rwxr-xr-x
chmod 644 filename # rw-r--r--
chmod 600 filename # rw-------
chmod 777 filename # rwxrwxrwx
chmod 750 filename # rwxr-x---
# 递归修改目录及其内容
chmod -R 755 directory/
符号表示法
bash
# 基本格式:who operator permission
chmod [ugoa][+-=][rwx] 文件/目录
# 添加权限
chmod u+x filename # 给所有者添加执行权限
chmod g+w filename # 给所属组添加写权限
chmod o+r filename # 给其他用户添加读权限
chmod a+x filename # 给所有用户添加执行权限
# 移除权限
chmod u-w filename # 移除所有者的写权限
chmod g-x filename # 移除所属组的执行权限
chmod o-r filename # 移除其他用户的读权限
# 设置精确权限
chmod u=rwx,g=rx,o= filename # rwxr-x---
chmod a=rw filename # 所有用户都是读写权限
基础部分
- su、su -、sudo之间的区别
- su基本用法:
# 切换到root用户(需要root密码)
su
# 切换到其他用户(需要目标用户密码)
su username
特点:
- 不加载目标用户的环境变量
- 保持当前工作目录不变
- 继承当前shell的环境变量
- 需要知道目标用户的密码
2. su - 基本用法:
# 切换到root用户并加载环境
su -
# 切换到其他用户并加载环境
su - usernam
特点:
- 完全加载目标用户的环境变量
- 切换到目标用户的家目录
- 创建一个新的登录会话
- 需要知道目标用户的密码
3. sudo 基本用法:
# 以root权限执行单条命令
sudo command
# 以其他用户权限执行命令
sudo -u username command
# 启动root shell(不推荐经常使用)
sudo -i
sudo -s
特点:
- 使用当前的密码,不是root密码
- 细粒度的权限控制(通过/etc/sudoers配置)
- 命令级权限提升
- 记录审计日志
- 软链接和硬链接的创建
创建命令:
- 硬链接:
ln source target - 软链接:
ln -s source target
关键区别:
- 硬链接共享 inode,删除源文件不影响链接
- 软链接是独立文件,存储目标路径,源文件删除后链接失效
- 硬链接不能跨文件系统,不能链接目录
- 软链接可以跨文件系统,可以链接目录
- docker save 和 load 的区别
. docker save - 导出镜像
基本语法
bash
docker save [选项] 镜像名[:标签] > 输出文件.tar
# 或
docker save [选项] -o 输出文件.tar 镜像名[:标签]
常用选项
-o, --output:指定输出文件- 多个镜像可以一起导出
使用示例
导出单个镜像
bash
# 方法1:使用重定向
docker save ubuntu:20.04 > ubuntu-20.04.tar
# 方法2:使用-o参数
docker save -o ubuntu-20.04.tar ubuntu:20.04
# 导出到指定目录
docker save -o /backup/nginx-latest.tar nginx:latest
导出多个镜像到一个文件
bash
# 导出多个镜像
docker save -o my-images.tar ubuntu:20.04 nginx:latest redis:alpine
# 或者使用镜像ID
docker save -o all-images.tar a1b2c3d4 e5f6g7h8 i9j0k1l2
导出所有镜像
bash
# 导出所有镜像到一个文件
docker save -o all-docker-images.tar $(docker images -q)
# 或者逐个导出
docker images --format "{{.Repository}}:{{.Tag}}" | xargs -I {} docker save -o {}.tar {}
验证导出文件
bash
# 查看tar文件内容
tar -tf ubuntu-20.04.tar
# 检查文件大小
ls -lh ubuntu-20.04.tar
# 验证文件完整性
file ubuntu-20.04.tar
2. docker load - 导入镜像
基本语法
bash
docker load < 输入文件.tar
# 或
docker load -i 输入文件.tar
常用选项
-i, --input:指定输入文件-q, --quiet:安静模式,不输出详细信息
使用示例
导入镜像
bash
# 方法1:使用重定向
docker load < ubuntu-20.04.tar
# 方法2:使用-i参数
docker load -i ubuntu-20.04.tar
# 安静模式导入
docker load -q -i nginx-latest.tar
从指定目录导入
bash
# 导入指定文件
docker load -i /backup/ubuntu-20.04.tar
# 导入多个文件
for file in /backup/*.tar; do
echo "导入: $file"
docker load -i "$file"
done
- 匿名挂载和具名挂载
1. 匿名挂载 (Anonymous Volumes)
定义
- 不指定名称的挂载
- 由 Docker 自动生成随机名称
- 难以管理和重复使用
创建匿名挂载
bash
# 语法:-v /容器内路径
docker run -v /container/path image_name
# 示例:匿名挂载
docker run -d --name nginx1 -v /usr/share/nginx/html nginx:latest
# 查看生成的匿名卷
docker volume ls
输出示例:
text
DRIVER VOLUME NAME
local 1a2b3c4d5e6f7890abcdef1234567890...
2. 具名挂载 (Named Volumes)
定义
- 指定具体名称的挂载
- 易于识别和管理
- 可以重复使用和共享
创建具名挂载
bash
# 语法:-v 卷名:/容器内路径
docker run -v volume_name:/container/path image_name
# 示例:具名挂载
docker run -d --name nginx2 -v nginx_html:/usr/share/nginx/html nginx:latest
# 查看具名卷
docker volume ls
输出示例:
text
DRIVER VOLUME NAME
local nginx_html
更多推荐


所有评论(0)