## 一、环境准备

### 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集群