使用Docker构建镜像部署云服务器后,为何找不到文件与文件夹?
问题排查与解决
1. 镜像推送标签错误
你推送镜像时用的标签是gcr.io/app/app:2023.01.2,但之前打标签的是gcr.io/app/app:2023.01.25,版本号不一致。如果GCR中存在2023.01.2旧镜像,创建服务器时可能用的是旧版本而非刚构建的新镜像。修正推送命令:
docker push gcr.io/app/app:2023.01.25
并确认创建服务器时指定的镜像标签为2023.01.25。
2. SSH登录的是宿主机而非容器内部
这是Docker新手常见误区:基于Docker镜像创建的Google Cloud服务器(如Container-Optimized OS实例),SSH登录的是虚拟机宿主机,不是运行应用的容器内部。需进入容器查看文件:
- 登录VM后执行
docker ps获取运行中容器的ID - 执行
docker exec -it <容器ID> /bin/bash进入容器内部 - 此时查看
/app目录,就能看到镜像中复制的文件
3. 本地.dockerignore文件导致文件未被复制
如果本地目录存在.dockerignore文件,若其中包含需要复制的文件/文件夹(比如误写了*或业务目录名),COPY . /app会跳过这些内容,镜像中自然没有对应文件。检查本地目录的.dockerignore,确保未排除必要内容。
4. 容器启动时挂载卷覆盖了/app目录
若创建服务器时配置了外部卷(如GCE持久化磁盘)挂载到/app路径,会覆盖镜像中原有的/app目录内容。检查服务器启动配置,确认没有将外部卷挂载到/app。
内容的提问来源于stack exchange,提问作者alvrm
相关产品推荐
相关产品推荐

