ufw
# 放行某个端口
sudo ufw allow 3306
# 查看ufw状态
sudo ufw status
# 删除某个端口规则
sudo ufw delete allow 3306
# 放行某个协议的端口
sudo ufw allow 3306/tcp
docker
基本信息和系统命令
# 查看Docker版本
docker version
# 显示Docker系统信息
docker info
# 查看Docker磁盘使用情况
docker system df
# 列出本地所有镜像
docker images
docker image ls
镜像管理
# 搜索镜像
docker search nginx
# 构建镜像
docker build -t myapp:1.0 .
# 删除镜像
docker rmi nginx:latest
docker image rm nginx:latest
# 查看镜像详细信息
docker image inspect nginx:latest
# 将镜像保存为tar文件
docker save -o nginx.tar nginx:latest
# 从tar文件加载镜像
docker load -i nginx.tar
容器管理
# 列出运行中的容器
docker ps
# 列出所有容器(包括停止的)
docker ps -a
# 启动已停止的容器
docker start mynginx
# 停止容器
docker stop mynginx
# 重启容器
docker restart mynginx
# 删除容器(必须先停止)
docker rm mynginx
# 强制删除正在运行的容器
docker rm -f mynginx
# 进入容器内部(交互式shell)
docker exec -it mynginx bash
# 查看容器日志
docker logs mynginx
# 在容器和主机之间复制文件
# 主机到容器
docker cp file.txt mynginx:/path/
# 容器到主机
docker cp mynginx:/path/file.txt ./
网络管理
# 列出所有网络
docker network ls
# 创建网络
docker network create mynetwork
# 删除网络
docker network rm mynetwork
# 查看网络详情
docker network inspect mynetwork
# 连接容器到网络
docker network connect mynetwork mynginx
# 断开容器与网络的连接
docker network disconnect mynetwork mynginx
# 创建容器时指定网络
docker run -d --name mynginx --network mynetwork nginx:latest
数据卷管理
# 列出所有数据卷
docker volume ls
# 创建数据卷
docker volume create mydata
# 删除数据卷
docker volume rm mydata
# 查看数据卷详情
docker volume inspect mydata
# 创建容器时挂载数据卷
docker run -d --name mynginx -v mydata:/usr/share/nginx/html nginx:latest
# 创建容器时挂载主机目录
docker run -d --name mynginx -v /home/user/html:/usr/share/nginx/html nginx:latest
docker-compose
# 启动所有服务
docker-compose up -d
# 停止所有服务
docker-compose down
# 查看服务状态
docker-compose ps
# 查看服务日志
docker-compose logs
# 构建或重建服务
docker-compose build
# 启动特定服务
docker-compose up -d nginx
# 停止特定服务
docker-compose stop nginx
# 重启特定服务
docker-compose restart nginx
curl
# 基本GET请求
curl https://example.com
# 保存响应到文件
curl -o output.html https://example.com
# 下载文件并显示进度条
curl -# -O https://example.com/file.zip
# 下载多个文件
curl -O https://example.com/file1.zip -O https://example.com/file2.zip
# GET请求(默认)
curl https://api.example.com/users
# POST请求
curl -X POST https://api.example.com/users
# PUT请求
curl -X PUT https://api.example.com/users/1
# DELETE请求
curl -X DELETE https://api.example.com/users/1
# HEAD请求(只获取HTTP头信息)
curl -I https://example.com
# 发送表单数据
curl -d "name=John&age=30" https://api.example.com/users
# 发送JSON数据
curl -X POST -H "Content-Type: application/json" -d '{"name":"John","age":30}' https://api.example.com/users
# 发送带换行符的JSON数据(更易读)
curl -X POST -H "Content-Type: application/json" \
-d '{
"name": "John",
"age": 30,
"email": "john@example.com"
}' \
https://api.example.com/users
# 从文件发送数据
curl -X POST -H "Content-Type: application/json" -d @data.json https://api.example.com/users
# 上传文件(表单上传)
curl -F "file=@photo.jpg" https://api.example.com/upload
# 上传多个文件
curl -F "file1=@photo1.jpg" -F "file2=@photo2.jpg" https://api.example.com/upload
# 添加请求头
curl -H "User-Agent: MyCustomAgent" https://example.com
curl -H "Accept: application/json" -H "Content-Type: application/json" https://api.example.com
# 发送基本认证
curl -u username:password https://api.example.com
# 发送Bearer令牌认证
curl -H "Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9..." https://api.example.com
# 发送API密钥
curl -H "X-API-Key: your_api_key_here" https://api.example.com
# 使用HTTP代理
curl -x http://proxy.example.com:8080 https://example.com
# 使用SOCKS5代理
curl --socks5 proxy.example.com:1080 https://example.com
# 允许不安全的SSL连接(忽略证书验证)
curl -k https://example.com
# 使用特定的DNS服务器
curl --dns-servers 8.8.8.8 https://example.com
# 指定网络接口
curl --interface eth0 https://example.com
# 解析域名到特定IP
curl --resolve example.com:443:1.2.3.4 https://example.com
date
# 默认时间
date
date +%H:%M:%S
# 完整的日期和时间
date "+%Y-%m-%d %H:%M:%S"
# 查看系统的硬件时钟
sudo hwclock --show