## 一、环境准备
### 1.1 Docker环境搭建
- 跨平台支持:Docker支持Windows/macOS/Linux系统,推荐使用Docker Desktop(桌面系统)或Docker Engine(服务器)
- 安装参考:
- 官方文档:[https://docs.docker.com/get-docker/](https://docs.docker.com/get-docker/)
- 国内镜像加速配置(可选):[阿里云容器镜像服务](https://cr.console.aliyun.com/)
> 技术提示:生产环境建议使用Linux发行版作为宿主机系统
### 1.2 Linux哲学基础
核心概念:"一切皆文件"(Everything is a file)
- 文件类型示例:
| 文件类型 | 代表对象 | 操作方式 |
|----------------|------------------|------------------|
| 普通文件 | 文本/二进制数据 | read/write |
| 设备文件 | 硬件设备 | ioctl |
| 套接字文件 | 网络通信 | send/recv |
| 管道文件 | 进程间通信 | pipe |
## 二、容器化Ubuntu实战
### 2.1 基础容器部署
```bash
# 创建并启动容器(后台模式)
docker run -itd --name my_ubuntu -p 2222:22 ubuntu:latest
# 进入容器Shell环境
docker exec -it my_ubuntu /bin/bash
```
参数解析:
| 参数 | 全称 | 作用 | 类比说明 |
|-------|-----------------|------------------------------|----------------------|
| -i
| --interactive | 保持标准输入开放 | 建立双向通信通道 |
| -t
| --tty | 分配伪终端 | 创建虚拟控制台 |
| -d
| --detach | 后台运行模式 | 后台服务托管 |
| -p
| --publish | 端口映射(主机:容器) | 网络端口转发 |
| -v
| --volume | 数据卷挂载(主机:容器) | 持久化存储解决方案 |
### 2.2 系统初始化配置
apt update && apt upgrade -y
apt install -y \
sudo \
systemd \
openssh-server \
net-tools \
iproute2 \
vim \
curl \
wget \
gnupg2 \
software-properties-common
解释
```bash
# 更新软件源索引
apt update && apt upgrade -y
# 安装基础工具集
apt install -y \
sudo \ # 权限管理
systemd \ # 系统和服务管理器
openssh-server \# SSH远程服务
net-tools \ # 网络诊断工具
iproute2 \ # 高级网络配置
vim \ # 文本编辑器
curl \ # 数据传输工具
wget \ # 文件下载工具
gnupg2 \ # 加密验证工具
software-properties-common # 软件源管理
```
### 2.3 SSH服务配置
```bash
# 启用密码登录(生产环境建议使用密钥认证)
sed -i 's/#PermitRootLogin prohibit-password/PermitRootLogin yes/' /etc/ssh/sshd_config
# 设置root密码
passwd
# 启动SSH服务
systemctl enable --now ssh
```
### 2.4 用户管理体系
#### 创建标准用户
```bash
# 创建带主目录的用户
useradd -m -s /bin/bash devuser
# 授予管理员权限
usermod -aG sudo devuser
# 设置用户密码
passwd shitou
```
#### 权限管理建议
- 遵循最小权限原则
- 日常操作使用普通用户
- 通过`sudo`执行特权命令
- 定期审计`/var/log/auth.log`
### 2.5 容器生命周期管理
```bash
# 保持容器持续运行
docker run -itd --restart=unless-stopped \
-v /host/path:/container/path \
-p 2222:22 \
ubuntu:latest \
tail -f /dev/null
```
## 三、自定义镜像构建
### 3.1 Dockerfile优化版
```dockerfile
# 基础镜像
FROM ubuntu:22.04
# 元数据
LABEL maintainer="yourname@example.com"
# 系统初始化
RUN apt update && \
DEBIAN_FRONTEND=noninteractive apt install -y \
openssh-server \
sudo \
net-tools \
iproute2 && \
apt clean && \
rm -rf /var/lib/apt/lists/*
# 安全配置
RUN useradd -m -s /bin/bash devuser && \
echo 'devuser:YourSecurePassword' | chpasswd && \
usermod -aG sudo devuser && \
sed -i 's/#PermitRootLogin prohibit-password/PermitRootLogin no/' /etc/ssh/sshd_config
# 服务暴露
EXPOSE 22
# 启动命令
CMD ["/usr/sbin/sshd", "-D"]
### 3.2 构建与运行
```bash
# 构建镜像
docker build -t secure_ubuntu .
# 运行容器
docker run -d --name ssh_server \
-p 2222:22 \
-v ssh_data:/etc/ssh \
secure_ubuntu
```
## 四、生产环境建议
1. 网络安全:
- 修改默认SSH端口(非22)
- 禁用root远程登录
- 使用SSH密钥认证
2. 资源限制:
docker run -d --memory 2g --cpus 1 ...
3. 日志管理:
docker logs --tail 100 -f ssh_server
4. 监控方案:
- cAdvisor
- Prometheus + Grafana
## 五、学习路径建议
1. Linux基础:文件系统、权限管理、进程管理
2. Docker进阶:网络配置、存储驱动、Docker Compose
3. 安全实践:SELinux/AppArmor配置、镜像扫描
4. 容器编排:Kubernetes基础、Swarm集群