最常用、最直接的方式是用 docker cp 命令,适用于运行中或已停止的容器,无需重建镜像或修改配置;支持单文件及递归目录复制,路径为绝对路径,上级目录需预先存在,权限默认继承宿主机。
最常用、最直接的方式是用docker cp命令,适用于已存在(运行中或已停止)的容器,无需重建镜像或改配置。
这是临时复制的首选方法,操作快、不依赖容器状态。
docker cp /宿主机/路径/文件名 容器名或ID:/容器内/路径/
docker cp /宿主机/路径/目录名 容器名或ID:/容器内/目标路径/
docker exec -it 容器名 chmod 644 /路径/文件
适合配置文件、静态资源、源码等需要长期固化在镜像里的场景。
COPY ./config.yaml /app/config.yaml
docker build -t myapp . && docker run -d --name app1 myapp
COPY 只支持本地上下文路径,不能写 ../ 或绝对路径;ADD 虽能解压和拉 URL,但一般推荐用 COPY 更清晰安全适合日志查看、代码热更新、配置动态修改等持续交互场景。
docker run -v /宿主机/路径:/容器内/路径 镜像名
docker run -v $(pwd)/conf:/etc/myapp nginx,宿主机当前目录下的 conf 文件夹就实时映射进容器适合微服务、前后端分离等需统一编排的场景。
docker-compose.yml 中定义:volumes:
- ./data:/app/data
docker-compose up -d 启动后,宿主机 ./data 就自动挂载到各服务容器的 /app/data
docker run -v 更易维护、可复用