插件窝 干货文章 总结Docker中下载文件的几种方法

总结Docker中下载文件的几种方法

container Docker 使用 容器 916    来源:    2025-04-30

Docker中下载文件的几种方法总结

1. 使用docker cp命令

将容器内的文件复制到主机:

docker cp <container_name_or_id>:/path/to/file/in/container /path/to/destination/on/host

将主机文件复制到容器:

docker cp /path/to/local/file <container_name_or_id>:/path/to/destination/in/container

2. 使用卷挂载(Volume Mount)

在运行容器时挂载主机目录:

docker run -v /host/path:/container/path image_name

这样容器内/container/path目录下的文件会实时同步到主机的/host/path目录。

3. 使用绑定挂载(Bind Mount)

类似于卷挂载,但直接指定主机路径:

docker run --mount type=bind,source=/host/path,target=/container/path image_name

4. 使用docker export导出容器文件系统

docker export <container_id> > container_fs.tar

5. 使用docker save保存镜像

docker save -o image.tar image_name

6. 在容器内使用下载工具

进入容器后使用curl/wget等工具下载:

docker exec -it <container_id> bash
curl -O http://example.com/file

或者直接执行下载命令:

docker exec <container_id> curl -O http://example.com/file

7. 使用SSH/SCP

如果容器内运行了SSH服务:

scp user@container_ip:/path/to/file /local/path

8. 使用HTTP服务

在容器内启动HTTP服务(如Python简易服务器):

docker exec <container_id> python3 -m http.server 8000

然后在主机上使用浏览器或wget/curl访问http://container_ip:8000下载文件。

选择建议

  • 对于一次性文件传输:使用docker cp
  • 对于开发时的持续同步:使用卷挂载
  • 对于需要保存整个容器状态:使用docker export
  • 对于需要保存镜像:使用docker save
  • 对于需要从互联网下载:在容器内使用curl/wget