美文网首页
Docker 使用案例

Docker 使用案例

作者: darebeat | 来源:发表于2016-09-06 16:06 被阅读221次

    docker pull

    docker pull registry.hub.docker.com/ubuntu:15.04
    # 即从注册服务器 registry.hub.docker.com 中的 ubuntu 仓库来下载标记为 15.04 的镜像
    

    存出和载入镜像

    # 存出镜像
    sudo docker save -o ubuntu_14.04.tar ubuntu:14.04
    
    # 载入镜像
    sudo docker load --input ubuntu_14.04.tar
    sudo docker load < ubuntu_14.04.tar
    

    导出和导入容器

    # 导出容器
    sudo docker ps -a
    ## CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS                    PORTS               NAMES
    ## 7691a814370e        ubuntu:14.04        "/bin/bash"         36 hours ago        Exited (0) 21 hours ago                       test
    sudo docker export 7691a814370e > ubuntu.tar
    
    # 导入容器快照
    cat ubuntu.tar | sudo docker import - test/buntu:v1.0
    sudo docker import http://example.com/exampleimage.tgz example/imagerepo
    

    注:用户既可以使用 docker load 来导入镜像存储文件到本地镜像库,也可以使用 docker import来导入一个容器快照到本地镜像库。这两者的区别在于容器快照文件将丢弃所有的历史记录和元数据信息(即仅保存容器当时的快照状态),而镜像存储文件将保存完整记录,体积也要大。此外,从容器快照文件导入时可以重新指定标签等元数据信息。

    Generate base image

    1.Dockerfile

    FROM ubuntu:15.04
    
    MAINTAINER Darebeat <fengwei2010@126.com>
    # 设置时区
    ENV TZ "Asia/Shanghai"
    ENV TERM xterm
    
    ADD patch.tar.gz /
    RUN apt-get update && apt-get install -y vim curl git
    

    2.patch.tar.gz

    /etc/apt/source.list
    /bin/
        ping
        bash
        mysql 这是可执行的客户端二进制文件
    /sbin/
        ifconfig
        route
    

    3.built

    #! /bin/bash
    set -e
    if [ $(docker images|grep ubuntu|grep base|awk '{print $3}') ]; then
        docker rmi -f $(docker images|grep ubuntu|grep base|awk '{print $3}')
    fi
    docker build -t ubuntu:base .
    

    运行container

    docker run -idt --rm -p 2222:22 -P 22 --name test busybox:latest sh
    

    进入container

    docker exec -it test /bin/bash
    

    Docker容器内外互相拷贝数据

    1.用-v挂载主机数据卷到容器内

    docker run -v /path/to/hostdir:/mnt $container
    # 在容器内拷贝
    cp /mnt/sourcefile /path/to/destfile
    

    2.直接在主机上拷贝到容器物理存储系统
    3.用输入输出符

    docker run -i ubuntu /bin/bash -c 'cat > /path/to/container/file' < /path/to/host/file/  
    docker exec -it <container_id> bash -c 'cat > /path/to/container/file' < /path/to/host/file/
    

    相关文章

      网友评论

          本文标题:Docker 使用案例

          本文链接:https://www.haomeiwen.com/subject/fymdettx.html