• docker文件拷贝


    向docker管理的“块”拷贝文件可以存在于三个时段(这里的块,可以指代镜像也可以指代运行实例。简单来说,即是docker管理的,程序员开发的,在容器中的东西)

    (1)镜像生成之前

    (2)实例运行起来之后

    实际操作

    (1)镜像生成之前

      即使用docker images 还不能查询到镜像时(一般是通过docker pull或docker build进行)

      (a)使用docker build命令可以通过编写Dockerfile,在其中使用COPY命令将指定目录下的文件、文件夹,组装容器。具体操作可以参照我写的博客:http://www.cnblogs.com/chendeming/p/8202477.html

      (b)使用docker import命令可以预先在导出的jar包里拷贝文件,这个比较不建议,有可能打乱docker导出的文件结构,造成一些不可预知的错误。

    备注:若想修改原有镜像,可以在Dockerfile中以原有镜像为基础生成新的镜像,即使用Dockerfile里的From命令指定源镜像生成基础为原镜像。

    (2)实例运行起来之后

      镜像运行起来后,运行实例相当于一个Linux系统,那么我们在拷贝文件的时候就可以有如下几种方式

      (a)使用docker自带的文件拷贝命令,管理运行实例(docker cp)    

        docker cp :用于容器与主机之间的数据拷贝。
        docker cp [OPTIONS] CONTAINER:SRC_PATH DEST_PATH|-
        docker cp 96f7f14e99ab:/www /tmp/
        将容器96f7f14e99ab的/www目录拷贝到主机的/tmp目录中。

        注意:这个命令在docker版本在1.8之前会报如下错误:Error: Path not specified,这是个bug,若docker版本在1.8之前,不要使用如上命令

      (b)将运行实例当Linux玩,使用docker exec -it 进入容器,在容器中挂载当前主机的磁盘(docker run -v),直接在共享磁盘中执行拷贝(linux之cp命令

        docker运行命令中有容器端口映射选项docker -p,当然也有磁盘映射命令-v,例如可以用如下方式执行映射:

        命令格式:docker run -v 主机路径:运行实例路径 容器id

        命令样例:docker run -v /usr/chendeming/local:/user/docker/local aace28776

        备注说明:aace28776这个是docker容器的id,通过docker ps获取

     

      (c)将运行实例当Linux玩,使用docker exec -it 进入容器,在容器中使用linux命令scp命令进行拷贝

        Linux scp命令用于Linux之间复制文件和目录。scp是 secure copy的缩写, scp是linux系统下基于ssh登陆进行安全的远程文件拷贝命令。

        命令格式:scp [可选参数] file_source file_target 

        命令样例:scp /usr/chendeming/local/1.mp3 root@192.168.1.254:/usr/docker/local/1.mp3

        备注说明:从本地以root用户登录192.168.1.254服务器,对应磁盘

       

     备注:

      docker exec -it <container_id> bash

      使用这个命令可以进入运行中的docker运行实例,最后这个bash是镜像启动时使用的脚本。通过docker ps 可以查询到这个脚本的实际名字,要因地制宜。

    扩展参照:

      http://blog.csdn.net/yangzhenping/article/details/43667785

      https://segmentfault.com/a/1190000007304063

      http://www.runoob.com/linux/linux-comm-scp.html

  • 相关阅读:
    396 Rotate Function 旋转函数
    395 Longest Substring with At Least K Repeating Characters 至少有K个重复字符的最长子串
    394 Decode String 字符串解码
    393 UTF-8 Validation UTF-8 编码验证
    392 Is Subsequence 判断子序列
    391 Perfect Rectangle 完美矩形
    390 Elimination Game 淘汰游戏
    389 Find the Difference 找不同
    388 Longest Absolute File Path 最长的绝对文件路径
    387 First Unique Character in a String 字符串中的第一个唯一字符
  • 原文地址:https://www.cnblogs.com/chendeming/p/8379631.html
Copyright © 2020-2023  润新知