V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
sunhk25
V2EX  ›  Docker

docker 学习, import tar 文件后,如何启动进入容器

  •  
  •   sunhk25 · 2015-04-27 14:06:33 +08:00 · 3980 次点击
    这是一个创建于 3258 天前的主题,其中的信息可能已经有所发展或是发生改变。
    先前,弄了两个学习用image下载后,通过Dockerfile利用以下命令
    docker build -t tutum/lamp .
    docker run -d -p 80:80 -p 3306:3306 tutum/lamp
    可以顺利启动并进入容器。
    现在有一个项目的docker tar文件,想import后,进入容器
    tar -c . | docker import - test_image
    成功后,无法启动和进入容器,
    docker run -d -p 80:80 -p 3305:3305 test_image:latest
    不指定命令》》 No command specified
    指定路径和命令》》 exec: "/bin/ls": stat /bin/ls: no such file or directory
    查看tar根目录下有个startup.sh 》》 exec: "startup.sh": executable file not found in $PATH
    问题出在哪。
    第 1 条附言  ·  2015-04-28 09:57:25 +08:00
    我之前的写法不对
    cat centos-65.tar.xz | docker import - local/centos:6.5
    改成这样就可以了。
    10 条回复    2015-04-28 15:49:25 +08:00
    sunhk25
        1
    sunhk25  
    OP
       2015-04-27 14:09:38 +08:00
    # docker version
    Client version: 1.5.0
    Client API version: 1.17
    Go version (client): go1.3.3
    Git commit (client): a8a31ef/1.5.0
    OS/Arch (client): linux/amd64
    Server version: 1.5.0
    Server API version: 1.17
    Go version (server): go1.3.3
    Git commit (server): a8a31ef/1.5.0

    # docker info
    Containers: 14
    Images: 89
    Storage Driver: devicemapper
    Pool Name: docker-253:0-264219-pool
    Pool Blocksize: 65.54 kB
    Backing Filesystem: extfs
    Data file: /dev/loop0
    Metadata file: /dev/loop1
    Data Space Used: 6.659 GB
    Data Space Total: 107.4 GB
    Metadata Space Used: 7.434 MB
    Metadata Space Total: 2.147 GB
    Udev Sync Supported: true
    Data loop file: /var/lib/docker/devicemapper/devicemapper/data
    Metadata loop file: /var/lib/docker/devicemapper/devicemapper/metadata
    Library Version: 1.02.89-RHEL6 (2014-09-01)
    Execution Driver: native-0.2
    Kernel Version: 2.6.32-504.16.2.el6.x86_64
    Operating System: <unknown>
    CPUs: 1
    Total Memory: 1.436 GiB
    Name: v1env
    ID: YYBJ:54SJ:LYZM:V6E3:UF4P:HGFB:A7PC:IT7Z:645G:O6XB:GAO4:XADU
    jokester
        2
    jokester  
       2015-04-27 14:14:38 +08:00   ❤️ 1
    tar -c不是创建tar吗? 你确定是在 (b) import (/b) 一个tar?
    sunhk25
        3
    sunhk25  
    OP
       2015-04-27 14:36:07 +08:00
    @jokester
    是的,我确实是想从tar里导入image。
    https://docs.docker.com/reference/commandline/cli/
    Import from a local directory:
    $ sudo tar -c . | sudo docker import - exampleimagedir
    jokester
        4
    jokester  
       2015-04-27 14:43:17 +08:00   ❤️ 1
    @sunhk25
    顶楼的话我理解为”现在(已经)有一个项目的docker tar文件"

    `tar -c | docker import` 这个命令做的事情是把当前目录的内容做成一个新的tar 然后导入成image
    从已有tar文件导入的例子是"Import from a local file"
    sunhk25
        5
    sunhk25  
    OP
       2015-04-27 15:08:32 +08:00
    @jokester
    好的,我Import tar成功 docker images也可以看到。
    问题是不知如何run起来这个容器,
    jokester
        6
    jokester  
       2015-04-27 15:22:19 +08:00   ❤️ 1
    "成功"不是docker import没报错
    是这个新image确实包含了你想要import的内容
    如果不包含 折腾run的意义在哪
    sunhk25
        7
    sunhk25  
    OP
       2015-04-28 09:57:13 +08:00
    @jokester
    谢谢,我之前的写法不对
    cat centos-65.tar.xz | docker import - local/centos:6.5
    改成这样就可以了。
    jokester
        8
    jokester  
       2015-04-28 12:37:20 +08:00   ❤️ 1
    不要只口头谢呀 给钱呀
    sunhk25
        9
    sunhk25  
    OP
       2015-04-28 15:31:19 +08:00
    能给的都给你了
    jokester
        10
    jokester  
       2015-04-28 15:49:25 +08:00
    大爷 常来呀
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   3310 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 40ms · UTC 13:31 · PVG 21:31 · LAX 06:31 · JFK 09:31
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.