每天半小时,轻松学Docker第一篇:Debian 12 无痛安装与初体验 - 详解

news/2025/10/1 10:36:00/文章来源:https://www.cnblogs.com/yxysuanfa/p/19122211

想学Docker,但没有多余的服务器?云主机又贵又麻烦?别让环境和成本成为你学习的拦路虎!本系列将带你用最经济、最灵活的方式——本地虚拟机,从零开始,每天只需投入半小时,轻松开启你的Docker之旅。第一天,我们将亲手搭建坚实的学习地基:在VMware中安装Debian 12。

一、为什么选择“虚拟机+Debian”这条无忧之路?

  • 打消顾虑: 明确点出读者可能面临的困境——无物理服务器、云服务成本高、怕搞坏本地环境。

  • 我们的解决方案:

    • 【零成本】 VMware + 开源的Debian系统 = 零资金投入。

    • 【绝对安全】 一个隔离的沙箱环境,随便折腾,宿主机丝毫无损。

    • 【高度还原】 虚拟机环境与真实服务器高度相似,学到的技能无缝迁移。

    • 【灵活便捷】 随时创建快照,实验失败一键恢复,学习效率倍增。

二、准备工作

1、硬件要求

硬件

规格

CPUIntel Core i7-8850U 4核8线程
内存16GB

2、软件要求

软件

版本

VMware Workstation Pro17.6.1 build-24319023
Xshell8
debian-12.8.0-amd64-netinst.iso12.8.0

三、核心实战——手把手安装Debian 12

1、安装VMware

  • 通过VMware官网下载

2、创建虚拟机

在新建虚拟机过程中,出于简化篇幅的目的,对于各步骤中保持默认选项的,不在本文档中给出,直接"下一步"即可。

  • 启动并进入新建虚拟机流程:启动 VMware Workstation Pro,选择菜单 “文件 -> 新建虚拟机”。

  • 选择操作系统安装方式:在 “安装客户机操作系统” 页面,选择 “稍后安装操作系统(S)”。

  • 指定客户机操作系统版本:在 “选择客户机操作系统” 页面,选择 “Debian 12.x 64 位”。

  • 命名虚拟机:在 “命名虚拟机” 页面,输入虚拟机名称 。

  • 设置磁盘容量:在 “指定磁盘容量” 页面,设置 “最大磁盘大小(GB)” 为 36.0。

  • 完成创建并进入编辑设置:后续步骤均采用 VMware 默认配置即可。创建完成后,库中会显示创建的虚拟机,点击 “编辑虚拟机设置”。

  • 配置 ISO 映像文件:在编辑设置界面,设置虚拟机的 ISO 映像文件,通过 “浏览” 按钮选择之前下载好的 “debian-12.8.0-amd64-netinst.iso” 文件。

  • 禁用侧通道缓解:为虚拟机设置禁用侧通道缓解,在 “选项” 页面,将 “高级 -> 为启用了 Hyper-V 的主机禁用侧通道缓解 (S)” 置为开启状态。

3、Debian系统安装

在安装系统过程中,出于简化篇幅的目的,对于各步骤中保持默认选项的,不在本文档中给出,直接回车或点击 Continue 即可。

  • 点击开启此虚拟机,启动之前创建的虚拟机 :

  • 在开机引导菜单中,选择第一项 Graphical Install。

  • 在 Set up users and passwords 页面,为便于学习与记忆,设置 Root password 为 123456:​

  • 在 Set up users and passwords 页面,创建新用户,设置用户名全称为 rz:​
  • 在 Set up users and passwords 页面,为之前创建的用户 rz 设置密码 123456:​
  • 在 Partition disks 页面,对是否将分区方案写入磁盘,选择 Yes:​

  • 在 Configure the package manager 页面,Debian 的安装源国家选择 China:​

  • 在 Configure the package manager 页面,Debian 安装源选择为清华安装源: 用户也可以根据实际情况选择其他安装源。​

  • 在 Software selection 页面,设置安装的软件,本系统采用最小化安装,因此仅需要 SSH server 与 standard system utilities 两个软件包即可:​

  • 在 Install the GRUB boot loader 页面,设置 boot loader 安装位置为 /dev/sda:​

  • 安装过程的最后,在 Finish the installation 页面,点击 Continue,重启系统:​
  • 重启系统后,在系统引导页面,默认第一项即可,直接回车

  • 将虚拟机 Debian12.08_Base 关机,选择菜单虚拟机 (M)-> 电源 (P)-> 关闭客户机 (D):​

  • 至此,系统安装完成。点击菜单虚拟机 (M)-> 快照 (N)-> 拍摄快照 (T):​

  • 拍摄快照之后,在虚拟机详细信息的快照部分,则显示为刚刚拍摄的快照名称系统安装完成。至此 Debian 安装完成

