美文网首页
Docker cheatsheet

Docker cheatsheet

作者: L1nkM3 | 来源:发表于2018-10-01 17:28 被阅读19次

    Mainly summarized from docker for beginners. So very simple

    Docker概念

    • 镜像(Image):
      相当于蓝图,是构建的容器的基础。docker pull下载的就是镜像。
    • 容器(Container):
      实例化的镜像,docker run创建的就是容器
    • Docker守护进程(Docker Daemon):
      在主机上用于管理、运行和分发Docker容器的后台服务。用于客户端与操作系统交互
    • Docker客户端(Docker Client):
      用于与Docker Daemon交互的Docker命令行工具或其他客户端程序
    • Docker Hub:
      一个Docker Images的registry(一个存储了各种docker镜像的目录),可以在上面维护自己的docker镜像或从上面拉取镜像

    Docker CheatSheet

    镜像

    • 查看镜像
    docker images
    #------------------------------------------------------------------------------- 
    # -q: 如果指定,则只显示镜像id
    # -a: 如果指定,显示所有镜像
    # -f: 用于筛选镜像
    
    • 拉取镜像
    docker pull l1nkm3/ubuntu_pwn:17.10
    #------------------------------------------------------------------------------- 
    # l1nkm3: 仓库所有者
    # ubuntu_pwn: 仓库名
    # 17.10: 标签
    
    • 运行镜像
    docker run -it -p 8080:1234 l1nkm3/ubuntu_pwn:17.10 /bin/sh 
    #------------------------------------------------------------------------------- 
    # -it: 附加到一个交互式的终端
    # -p 8080:1234: 将容器中的8080端口转发到本地的1234端口
    # /bin/sh: 运行完该命令后退出
    
    docker run --rm l1nkm3/ubuntu_pwn:17.10 /bin/sh 
    #------------------------------------------------------------------------------- 
    # --rm: docker容器退出后直接删除
    
    docker run -d -P --name static-site prakhar1989/static-site
    #------------------------------------------------------------------------------- 
    # -d: 运行后脱离(detach)
    # -P: 将容器所有暴露出来的端口映射到随机的宿主机端口上,之后可以用docker port查看
    # --name: 为容器指定名字,之后可以使用名字而不是id
    
    docker run -v /tmp:/share ubuntu:17.10
    #------------------------------------------------------------------------------- 
    # -v /tmp:/share 将主机的/tmp目录挂载到容器的/share目录
    
    • 查看端口映射
    docker port static-site
    
    • 删除镜像
    docker rmi 305297d7a235
    

    容器

    • 查看容器
    docker ps -a
    #------------------------------------------------------------------------------- 
    # -a: 指定后列出所有容器,否则列出正在运行的容器
    
    docker ps -a -q -f status=exited
    #------------------------------------------------------------------------------- 
    # -q: 只列出容器id
    # -f status=exited: 状态为exited的容器。-f筛选满足条件的容器
    
    • 启动容器
    docker start -a hello-world
    #------------------------------------------------------------------------------- 
    # -a: 指定后附加到该容器
    
    • 停止容器
    docker stop ff0a5c3750b9
    #------------------------------------------------------------------------------- 
    # -t n: 等待n秒后停止,默认10秒
    
    • 删除容器
    docker rm 305297d7a235 ff0a5c3750b9
    #------------------------------------------------------------------------------- 
    # 305297d7a235与ff0a5c3750b9: 容器的id,可以是唯一前缀
    
    • 删除满足条件的容器
    docker rm $(docker ps -a -q -f status=exited)
    #------------------------------------------------------------------------------- 
    # -q: 只列出容器id
    # -f status=exited: 状态为exited的容器。-f筛选满足条件的容器
    
    docker container prune
    #------------------------------------------------------------------------------- 
    # 与上一条指令作用相同
    

    Docker 网络

    • 查看网络
    docker network ls
    
    docker network inspect c2c695315b3a
    
    • 创建网络
    docker network create new_network
    
    • 在网络下运行镜像容器
    docker run --net new_network ubuntu:17.10
    
    • 删除网络
    docker network rm new_network
    

    Dockerfile

    # 指定基础镜像
    FROM l1nkm3/ubuntu_pwn:17.10
    
    # optional,说明维护者,最好加上联系方式
    MAINTAINER L1nkM3 
    
    # 设置环境变量
    ENV VERSION=0.1
    
    # 执行指令
    RUN echo "run command with RUN"
    # 也可以写成
    RUN ["echo", "\"run command with RUN\""]
    
    # 暴露端口
    EXPOSE 9981
    
    # 指定接下来指令的工作路径
    WORKDIR /tmp
    
    # 指定接下来的用户
    USER root
    
    # 默认命令
    CMD /bin/sh
    
    # 入口命令,-i 参数传给这条指令
    ENTRYPOINT ls
    
    # 拷贝文件
    COPY /etc/passw* /tmp
    

    相关文章

      网友评论

          本文标题:Docker cheatsheet

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