Docker&Shell:新手村“进阶攻略”!让你从小白变身“命令行小达人”![特殊字符]
各位正在“啃”技术的小伙伴们! 👋
是不是觉得 Docker 和 Shell 听起来高大上,但又有点不知从何下手? 没关系!今天,我将化身你的“技术向导”,带你轻松玩转 Docker 命令和 Shell 面试的那些事儿!
想象一下,你不再是那个只会“点点点”的小白,而是能够熟练运用命令行,让你的项目“跑起来”的酷炫大神! 😎
准备好迎接这场“技术冒险”了吗? 如果觉得内容对你有帮助,别忘了给我一个“鼓励”:点赞👍、关注➕、分享↗️!这对我来说就是最大的动力! 💪
🐳 第一站:Docker 命令速查表——你的“瑞士军刀”!
Docker 就像一个神奇的“集装箱”,能把你的应用和环境打包,走到哪儿都能“拎包入住”。想要玩转它,这些命令绝对是你手中的“瑞士军刀”!
📦 玩转镜像 (Image)
镜像,可以理解成一个“应用快照”或“安装包”,里面包含了运行你的应用所需的一切。
- 查看本地有哪些“安装包”? (
docker images)bash复制代码 收起
docker images复制
就像你在电脑里看有哪些软件安装包一样,这个命令会列出你本地所有下载过的镜像。
- “扔掉”不用的“安装包”? (
docker rmi)bash复制代码 收起
docker rmi <镜像ID或名称>复制
别把旧的、用不上的镜像留在那里占地方啦!用
rmi(remove image) 把它“清理”掉。记得要用镜像的 ID 或名称哦! - 从“官方仓库”下载“安装包”? (
docker pull)bash复制代码 收起
docker pull <镜像名>:<版本号>复制
比如
docker pull ubuntu:latest就是从 Docker Hub (官方仓库) 下载最新的 Ubuntu 镜像。 - 把自己做的“安装包”分享出去? (
docker push)bash复制代码 收起
docker push <你的Docker Hub用户名>/<镜像名>:<版本号>复制
这个命令有点像把你的软件上传到应用商店,让别人也能下载使用。
- “扫码登录”到官方仓库? (
docker login)bash复制代码 收起
docker login <仓库地址>复制
在上传或拉取一些私有仓库的镜像时,需要先登录验证身份。
🏃 玩转容器 (Container)
容器,就是由镜像“启动”起来的、正在运行的“集装箱”。
- 看看现在有哪些“集装箱”在跑? (
docker ps)bash复制代码 收起
docker ps # 想看所有,包括“停运”的?加上 -a! docker ps -a复制
ps就像“进程列表”,docker ps告诉你现在哪些容器在工作。加上-a(all) 就能看到所有容器,无论在运行还是停止状态。 - “叫醒”一个“停运”的集装箱? (
docker start)bash复制代码 收起
docker start <容器ID或名称>复制
之前停止的那个应用,想让它重新跑起来? 用
start命令! - “让”正在跑的集装箱“歇一会儿”? (
docker stop)bash复制代码 收起
docker stop <容器ID或名称>复制
像关机一样,让正在运行的容器优雅地停止。
- “叫醒”再“睡下”? (
docker restart)bash复制代码 收起
docker restart <容器ID或名称>复制
相当于先
stop再start,有时候会用它来“刷新”容器。 - 围观集装箱里的“日常”? (
docker logs)bash复制代码 收起
docker logs -f --tail=100 <容器ID或名称>复制
-f就像“实时直播”,--tail=100表示只看最新的 100 行日志。看看容器里跑的是否正常,有没有报错。 - 把集装箱里的“宝贝”搬出来? (
docker cp)bash复制代码 收起
docker cp <容器ID>:<容器内路径> <本地目录>复制
比如,想把容器里
/app/logs目录下的日志文件拷到你本地的~/my_logs文件夹里,就可以这样做。 - “钻进”集装箱里看看? (
docker exec)bash复制代码 收起
docker exec -it <容器ID> bash复制
-it是让你能交互式地进入容器。bash是进入容器后使用的命令行环境。就像“进入”一个独立的 Linux 系统一样!
📦➡️📦 镜像与容器的“打包”与“还原”
有时候,你需要把本地的镜像保存成文件,或者把别人的镜像文件加载到本地。
- 把“安装包”打包成“大礼包”? (
docker save)bash复制代码 收起
docker save -o <输出文件名.tar> <镜像名>:<版本号>复制
比如,把
tomcat:9.0镜像打包成tomcat.tar文件。 - 把“大礼包”解压,加载到本地? (
docker load)bash复制代码 收起
docker load -i <镜像文件名.tar>复制
把之前打包好的
tomcat.tar文件加载进来,就又有了tomcat:9.0镜像。
🚀 第一次“启动”一个应用(镜像)? (docker run)
这是启动容器最常用的命令!
bash复制代码 收起
# 最简单的启动方式,以守护进程模式运行 (-d)
docker run -d <镜像名>
# 举个栗子:启动一个 Nginx 容器
docker run -d -p 80:80 nginx
# -d: 后台运行 (detached)
# -p 80:80: 把本地的 80 端口映射到容器的 80 端口
复制
🧹 “清扫”不用的集装箱? (docker rm)
bash复制代码 收起
docker rm <容器ID或名称>
# 如果容器还在运行,想强制删除?加上 -f
docker rm -f <容器ID或名称>
复制
rm(remove) 就是删除容器。-f(force) 就是强制删除。
💡 第二站:Shell 面试题——“命令行沟通术”!
Shell,你可以理解成你和操作系统之间的一位“翻译官”,你用 Shell 命令和它“对话”。面试的时候,下面这些问题经常会出现!
- “What is Shell?” (Shell 是什么?)
小白的回答: “Shell 就是一个命令行工具,我用它来给电脑发指令,让它帮我做事。”
进阶的回答: “Shell 是一种命令行解释器,它是用户与操作系统之间的接口。它负责解析我们输入的命令,并把它们翻译成操作系统能理解的语言去执行。” - “Shell 有哪些类型?” (都有谁呀?)
常见的有:
- Bash (Bourne Again Shell): 最常用、最强大的 Shell,Linux 系统上默认的。
- sh (Bourne Shell): Bash 的前身,比较基础。
- csh (C Shell): 语法有点像 C 语言。
- 还有 Zsh、Ksh 等等。
- “如何在 Shell 脚本里拿到‘传家宝’(命令行参数)?”
在 Shell 脚本里,你可以这样拿到命令行的参数:
$1: 第一个参数$2: 第二个参数$#: 参数的个数
举个例子:
假如你写了个脚本myscript.sh,运行方式是./myscript.sh hello worldecho $1会输出helloecho $2会输出worldecho $#会输出2
- “Shell 脚本里,怎么创建‘独一无二’的东西?” (创建硬链接和软链接)
这题有点点深度,但也很重要!
- 硬链接 (Hard Link): 就像给一个文件起了另一个名字。它们指向同一个文件在磁盘上的实际位置。删除其中一个名字,文件还在。
bash复制代码 收起
ln <原文件> <新文件名>复制
- 软链接 (Symbolic Link / Soft Link): 就像一个“快捷方式”。它只是一个指向原文件的“指示”。删除原文件,这个“快捷方式”就失效了。
bash复制代码 收起
ln -s <原文件或目录> <新链接名>复制
- 硬链接 (Hard Link): 就像给一个文件起了另一个名字。它们指向同一个文件在磁盘上的实际位置。删除其中一个名字,文件还在。
🌟 总结:成为命令行“小达人”!
掌握了这些 Docker 命令和 Shell 面试知识,你就可以自信地在命令行里“遨游”了!
- Docker: 让你轻松打包、部署和管理你的应用,告别“环境配置噩梦”。
- Shell: 让你能和操作系统“顺畅沟通”,写出更高效的脚本,解决各种问题。
最重要的一点: 熟能生巧!多敲命令,多写脚本,遇到问题多查阅资料。你会发现,命令行并没有那么“可怕”,反而充满了乐趣!
还有什么 Docker 或 Shell 的“小秘密”想分享?或者有哪个命令让你“抓耳挠腮”?评论区等你!让我们一起在技术的海洋里乘风破浪! 👇
希望这篇博客文章既风趣幽默,又内容充实,能够帮助小白们更好地理解 Docker 命令和 Shell 面试的基础知识! 😊
更多推荐
所有评论(0)