Linux防火墙是服务器安全的基础。本文详细介绍iptables和firewalld的配置。
让我们从基础概念开始,逐步深入。掌握这些基本知识后,你就能在实际项目中运用自如。
首先需要确保你的环境满足以下条件:
# 基本安装命令
sudo apt-get update
sudo apt-get install -y docker.io
# 验证安装
docker --version
docker-compose --version
理解以下核心概念非常重要:
| 概念 | 说明 | 使用场景 |
|---|---|---|
| 镜像(Image) | 只读模板 | 构建分发 |
| 容器(Container) | 运行实例 | 运行服务 |
| 仓库(Registry) | 存储镜像 | 版本管理 |
| 网络(Network) | 容器通信 | 服务互联 |
在掌握了基础用法之后,我们来深入了解一些高级配置技巧。
# 生产环境推荐配置
version: '3.8'
services:
app:
image: myapp:latest
restart: always
environment:
- NODE_ENV=production
- MAX_CONNECTIONS=1000
deploy:
resources:
limits:
memory: 512M
cpus: '0.5'
logging:
driver: json-file
options:
max-size: "10m"
max-file: "3"
安全性是生产部署的重中之重:
下面是一个完整的生产级部署示例:
# 完整部署脚本
#!/bin/bash
set -e
# 1. 构建镜像
docker build -t myapp:$(date +%Y%m%d) .
# 2. 停止旧容器
docker-compose down || true
# 3. 启动新容器
docker-compose up -d
# 4. 健康检查
sleep 5
curl -f http://localhost:8080/health || exit 1
echo "Deployment successful!"
使用 docker logs -f 容器名 查看实时日志,加上 --tail 100 只看最后100行。
检查以下几点:1) 镜像是否存在 2) 端口是否被占用 3) 使用 docker logs 查看错误信息。
使用 docker exec -it 容器名 /bin/bash 即可进入容器的交互式终端。