四、首次登录与基础配置

  • 启动虚拟机
  • 用用户名 rz、密码 123456 登录:

  • 使用 ip addr 命令查看虚拟机的 IP 地址,以获取远程登录的 IP 地址信息:ens33 所对应的 IP 地址即为虚拟机IP地址:

  • 安装vim

切换root用户,安装vim

rz@172:~$ vim
-bash: vim: command not found
rz@172:~$ su
Password:
root@172:/home/rz#
root@172:/home/rz#apt update
Hit:1 http://mirrors.tuna.tsinghua.edu.cn/debian bookworm InRelease
Hit:2 http://mirrors.tuna.tsinghua.edu.cn/debian bookworm-updates InRelease
Hit:3 http://security.debian.org/debian-security bookworm-security InRelease
Reading package lists... Done
Building dependency tree... Done
Reading state information... Done
All packages are up to date.
root@172:/home/rz# apt install vim
Reading package lists... Done
Building dependency tree... Done
Reading state information... Done
The following additional packages will be installed:libgpm2 libsodium23 vim-runtime
Suggested packages:gpm ctags vim-doc vim-scripts
The following NEW packages will be installed:libgpm2 libsodium23 vim vim-runtime
0 upgraded, 4 newly installed, 0 to remove and 0 not upgraded.
Need to get 8,770 kB of archives.
After this operation, 41.5 MB of additional disk space will be used.
Do you want to continue? [Y/n] y
Get:1 http://mirrors.tuna.tsinghua.edu.cn/debian bookworm/main amd64 libgpm2 amd64 1.20.7-10+b1 [14.2 kB]
Get:2 http://mirrors.tuna.tsinghua.edu.cn/debian bookworm/main amd64 libsodium23 amd64 1.0.18-1 [161 kB]
Get:3 http://mirrors.tuna.tsinghua.edu.cn/debian bookworm/main amd64 vim-runtime all 2:9.0.1378-2+deb12u2 [7,027 kB]
Get:4 http://mirrors.tuna.tsinghua.edu.cn/debian bookworm/main amd64 vim amd64 2:9.0.1378-2+deb12u2 [1,568 kB]
Fetched 8,770 kB in 2s (4,141 kB/s)
Selecting previously unselected package libgpm2:amd64.
(Reading database ... 33534 files and directories currently installed.)
Preparing to unpack .../libgpm2_1.20.7-10+b1_amd64.deb ...
Unpacking libgpm2:amd64 (1.20.7-10+b1) ...
Selecting previously unselected package libsodium23:amd64.
Preparing to unpack .../libsodium23_1.0.18-1_amd64.deb ...
Unpacking libsodium23:amd64 (1.0.18-1) ...
Selecting previously unselected package vim-runtime.
Preparing to unpack .../vim-runtime_2%3a9.0.1378-2+deb12u2_all.deb ...
Adding 'diversion of /usr/share/vim/vim90/doc/help.txt to /usr/share/vim/vim90/doc/help.txt.vim-tiny by vim-runtime'
Adding 'diversion of /usr/share/vim/vim90/doc/tags to /usr/share/vim/vim90/doc/tags.vim-tiny by vim-runtime'
Unpacking vim-runtime (2:9.0.1378-2+deb12u2) ...
Selecting previously unselected package vim.
Preparing to unpack .../vim_2%3a9.0.1378-2+deb12u2_amd64.deb ...
Unpacking vim (2:9.0.1378-2+deb12u2) ...
Setting up libsodium23:amd64 (1.0.18-1) ...
Setting up libgpm2:amd64 (1.20.7-10+b1) ...
Setting up vim-runtime (2:9.0.1378-2+deb12u2) ...
Setting up vim (2:9.0.1378-2+deb12u2) ...
update-alternatives: using /usr/bin/vim.basic to provide /usr/bin/ex (ex) in auto mode
update-alternatives: using /usr/bin/vim.basic to provide /usr/bin/rview (rview) in auto mode
update-alternatives: using /usr/bin/vim.basic to provide /usr/bin/rvim (rvim) in auto mode
update-alternatives: using /usr/bin/vim.basic to provide /usr/bin/vi (vi) in auto mode
update-alternatives: using /usr/bin/vim.basic to provide /usr/bin/view (view) in auto mode
update-alternatives: using /usr/bin/vim.basic to provide /usr/bin/vim (vim) in auto mode
update-alternatives: using /usr/bin/vim.basic to provide /usr/bin/vimdiff (vimdiff) in auto mode
Processing triggers for man-db (2.11.2-2) ...
Processing triggers for libc-bin (2.36-9+deb12u13) ...
root@172:/home/rz#
  • 配置sshd服务允许root远程登录

