_duck

作者: dittoyy3991 | 来源:发表于2018-06-26 15:38 被阅读16次

    英文版:https://t.co/cmXB2Clj8D
    中文版:http://v.qq.com/page/n/u/a/n0193j4ylua.html
    暂时先mark下常见命令

    service docker start
    systemctl start docker
    启动docker服务stop停止
    
    docker run -it jenkins /bin/bash
    ctrl+d
    
    - container
    docker ps -a -l查看状态
    docker inspect
    docker start -i重新启动
    docker rm删除
    
    docker exec -it id
    
    启动镜像里的容器
    docker attach xx
    docker exec -it xx /bin/bash
    ctrl+c/exit
    

    镜像(Image)
    Docker 镜像,就相当于是一个 root 文件系统。
    比如 Docker 官方镜像 ubuntu:14.04 就包含了完整的一套 Ubuntu 14.04 最小系统的 root 文件系统。
    
    容器(Container)
    镜像和容器的关系,就像是面向对象程序设计中的类和实例一样,
    镜像是静态的定义,容器是镜像运行时的实体。容器可以被创建、启动、停止、删除、暂停等
    数据卷的生存周期独立于容器,容器消亡,数据卷不会消亡。
    因此,使用数据卷后,容器可以随意删除、重新 run,数据却不会丢失
    
    仓库(Repository)
    镜像构建完成后,可以很容易的在当前宿主上运行,
    但是,如果需要在其它服务器上使用这个镜像,
    我们就需要一个集中的存储、分发镜像的服务,Docker Registry 就是这样的服务。
    
    获取镜像的命令是 docker pull img
    docker pull [选项] [Docker Registry地址]<仓库名>:<标签>
    docker pull ubuntu:14.04
    
    查看已下载的镜像docker images
    
    运行有了镜像后,我们就可以以这个镜像为基础启动一个容器来运行
    docker run -it交互式终端 --rm容器退出后随之将其删除 ubuntu:14.04指用 ubuntu:14.04 镜像为基础来启动容器 bash有个交互式 Shell
    
    定制镜像
    docker run --name jenkins -d -p 8081:8080 ubuntu
    用 ubuntu 镜像启动一个容器,命名为 jenkins,并且映射了 8081 端口,这样我们可以用浏览器去访问这个 ubuntu 服务器
    
    进入容器,修改其内容
    docker exec -it jenkins bash
    
    docker diff jenkins命令看到容器具体的改动
    
    docker commit 命令,可以将容器的存储层保存下来成为镜像
    docker commit [选项] <容器ID或容器名> [<仓库名>[:<标签>]]
    docker commit --author "ditto <969956574@qq.com>" --message "修改了jenkins欢迎页面"  jenkins ubuntu:v2
    
    docker commit 命令除了学习之外,还有一些特殊的应用场合,比如被入侵后保存现场等。
    但是,不要使用 docker commit 定制镜像,定制行为应该使用 Dockerfile 来完成
    
    docker history ubuntu:v2 具体查看镜像内的历史记录ubuntu:v2
    
    Dockerfile 是一个文本文件,其内包含了一条条的指令(Instruction),
    每一条指令构建一层,因此每一条指令的内容,就是描述该层应当如何构建
    mkdir myubuntu
    cd myubuntu/
    touch Dockerfile
    写入
    FROM ubuntu#指定基础对象
    RUN echo '<h1>HeDocker!</h1>' > /usr/share/nginx/html/index.html#执行&&串联多条命令
    && apt-get purge -y --auto-remove#清理apt缓存文件
    
    镜像构建上下文(Context)
    COPY ./package.json /app/#复制路径也可以使用通配符
    docker build -t ubuntu:v3 .#
    ADD ubuntu-xenial-core-cloudimg-amd64-root.tar.gz /# tar 压缩文件的话,压缩格式为 gzip, bzip2 以及 xz 的情况下,ADD 指令将会自动解压缩这个压缩文件到 <目标路径> 去
    CMD ["nginx", "-g", "daemon off;"]
    CMD [ "curl", "-s", "http://ip.cn" ]
    docker run myip -i
    
    docker build 命令会将该目录下的内容打包交给 Docker 引擎以帮助构建镜像。
    
    #ENV 设置环境变量
    ENV VERSION=1.0 DEBUG=on \
        NAME="Happy Feet"
    
    docker run -d -v mydata:/data xxxx#EXPOSE 声明端口
    
    WORKDIR 指令可以来指定工作目录(或者称为当前目录)
    
    docker push  dockerdemo:latest将镜像上传到服务器
    
    docker rmi [选项] <镜像1> [<镜像2> ...]删除本地镜像
    
    docker rm是删除容器
    
    <镜像> 可以是 镜像短 ID、镜像长 ID、镜像名 或者 镜像摘要
    
    docker start contaname启动已终止的容器
    docker stop 
    docker restart
    
    $ sudo docker run -d ubuntu:14.04 /bin/sh -c "while true; do echo hello world; sleep 1; done"
    -d 参数容器后台运行
    
    获取容器的输出信息,可以通过 docker logs contaname
    
    docker ps -a 查看到的 CONTAINER ID或 NAMES
    
    sudo docker run -idt xxx
    sudo docker attach xxx
    
    导出容器快照
    sudo docker export 7691a814370e > ubuntu.tar
    docker import 从容器快照文件中再导入为镜像
    cat ubuntu.tar | sudo docker import - test/ubuntu:v1.0
    
    docker-registry 是官方提供的工具,可以用于构建私有的镜像仓库
    安装运行 docker-registry
    容器中运行 docker-registry
    sudo docker run -d -p 5000:5000 registry
    
    
    

    相关文章

      网友评论

          本文标题:_duck

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