sunhk25
V2EX  ›  Docker

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

  •  
  •   sunhk25 · Apr 27, 2015 · 4623 views
    This topic created in 4105 days ago, the information mentioned may be changed or developed.
    先前,弄了两个学习用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
    问题出在哪。
    Supplement 1  ·  Apr 28, 2015
    我之前的写法不对
    cat centos-65.tar.xz | docker import - local/centos:6.5
    改成这样就可以了。
    10 replies    2015-04-28 15:49:25 +08:00
    sunhk25
        1
    sunhk25  
    OP
       Apr 27, 2015
    # 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  
       Apr 27, 2015   ❤️ 1
    tar -c不是创建tar吗? 你确定是在 (b) import (/b) 一个tar?
    sunhk25
        3
    sunhk25  
    OP
       Apr 27, 2015
    @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  
       Apr 27, 2015   ❤️ 1
    @sunhk25
    顶楼的话我理解为”现在(已经)有一个项目的docker tar文件"

    `tar -c | docker import` 这个命令做的事情是把当前目录的内容做成一个新的tar 然后导入成image
    从已有tar文件导入的例子是"Import from a local file"
    sunhk25
        5
    sunhk25  
    OP
       Apr 27, 2015
    @jokester
    好的,我Import tar成功 docker images也可以看到。
    问题是不知如何run起来这个容器,
    jokester
        6
    jokester  
       Apr 27, 2015   ❤️ 1
    "成功"不是docker import没报错
    是这个新image确实包含了你想要import的内容
    如果不包含 折腾run的意义在哪
    sunhk25
        7
    sunhk25  
    OP
       Apr 28, 2015
    @jokester
    谢谢,我之前的写法不对
    cat centos-65.tar.xz | docker import - local/centos:6.5
    改成这样就可以了。
    jokester
        8
    jokester  
       Apr 28, 2015   ❤️ 1
    不要只口头谢呀 给钱呀
    sunhk25
        9
    sunhk25  
    OP
       Apr 28, 2015
    能给的都给你了
    jokester
        10
    jokester  
       Apr 28, 2015
    大爷 常来呀
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   1393 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 25ms · UTC 23:58 · PVG 07:58 · LAX 16:58 · JFK 19:58
    ♥ Do have faith in what you're doing.