sshd服务默认不允许root用户远程登录,需要进行单独的配置设置允许root远程登录

# 打开配置文件
vim /etc/ssh/sshd_config
# 修改值
#PermitRootLogin prohibit-password
PermitRootLogin yes
# 重启sshd服务
systemctl daemon-reload
systemctl restart sshd
systemctl status sshd
● ssh.service - OpenBSD Secure Shell serverLoaded: loaded (/lib/systemd/system/ssh.service; enabled; preset: enabled)Active: active (running) since Mon 2025-09-29 09:19:35 EDT; 6s agoDocs: man:sshd(8)man:sshd_config(5)Process: 1337 ExecStartPre=/usr/sbin/sshd -t (code=exited, status=0/SUCCESS)Main PID: 1338 (sshd)Tasks: 1 (limit: 2257)Memory: 1.4MCPU: 19msCGroup: /system.slice/ssh.service└─1338 "sshd: /usr/sbin/sshd -D [listener] 0 of 10-100 startups"
Sep 29 09:19:35 172 systemd[1]: Starting ssh.service - OpenBSD Secure Shell server...
Sep 29 09:19:35 172 sshd[1338]: Server listening on 0.0.0.0 port 22.
Sep 29 09:19:35 172 sshd[1338]: Server listening on :: port 22.
Sep 29 09:19:35 172 systemd[1]: Started ssh.service - OpenBSD Secure Shell server.
# 可以通过root用户登录到服务器
[C:\~]$ ssh root@192.168.3.56
Connecting to 192.168.3.56:22...
Connection established.
To escape to local shell, press 'Ctrl+Alt+]'.
Linux 172 6.1.0-40-amd64 #1 SMP PREEMPT_DYNAMIC Debian 6.1.153-1 (2025-09-20) x86_64
The programs included with the Debian GNU/Linux system are free software;
the exact distribution terms for each program are described in the
individual files in /usr/share/doc/*/copyright.
Debian GNU/Linux comes with ABSOLUTELY NO WARRANTY, to the extent
permitted by applicable law.
/usr/bin/xauth:  file /root/.Xauthority does not exist
root@172:~#
  • bash配置

Debian 12最小化安装bash不支持ll等列表别名,也不支持命令Tab补全。为bash配置列表别名,以及命令Tab补全。

# ls命令配置,使用vim编辑~/.bashrc,修改内容如下:
root@172:~# vim ~/.bashrc
# 复制以下内容替换您的 ~/.bashrc
# ~/.bashrc: executed by bash(1) for non-login shells.
# Note: PS1 and umask are already set in /etc/profile. You should not
# need this unless you want different defaults for root.
# PS1='${debian_chroot:+($debian_chroot)}\h:\w\$ '
# umask 022
# You may uncomment the following lines if you want `ls' to be colorized:
alias ll='ls -alF'
alias la='ls -A'
alias l='ls -CF'
if [ -n "$force_color_prompt" ]; thenif [ -x /usr/bin/tput ] && tput setaf 1 >&/dev/null; then# We have color support; assume it's compliant with Ecma-48# (ISO/IEC-6429). (Lack of such support is extremely rare, and such# a case would tend to support setf rather than setaf.)color_prompt=yeselsecolor_prompt=fi
fi
# 保存文件后执行 生效
source ~/.bashrc
  • 常用工具batcat、tree、curl、wrk安装

安装本教程后续拟使用的batcattreecurlwrk

apt install bat tree curl wrk -y
  • 系统时区设置
# US时区
root@172:~# timedatectlLocal time: Mon 2025-09-29 09:39:16 EDTUniversal time: Mon 2025-09-29 13:39:16 UTCRTC time: Mon 2025-09-29 13:39:16Time zone: US/Eastern (EDT, -0400)
System clock synchronized: yesNTP service: activeRTC in local TZ: no
root@172:~# timedatectl set-timezone Asia/Shanghai
# 上海时区
root@172:~# timedatectlLocal time: Mon 2025-09-29 21:39:49 CSTUniversal time: Mon 2025-09-29 13:39:49 UTCRTC time: Mon 2025-09-29 13:39:49Time zone: Asia/Shanghai (CST, +0800)
System clock synchronized: yesNTP service: activeRTC in local TZ: no
root@172:~#

五、总结与预告

1、今日完成系统安装和环境准备,建议进行快照设置

  • 服务器关机
poweroff
  • 创建快照

2、下节课程预告

每天半小时,轻松学Docker第二篇:Linux二八法则基础知识

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/923757.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

南宁网站制作费用it项目外包网

哈夫曼编码的设计与应用 问题需求分析 用哈夫曼编码(Huffman Coding),又称霍夫曼编码,是一种编码方式,哈夫曼编码是可变字长编码(VLC)的一种。Huffman于1952年提出一种编码方法,该方法完全依据字符出现概率来构造异字头的平均长…

php网站访问很慢公司注册资金最低多少钱

Pass-14 (图片马,判断文件类型) 图片的格式在防护中通常是不会使用后缀进行判断的依据,文件头是文件开头的一段二进制码,不同类型的图片也就会有不同的二进制头。   JPEG (jpg),文件头:FF D…

2025上海骨灰盒哪里买优质厂家权威推荐榜:匠心工艺与品质服务之选

行业背景介绍 在殡葬文化中,骨灰盒承载着特殊的意义,它不仅是逝者最后的归宿,更是生者情感的寄托。随着社会的发展和人们观念的转变,对于骨灰盒的品质、工艺和文化内涵的要求也越来越高。上海作为国际化大都市,在…

实用指南:华为 HCIA-Datacom 备考:VRP 通用路由平台原理-实操

实用指南:华为 HCIA-Datacom 备考:VRP 通用路由平台原理-实操pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Co…

Voice Agent Camp 结营!完整项目名单公布丨超音速计划 2025

在过去的三个月里,17 个 Voice Agent 项目在超音速 Voice Agent Camp 里碰撞、打磨、成长。共同围绕「Voice First」理念,打造 AI 陪伴、个人助理、企业客服、AI 语音智能硬件等下一代产品。9 月 22 日,营员们带着阶…

详细介绍:SQL 执行异常排查 java.sql.SQLException:从 SQLException 说起

详细介绍:SQL 执行异常排查 java.sql.SQLException:从 SQLException 说起pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-famil…

做个外贸网站一般需要多少钱高校思政课网站建设

引言 在安卓开发中,视图绑定是一个关键的步骤,它允许开发者将布局文件中的视图组件与Activity或Fragment中的成员变量关联起来。这一机制不仅使得UI操作更加便捷,而且提高了开发效率。本文主要探讨了安卓开发中的一项重要技术——View Bindin…

2025上海寿衣哪里买权威推荐:优质供货商与暖心服务之选

上海寿衣厂家权威推荐:优质供货商与暖心服务之选 在中国传统文化中,寿衣作为人生最后一程的重要服饰,承载着对逝者的尊重与缅怀。随着社会对殡葬文化重视程度的提升,寿衣行业也逐步走向规范化、专业化发展。上海作…

AI 真能胜任专业工程师的工作吗?

AI 真能胜任专业工程师的工作吗? 近年来,人工智能(AI)的发展速度令人目不暇接,能够完成写诗、绘画、考试,甚至编写复杂的计算机代码。然而,有一个疑问始终在用户的心头环绕,得不到答案:这位“学霸”走出考场,…

容器中与内存相关的几个参数

在容器环境中,Cache内存使用率通常指的是容器内存中被操作系统用于缓存文件系统数据的部分。操作系统会利用未使用的内存来缓存磁盘上的数据,以提高文件读写性能。这部分内存虽然被标记为“已使用”,但实际上可以在…

求购做网站阿里巴巴上做网站

双线性插值公式 对于一个目的像素,设置坐标通过反向变换得到的浮点坐标为(iu,jv) (其中i、j均为浮点坐标的整数部分,u、v为浮点坐标的小数部分,是取值[0,1)区间的浮点数),则这个像素得值 f(iu,jv) 可由原图像中坐标为 (i,j)、(i1…

深入解析:【黑马程序员】后端Web基础--Maven基础和基础知识

pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", …

一个网站如何做双语在国内做敏感网站

腾讯云幻兽帕鲁服务器4核16G、8核32G和16核64G配置可选,4核16G14M带宽66元一个月、277元3个月,8核32G22M配置115元1个月、345元3个月,16核64G35M配置580元年1个月、1740元3个月、6960元一年,腾讯云百科txybk.com分享腾讯云幻兽帕鲁…

php 简单下载数据库数据 导出cvs - 何苦

php 简单下载数据库数据 导出cvs<?php set_time_limit(0);// 下载文件名 $filename = date(Y-m-d H:i:s, time()); //输出Excel文件头,可把user.csv换成你要的文件名 header(Content-Type: application/vnd.ms-ex…

新乡营销型网站建设浦东高端网站开发

1. Homography 单应性概念 考虑 同一个平面(比如书皮)的两张图片&#xff0c;红点表示同一个物理坐标点在两张图片上的各自位置。在 CV 术语中&#xff0c;我们称之为对应点。 Homography 就是将一张图像上的点映射到另一张图像上对应点的3x3变换矩阵. 因为 Homography 是一个 …

上海城市建设官方网站如何用html做班级网站

转载&#xff1a;https://www.cnblogs.com/lnlvinso/p/8848883.html 结果&#xff1a;skiplist的高度是个随机值。 SkipList理解 记下自己对跳表SkipList的理解。 SkipList采用空间换时间的思想&#xff0c;通过增加数据间的链接&#xff0c;达到加快查找速度的目的。 数据库L…

网站与网址的区别制作平台网站方案

应用(Docker)使用WAF接入internet&#xff0c;nginx log 查不到用户的真实IP地址&#xff0c;于是修改nginx 设置&#xff0c;以下都是在linux下操作&#xff1a; 由于没有WAF权限&#xff0c;所以在 docker上启动了两个container&#xff0c;一个模拟WAF(r-proxy)&#xff0c…

OpenWRT中备份多个docker容器的脚本 -

在OpenWrt 24.10.1上测试通过 #!/bin/sh # OpenWrt Docker Container Backup Script # Backup docker container and copy to network storageecho "==========================================" echo &quo…

网站常用的优化方法有哪些做网站的策划需要做什么

1 二叉树的概念 二叉树是&#xff1a; 空树非空&#xff1a;根节点&#xff0c;根节点的左子树、根节点的右子树组成的。 二叉树定义是递归式的&#xff0c;因此后序基本操作中基本都是按照该概念实现的。 2 二叉树的遍历 2.1 前序、中序以及后序遍历 学习二叉树结构&#xf…

动态分区分配算法

首次适应算法[first fit] 每次都从低地址开始查找,找到对歌能满足大小的空闲分区 空闲分区以地址递增的次序排列,每次分配内存时顺序查找空闲分区链或表,找到大小能满足要求的第一个空闲分区 最佳适应算法[best fit…