zoukankan      html  css  js  c++  java
  • Docker 命令和运行原理简单剖析

    Docker 运行原理简单剖析

    Docker是CS架构,Docker的守护进程运行在主机,通过socket从客户端进行访问.
    Docker server端:接受到C端指令,执行命令

    Docker常用命令

    1. 帮助命令
      docker version #显示版本号
      docker info #显示系统信息,包括镜像和容器数量等
      docker --help #帮助命令
      docker save #镜像备份 针对镜像或者tar包
      docker load #镜像备份加载 针对镜像或者tar包

    2. 镜像命令

    • docker images 查看dokcer上的所有镜像命令

      Options:
      -a, --all Show all images (default hides intermediate images)
      --digests Show digests
      -q, --quiet Only show image IDs
      -f, --filter filter Filter output based on conditions provided
      --format string Pretty-print images using a Go template
      --no-trunc Don't truncate output
      其中-f不太用,a和q比较常用,也可以组合起来使用,输出所有的镜像id;
      过滤标志-f or –filter格式为key=value。如果超过一个过滤,那么就传递多个标志[如–filter “foo=bar” –filter “bif=baz”]。
      目前支持的过滤有:
      dangling [布尔值 true或false]
      label (label=或label==)
      before ([:], or ) – 过滤出指定镜像之前的镜像
      since ([:], or ) – 过滤出指定镜像之后的镜像

    • docker search 搜索命令

      -f, --filter filter Filter output based on conditions provided
      --format string Pretty-print search using a Go template
      --limit int Max number of search results (default 25)
      --no-trunc Don't truncate output
      例:docker search mysql -f stars=5000

    • docker pull 拉取 下载命令, 也可以docker pull 镜像名字:tag 选择固定版本的镜像,版本需要网页上去看,支持哪些版本

      例:docker pull mysql:5.7
      Options:
      -a, --all-tags Download all tagged images in the repository
      --disable-content-trust Skip image verification (default true)
      --platform string Set platform if server is multi-platform capable
      -q, --quiet Suppress verbose output

    • docker rmi 删除镜像

      例:docker rmi 容器ID1 容器ID2,也可以在-f后加其他运算条件的参数,例:docker rmi -f $(docker images -aq) 把所有的docker id传到$()这个变量接收器中,删除所有!!
      

      Options:
      -f, --force Force removal of the image
      --no-prune Do not delete untagged parents

    • docker ps 查看容器进程

      Options:
        -a, --all             Show all containers (default shows just running)也可以看到历史记录
        -f, --filter filter   Filter output based on conditions provided
            --format string   Pretty-print containers using a Go template
        -n, --last int        Show n last created containers (includes all states) (default -1)
        例: docker ps -an=1
        -l, --latest          Show the latest created container (includes all states)
            --no-trunc        Don't truncate output
        -q, --quiet           Only display container IDs
        -s, --size            Display total file sizes
      
    • docker tag 给镜像创建一个tag标签

      不会对原来镜像有更改,会重新创建一个镜像使用新的tag

    • docker login进行登陆 先-u 在输入密码

      Options:
      -p, --password string Password
      --password-stdin Take the password from stdin
      -u, --username string Username

    • docker push进行发布 发布的时候尽量带自己的tag版本信息

      Options:
      -a, --all-tags Push all tagged images in the repository
      --disable-content-trust Skip image signing (default true)
      -q, --quiet Suppress verbose output

    1. 容器命令
      说明:有了镜像才创建容器,开始下载一个linux
      docker pull centos:tag
    • 新建容器并启动

      docker run [可选参数] image

      参数说明
      --name="name" 容器名字 tomacat
      -d 后台方式运行
      -it 使用交互方式运行,进入容器查看内容
      -P 指定容器的端口 -p 8080:8080 还可以设置端口映射
      -p 随机指定端口
      例:docker run -it centos /bin/bash
      docker run -it --rm tomcat:9.0
      在run里面加入--rm,可以让容器运行后就自行删除,通常用于测试环境
      例:docker run -it --name tomcat01 -p 3344:8080 tomcat /bin/bash

    • 退出容器

      exit #直接退出容器
      Ctrl+p+q #容器不退出

    • 删除容器

      docker rm 容器id #不能删除正在运行的容器
      docker rm -f $(docker ps -aq) #强制删除所有容器包括正在运行的
      docker ps -a -q|xrags docker rm #删除所有容器包括正在运行的

    • 启动和停止容器的操作

      docker start 容器id
      docker restart 容器id
      docker stop 容器id
      docker kill 容器id

    • 后台启动容器

      docker run -d 容器名称/id
      注意点 docker ps 发现centos停止了
      docker容器使用后台运行,就必须要有一个前台进程,否则docker发现没应用就会自动停止
      nginx 容器启动后,发现没有提供服务,就会立刻停止

    • 显示日志

      docker logs -ft
      我们可以用--tail 10 查看历史记录, 比如我们docker run -d centos /bin/bash -c "while true;do echo kuang;sleep 1;done" 让他每一秒输出 haha
      然后可以用docker logs -ft --tail 10 容器id 可以查看到最后面10行的运行记录

    • 查看容器进程信息

      docker top 容器id

    • 查看容器元信息

      docker inspect 容器id
      例:docker inspect 958fe6a7db8b

    • 进入正在运行的容器

      方式1:docker exec -it 容器id
      例:docker exec -it 958fe6a7db8b /bin/bash

      方式2:docker attach-it 容器id
      例:docker attach 958fe6a7db8b
      区别exec 进入容器后重新开启一个终端,而attach 是进入之前那个终端.

    • 容器内文件复制到主机

      docker 容器文件拷贝不需要容器运行,只要容器在,数据就可以复制,哪怕没有运行
      docker cp 容器id:容器内路径 目的路径
      例:docker cp 6556856f5e9d:/home/rongqinei/rongqinei.py /bin



  • 相关阅读:
    闭包
    this
    函数声明,表达式,构造函数
    算法学习_栈
    LeetCode刷题_140
    2020/3/20 刷题
    2020/3/19 刷题
    2020/3/13_C++实验课
    刷题(主要是DFS) 2020年3月12日
    DFS的一些题2020/3/11
  • 原文地址:https://www.cnblogs.com/Young-shi/p/14952398.html
Copyright © 2011-2022 走看看