部署实战

Docker 教程 · 第 8 章 · 5 次浏览

用 Docker 遇到最多的坑:容器一启动就退出、端口占用、数据丢失、镜像太大。这里列高频问题和解决办法。

常见问题

  • 容器退出:docker logs 看日志,多半是启动命令报错
  • 端口冲突:换宿主端口,或看 docker ps 谁占着
  • 数据没了:没挂数据卷,容器删除即丢
  • 镜像太大:用 slim/alpine 基础镜像、多阶段构建
  • 时区不对:加 TZ=Asia/Shanghai 环境变量

优化习惯

Dockerfile 里先拷依赖清单再拷源码(利用缓存);.dockerignore 排除 node_modules 等;小镜像用 alpine。

代码示例

# 排查:看日志
docker logs 容器名
docker logs -f --tail 100 容器名

# 排查:进容器手动跑
docker exec -it 容器名 bash

# 优化:多阶段构建(Python 示例)
# FROM python:3.12-slim AS builder
# COPY requirements.txt .
# RUN pip install --user -r requirements.txt
#
# FROM python:3.12-slim
# COPY --from=builder /root/.local /root/.local
# COPY app.py .
# ENV PATH=/root/.local/bin:$PATH
# CMD ["python", "app.py"]

# 时区
# docker run -e TZ=Asia/Shanghai ...
# compose 里 environment: TZ: Asia/Shanghai
📚 Shell 命令速查
常用条目速查,完整版见对应教程章节。可复制代码到在线运行中测试。
写法 / 语法作用
ls / ls -la列出文件(-la 显示隐藏和详情)
cd 目录切换目录
pwd显示当前目录
mkdir -p 目录创建目录(-p 自动建父级)
touch 文件创建空文件
cp -r 源 目标复制(-r 递归复制目录)
mv 源 目标移动 / 重命名
rm -rf 目录删除(危险,慎用)
cat 文件查看文件内容
less 文件分页查看文件(q 退出)
grep "关键词" 文件按关键词搜索
find . -name "*.php"按名称查找文件
chmod 755 文件修改权限
ps aux查看进程
kill 进程号结束进程
top实时资源监控
df -h / free -m磁盘 / 内存占用
tar -czf a.tar.gz 目录打包压缩
tar -xzf a.tar.gz解压
curl 网址请求网址(测试接口)
wget 网址下载文件
ssh 用户@主机远程登录
scp 文件 用户@主机:/路径远程传文件
sudo 命令以管理员执行
crontab -e编辑定时任务