温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

如何拷贝Docker容器内的文件?

发布时间:2020-08-05 09:17:58 来源:网络 阅读:991 作者:yunweilu 栏目:系统运维

如何拷贝Docker容器内的文件?

开始之前

某个项目容器需要添加 wkhtmltopdf 软件包用于处理html与pdf文件转换,由于默认的apt源服务器在国外,使用apt 安装 wkhtmltopdf 时下载速度只有感人的几kb/s。

我们需要更换一个国内的apt镜像地址,例如使用 阿里云、网易云、等开源镜像站。debain 或 ubuntu 系统 apt 仓库配置保存在 /etc/apt/sources.list 配置文件中,我们可以替换容器中的这个文件。

环境描述

容器镜像: php:5.6-fpm
容器系统: debian 8 (jessie)
配置文件: /etc/apt/sources.list
Docker主机: Ubuntu Server 16.04

举个栗子

1 创建 sources.list文件,内容如下:

cat sources.list

deb http://mirrors.aliyun.com/debian/ jessie main non-free contrib
deb http://mirrors.aliyun.com/debian/ jessie-proposed-updates main non-free contrib
deb-src http://mirrors.aliyun.com/debian/ jessie main non-free contrib
deb-src http://mirrors.aliyun.com/debian/ jessie-proposed-updates main non-free contrib

2 备份容器内的文件

docker cp crm-test:/etc/apt/sources.list /tmp/sources.list.bak

这个条命令将把容器内的 sources.list文件,拷贝到宿主机上的 /tmp/目录

3 替换容器内的 sources.list文件

docker cp sources.list crm-test:/etc/apt/sources.list

相反这个条命令将把宿主机上的文件拷贝到容器内

4 验证

docker exec -ti crm-test apt-get update
Ign http://mirrors.aliyun.com jessie InRelease
省略...
Fetched 22.0 MB in 19s (1120 kB/s)
Reading package lists... Done

5 扩展 Dockerfile
每次都要为容器添加 sources.list文件实在是麻烦我们可以优化一下,把这个步骤定义在 Dockerfile 中例如:

head -n7 php/base/5.6/Dockerfile 
# php-fpm:5.6

FROM php:5.6-fpm
MAINTAINER dongnan

# apt
COPY conf/sources.list /etc/apt/sources.list

命令帮助

docker cp --help

Usage:  docker cp [OPTIONS] CONTAINER:SRC_PATH DEST_PATH|-
    docker cp [OPTIONS] SRC_PATH|- CONTAINER:DEST_PATH

Copy files/folders between a container and the local filesystem

Options:
  -a, --archive       Archive mode (copy all uid/gid information)
  -L, --follow-link   Always follow symbol link in SRC_PATH

小结

最后来总结下文章中的知识点

  • docker cp子命令可以用来在容器与宿主机之间拷贝文件。
  • 拷贝文件时没有提示会直接替换目的文件,请提前做好备份工作。
  • 对于容器的 sources.list文件,可以自定义docker镜像。

参考文章

doker&k8s Qun [703906133]

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI