如何拷贝码头工人容器内的文件吗?

  

如何拷贝码头工人容器内的文件?

  

开始之前

  

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

  

我们需要更换一个国内的apt镜像地址,例如使用阿里云,网易云,等开源镜像站。<强> debain或ubuntu系统 apt仓库配置保存在<代码>/etc/恰当的来源。列表>   

环境描述

  
 <代码类=" language-yaml ">容器镜像:php: 5.6 fpm
  容器系统:debian 8(杰西)
  配置文件:/etc/apt/sources.list
  码头工人主机:Ubuntu服务器16.04  
  

举个栗子

  

1创建源。表文件,内容如下:

  
 <代码类=" language-bash ">猫sources.list
  
  杰西主要收费contrib deb http://mirrors.aliyun.com/debian/deb http://mirrors.aliyun.com/debian/jessie-proposed-updates主要非自由普通发布版
  杰西主要收费contrib deb-src http://mirrors.aliyun.com/debian/deb-src http://mirrors.aliyun.com/debian/jessie-proposed-updates主要收费contrib  
  

2备份容器内的文件

  
 <代码类=" language-bash ">码头工人cp crm-test:/etc/恰当的来源。代码列表/tmp/sources.list.bak  之前
  

这个条命令将把容器内的来源。表文件,拷贝到宿主机上的/tmp/目录

  

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

  
 <代码类=" language-bash ">码头工人cp来源。列表crm-test:/etc/apt/sources.list  
  

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

  

4验证   

 <代码类=" language-bash ">码头工人exec ti crm-test apt-get更新
  Ign http://mirrors.aliyun.com杰西InRelease
  省略……
  获取22.0 MB在19年代(1120 kB/s)
  阅读包列表… 之前完成
  

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

  
 <代码类=" language-dockerfile ">头/5.6/Dockerfile -n7 php/基地
  # php-fpm: 5.6
  
  从php: 5.6 fpm
  维护者dongnan
  
  #贴切
  复制conf/来源。代码列表/etc/apt/sources.list  
  

命令帮助

  
 <代码类=" language-bash ">码头工人cp -帮助
  
  用法:码头工人cp[选项]容器:SRC_PATH DEST_PATH | -
  码头工人cp[选项]SRC_PATH | -容器:DEST_PATH
  
  复制文件/文件夹之间的容器和本地文件系统
  
  选项:
  ————档案归档模式(复制所有uid/gid信息)
  - l, follow链接总是遵循符号链接SRC_PATH  
  

小结

  

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

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

参考文章

  

doker& k8群(703906133)

如何拷贝码头工人容器内的文件吗?