精华内容
下载资源
问答
  • docker命令行大全

    2019-09-03 10:51:22
    docker命令行 docker命令行帮助 使用docker或docker --help查看docker命令行帮助 [root@kane ~]# docker --help Usage: docker [OPTIONS] COMMAND A self-sufficient runtime for containers Options: --...

    docker命令行

    docker命令行帮助

    使用dockerdocker --help查看docker命令行帮助

    [root@kane ~]# docker --help
    
    Usage:	docker [OPTIONS] COMMAND
    
    A self-sufficient runtime for containers
    
    Options:
          --config string      Location of client config files (default "/root/.docker")
      -c, --context string     Name of the context to use to connect to the daemon (overrides DOCKER_HOST env var and default
                               context set with "docker context use")
      -D, --debug              Enable debug mode
      -H, --host list          Daemon socket(s) to connect to
      -l, --log-level string   Set the logging level ("debug"|"info"|"warn"|"error"|"fatal") (default "info")
          --tls                Use TLS; implied by --tlsverify
          --tlscacert string   Trust certs signed only by this CA (default "/root/.docker/ca.pem")
          --tlscert string     Path to TLS certificate file (default "/root/.docker/cert.pem")
          --tlskey string      Path to TLS key file (default "/root/.docker/key.pem")
          --tlsverify          Use TLS and verify the remote
      -v, --version            Print version information and quit
    
    Management Commands:
      builder     Manage builds
      config      Manage Docker configs
      container   Manage containers
      context     Manage contexts
      engine      Manage the docker engine
      image       Manage images
      network     Manage networks
      node        Manage Swarm nodes
      plugin      Manage plugins
      secret      Manage Docker secrets
      service     Manage services
      stack       Manage Docker stacks
      swarm       Manage Swarm
      system      Manage Docker
      trust       Manage trust on Docker images
      volume      Manage volumes
    
    Commands:
      attach      Attach local standard input, output, and error streams to a 	
      # [...]
    

    使用docker [Management Command] --help 可以获得下级管理命令帮助

    [root@kane ~]# docker image --help
    
    Usage:	docker image COMMAND
    
    Manage images
    
    Commands:
      build       Build an image from a Dockerfile
      history     Show the history of an image
      import      Import the contents from a tarball to create a filesystem image
      inspect     Display detailed information on one or more images
      load        Load an image from a tar archive or STDIN
      ls          List images
      prune       Remove unused images
      pull        Pull an image or a repository from a registry
      push        Push an image or a repository to a registry
      rm          Remove one or more images
      save        Save one or more images to a tar archive (streamed to STDOUT by default)
      tag         Create a tag TARGET_IMAGE that refers to SOURCE_IMAGE
    
    Run 'docker image COMMAND --help' for more information on a command.
    

    使用docker [Management Command] [Command] --help获得具体的命令行帮助

    [root@kane ~]# docker image pull --help
    
    Usage:	docker image pull [OPTIONS] NAME[:TAG|@DIGEST]
    
    Pull an image or a repository from a registry
    
    Options:
      -a, --all-tags                Download all tagged images in the repository
          --disable-content-trust   Skip image verification (default true)
      -q, --quiet                   Suppress verbose output
    

    注意: 根据系统配置不同,你可能需要在每个docker命令前加上sudo

    环境变量

    为了便于参考,docker命令支持如下的环境变量

    变量名 描述
    DOCKER_API_VERSION 要使用的API版本(例如1.19)
    DOCKER_CONFIG 客户端配置文件的位置。
    DOCKER_CERT_PATH 身份验证密钥的位置。
    DOCKER_CLI_EXPERIMENTAL 启用cli的实验功能(例如enabled或disabled)
    DOCKER_DRIVER 要使用的图形驱动程序。
    DOCKER_HOST 要连接的守护进程套接字。
    DOCKER_NOWARN_KERNEL_VERSION 防止警告您的Linux内核不适合Docker。
    DOCKER_RAMDISK 如果设置,这将禁用’pivot_root’。
    DOCKER_STACK_ORCHESTRATOR 配置使用docker stack管理命令时要使用的默认协调器。
    DOCKER_TLS 设置Docker时使用TLS。
    DOCKER_TLS_VERIFY 设置Docker时使用TLS并验证远程。
    DOCKER_CONTENT_TRUST 当设置Docker使用公证人签名并验证图像时。在build, create, pull, push, run上等同--disable-content-trust=false
    DOCKER_CONTENT_TRUST_SERVER 要使用的公证服务器的URL。默认为与注册表相同的URL。
    DOCKER_HIDE_LEGACY_COMMANDS 设置后,Docker会在输出中隐藏“遗留”顶级命令(例如docker rm,和 docker pull)docker help,并且仅打印Management commands每个对象类型(例如docker container)。这可能成为未来版本中的默认设置,此时将删除此环境变量。
    DOCKER_TMPDIR 临时Docker文件的位置。
    DOCKER_CONTEXT 指定要使用的上下文(覆盖DOCKER_HOST env var和使用“docker context use”设置的默认上下文)
    DOCKER_DEFAULT_PLATFORM 为带有–platform标志的命令指定默认平台。

    docker基本命令(加粗为常用)

    基本的docker命令,未根据模块分类,有些混乱,可以点击下放连接进入官方文档查看分类后的命令

    命令 描述
    docker attach 将本地标准输入,输出和错误流附加到正在运行的容器
    docker build 从Dockerfile构建镜像
    docker builder 管理构建
    docker checkpoint 管理检查点
    docker commit 根据容器更改创建新的镜像
    docker config 管理Docker配置
    docker container 管理容器
    docker context 管理上下文
    docker cp 在容器和本地文件系统之间拷贝文件或文件夹
    docker create 创建一个新的容器
    docker deploy 部署一个新的stack或升级一个已经存在的stack
    docker diff 检查容器的文件系统的文件或目录的更改
    docker engine 管理docker引擎
    docker events 从服务器获取实时事件
    docker exec 在正在运行的容器中运行命令行(不需要进入容器)
    docker export 将容器的文件系统导出为tar存档
    docker history 显示docker镜像的历史记录
    docker image 管理docker镜像
    docker images 列出docker镜像
    docker import 从tarball导入内容以创建文件系统映像
    docker info 显示系统范围的信息
    docker inspect 返回有关Docker对象的低等级信息
    docker kill 杀死一个或多个正在运行的容器(一般的,应使用docker stop终止容器)
    docker load 从tar存档或STDIN加载图像
    docker login 登录Docker registry注册服务器
    docker logout 从Docker registry注册服务器注销
    docker logs 获取容器的日志
    docker manifest 管理Docker镜像清单和清单列表
    docker network 管理网络
    docker node 管理Swarm节点
    docker pause 暂停一个或多个容器中的所有进程
    docker plugin 管理插件
    docker port 列出端口映射或容器的特定映射
    docker ps 列出容器
    docker pull 从注册服务器拉取镜像或镜像仓库
    docker push 将镜像或镜像仓库推送至注册服务器
    docker rename 重命名一个容器
    docker restart 重启一个或多个容器
    docker rm 删除一个或多个容器
    docker rmi 删除一个或多个镜像
    docker run 在一个新容器运行命令
    docker save 将一个或多个镜像保存到tar存档(默认情况下流式传输到STDOUT)
    docker search 在Docker Hub中搜索镜像
    docker secret 管理Docker的加密信息
    docker service 管理服务
    docker stack 管理docker stack
    docker start 启动一个或多个已停止的容器
    docker stats 显示容器资源使用情况统计信息的实时流
    docker stop 停止一个或多个正在运行的容器
    docker swarm 管理Swarm
    docker system 管理Docker
    docker tag 创建一个引用SOURCE_IMAGE的标记TARGET_IMAGE
    docker top 显示容器的运行进程
    docker trust 管理对Docker镜像的信任
    docker unpause 取消暂停一个或多个容器中的所有进程
    docker update 更新一个或多个容器的配置
    docker version 显示Docker版本信息
    docker volume 管理数量
    docker wait 阻止,直到一个或多个容器停止,然后打印退出代码

    docker容器命令

    语法: docker container COMMAND

    命令 描述
    docker container attach 将本地标准输入,输出和错误流附加到正在运行的容器
    docker container commit 基于容器创建新镜像
    docker container cp 在容器和本地文件系统之间拷贝文件或文件夹
    docker container create 创建一个新容器
    docker container diff 检查容器文件系统上文件或目录的更改
    docker container exec 在正在运行的容器中运行命令
    docker container export 将容器的文件系统导出为tar存档
    docker container inspect 显示一个或多个容器的详细信息
    docker container kill 杀死一个或多个正在运行的容器
    docker container logs 获取容器的日志
    docker container ls 列出容器
    docker container pause 暂停一个或多个容器中的所有进程
    docker container port 列出端口映射或容器的特定映射
    docker container prune 删除所有已停止的容器
    docker container rename 重命名容器
    docker container restart 重新启动一个或多个容器
    docker container rm 删除一个或多个容器
    docker container run 在新容器中运行命令
    docker container start 启动一个或多个已停止的容器
    docker container stats 显示容器资源使用情况统计信息的实时流
    docker container stop 停止一个或多个正在运行的容器
    docker container top 显示容器的运行进程
    docker container unpause 取消暂停一个或多个容器中的所有进程
    docker container update 更新一个或多个容器的配置
    docker container wait 阻止,直到一个或多个容器停止,然后打印退出代码

    docker其它命令连接

    展开全文
  • docker命令行大全详解(更新中)

    万次阅读 多人点赞 2018-10-16 11:06:41
    本文是基于docker v18.03 稳定版基础来整理翻译 docker命令集 命令 说明 容器生命周期管理 run 运行镜像 容器操作 容器文件系统操作 镜像仓库操作 镜像管理 其他命令 run命令 dockerd...

    本文是基于docker v18.03 稳定版基础来整理翻译

    docker命令集

    命令 说明
    容器生命周期管理
    run 创建一个新容器并运行
    start 开启一个容器并使其在后台运行
    stop 停止一个容器
    restart 重启一个容器
    kill 杀掉一个容器进程
    rm 删除容器
    pause 暂停容器
    unpause 恢复暂停容器
    create 从镜像中创建一个容器
    exec 对一个容器执行shell命令
    容器操作
    ps 列出容器
    inspect 获取容器或镜像的元数据
    top 查看正在运行中的容器进程信息
    attach 链接正在运行的容器
    events 从docker服务器获取事件
    logs 获取docker日志
    wait 让一个容器进入等待,使其进入阻塞状态
    export 讲一个容器的文件系统打包至tar
    port 列出一个容器的端口映射情况
    container 管理已经运行的容器的
    deploy 部署新的堆栈或更新已有堆栈的
    update 更新容器
    rename 重命名容器
    volume 卷管理
    容器文件系统操作
    commit 提交一个容器的文件系统,使之生成一个新的镜像
    cp 向一个正在运行的容器复制文件,或将容器中的文件复制出来
    diff 检查一个容器文件系统更改情况
    镜像仓库操作
    login docker登入
    logout docker登出
    pull 拉取镜像
    push 推送镜像至服务器
    search 在docker hub上查询镜像
    镜像管理
    images 列出镜像
    rmi 删除镜像
    tag 修改本地某一镜像的标记,使其镜像属于某一仓库
    build 通过指定Dockerfile文件编译镜像
    history 查看镜像历史
    save 将制定镜像保存成tar文件
    load 从tar中恢复镜像
    import 从tar中创建一个新镜像
    checkpoint 设置checkpoint,类似于恢复点,可以让镜像撤销到曾经设置的某一个checkpoint上
    image docker镜像管理
    manifest docker镜像清单管理
    trust docker可信镜像管理
    集群管理
    swarm docker集群管理工具
    node docker集群节点控制
    stack docker集群堆栈管理
    其他命令
    info 查询docker信息
    version 查询docker版本
    system docker系统管理
    stats docker容器资源使用统计
    config 管理docker配置
    network docker网络管理
    plugin docker插件管理
    secret docker敏感信息管理
    service docker服务管理

    run命令

    docker run命令是创建一个新容器并运行,若本地不存在该容器镜像会直接去镜像仓库中查找并自动下载。


    语法:

    docker run [OPTIONS] IMAGE [COMMAND] [ARG...]
    

    命令参数说明:

    参数名 默认 说明 特殊示例
    –add-host 为容器添加一个host to ip的映射关系,可以添加若干个,且容器重启后不会消失。若直接修改容器中的/etc/hosts文件,容器重启后会消失 docker run –add-host localhost:127.0.0.1 ubuntu:latest
    --attach(-a) 将容器的stdin,stdout,stderr【标准输入,标准输出,错误输出】关联到本地shell中,在执行docker run时,将所有输入输出指定到本地shell中,若执行时携带此参数,可以指定将stdin,stdout,stderr的某一个或某几个关联到本地shell
    --blkio-weight 0 限制容器读写权重,当宿主机有1个以上容器时,可以设置容器的读写优先权,权重值在10~1000之间,0为关闭权重(该参数默认为0)
    --blkio-weight-device 0 设置针对指定设备的权重,权重值在10~1000之间,且优先级高于blkio.weight docker run --blkio-weight-device "/dev/sda:100" ubuntu:latest
    --cap-add 增强linux能力,在docker容器内限制了大部分的linux能力,在之前,需要开启这些功能需要结合--privileged开启特权模式才能使用这些参数,考虑到安全性,可以通过该参数来开启指定的linux功能【默认开启的功能及全部定义详见docker runc】,若参数为all则默认开启所有linux能力
    --cap-drop 移除linux能力
    --cgroup-parent 配置容器的控制组,继承该控制组的资源限制模式。扩展阅读:linux cgroup
    --cidfile 创建一个容器,并将该容器的pid输出到某一文件中,若该文件存在,则会返回一个错误 docker run --cidfile /tmp/docker_test.cid ubuntu echo "test"
    --cpu-count 0 设置容器cpu数量仅限Windows版本
    --cpu-percent 0 设置容器CPU使用百分比仅限Windows版本
    --cpu-period 0 与参数--cpu-quota配合使用,用于设定cpu从新分配资源的时间周期,时间周期结束后,会对cpu进行重新分配。
    --cpu-quota 0 与参数--cpu-period配合使用,用于设定该容器在资源分配周期内占用cpu的时间,若容器设定--cpu-quota=1000000 --cpu-period=500000,则该容器在这个时间周期内权重为50%,这两个参数主要是提升宿主机内某一容器的权重比,可以用来解决宿主机内若干容器的资源抢占导致重要容器cpu性能不足的场景。该模式应用于Linux 的CFS模式,扩展阅读:完全公平调度程序(CFS)
    --cpu-rt-period 0 --cpu-period的微秒版
    --cpu-rt-runtime 0 在一个cpu资源分配周期内,优先保证某容器的cpu使用的最大微秒数。例如,默认周期为 1000000 微秒(1秒),设置 --cpu-rt-runtime=950000 可确保使用实时调度程序的容器每 1000000 微秒可运行 950000 微秒,并保留至少 50000 微秒用于非实时任务。
    --cpu-shares(-c) 0 设置容器CPU权重,可以用于调整容器在单位分配周期内的资源优先使用比
    --cpus 设置容器使用cpu的数量,该参数为1.3新增参数用于快速设置容器对于cpu的占用,例如示例,可以直接设置该容器使用多少cpu docker run --cpus=".5" ubuntu:latest
    --cpuset-cpus 设置容器允许在哪个cpu上执行该进程,譬如--cpuset-cpus="1,3"为指定在cpu 1 和cpu 3上执行,--cpuset-cpus="0-2"为指定在cpu0,cpu1,cpu2上执行 docker run --cpuset-cpus="1,3" ubuntu:latest
    docker run --cpuset-cpus="0-2" ubuntu:latest
    --cpuset-mems 同参数--cpuset-cpus,但该参数是作用于NUMA 架构的 CPU docker run --cpuset-mems="1,3" ubuntu:latest
    docker run --cpuset-mems="0-2" ubuntu:latest
    --detach(-d) false 指定该容器运行于前台还是后台
    --detach-keys 设置容器的键盘映射键位,在容器被链接到前台时,若宿主机的键盘键位与容器键位冲突,可以使用该指令对容器的键位进行重新映射
    --device 将宿主机的设备映射至容器
    --device-cgroup-rule 将宿主机的设备添加到cgroup规则列表中
    --device-read-bps 以字节数/每秒的形式限制设备的读取速率 docker run --device-read-bps /dev/sda:100KB ubuntu:latest
    --device-read-iops 以每秒所执行IO操作的次数的形式限制设备的读取速率 docker run --device-read-iops /dev/sda:10 ubuntu:latest
    --device-write-bps 以字节数/每秒的形式限制设备的写入速率
    --device-write-iops 以每秒所执行IO操作的次数的形式限制设备的写入速率
    --disable-content-trust true 忽略镜像的校验
    --dns 指定容器使用的DNS服务器,默认和宿主一致
    --dns-opt 设置DNS选项,同修改/etc/resolv.conf文件
    --dns-option 设置DNS选项,同修改/etc/resolv.conf文件
    --dns-search 指定容器DNS搜索域名,默认和宿主一致
    --entrypoint 覆盖Dockerfile中设置的entrypoint命令
    --env(-e) 设置/新增环境变量
    --env-file 读取本地环境变量文件,并加载到容器中
    --expose 开放一个端口或一组端口
    --group-add 为容器添加用户组
    --health-cmd 执行一个健康检查命令
    --health-interval 0 配合--health-cmd参数,设置健康检查的执行的间隔时间(ms | s | m | h)
    --health-retries 0 配合--health-cmd参数,设置健康检查命令失败重试的次数
    --health-start-period 0 配合--health-cmd参数,设置健康检查的启动时间(ms | s | m | h)
    --health-timeout 0 配合--health-cmd参数,设置健康检查命令超时时间(ms | s | m | h)
    --help false 帮助
    --hostname(-h) 指定容器的hostname
    --init false 使用tini工具在容器中新增一个守护进程,来预防该容器出现僵尸进程的可能性
    --interactive (-i) false 以交互模式运行容器,并将容器的STDIN(标准输入)打开,通常与参数--tty (-t)配合使用
    --io-maxbandwidth 0 限制容器IO最大速率仅限Windows版本
    --io-maxiops 0 以每秒所执行IO操作的次数的形式限制设备的读取速率仅限Windows版本
    --ip 设置容器的IPv4地址
    --ip6 设置容器的IPv6地址
    --ipc 启用ipc命名空间。在docker容器中进程交互采用了Linux常见的进程间交互方法(interprocess communication - IPC), 包括信号量、消息队列和共享内存等。容器的进程间交互实际上还是host上具有相同pid命名空间中的进程间交互,因此需要在IPC资源申请时加入命名空间信息,每个IPC资源有一个唯一的32位id。
    --isolation 使用容器隔离。该参数拥有三个值
    (1)default 即与使用dockerd --exec-opt的参数默认效果相同
    (2)process 使用linux内核命名空间进行隔离,该参数不支持windows环境。
    (3)使用微软的Hyper-V虚拟技术进行隔离,该参数仅限windows环境
    --kernel-memory 0 限制该容器内核的内存使用
    --label (-l) 设置该容器的元数据
    --label-file 通过本地文件导入元数据至该容器
    --link 指定容器间的关联,使用其他容器的IP、env等信息
    --link-local-ip 设置本地链路地址(link-local address)ip
    --log-driver 设置一个指定日志接受工具,用于动态收集日志。扩展阅读日志处理与log-driver实现
    --log-opt 配合参数--log-driver使用,用于设置日志输出参数
    --mac-address 设置该容器mac地址
    --memory -m 0 限制该容器内存使用
    --memory-reservation 0 软限制该容器的内存使用,当宿主机内存空闲时,该容器的内存使用可以一定比例超出限制,但当宿主机内存紧张时,会强制该容器内存使用限制在该参数之内
    --memory-swap 0 内存交换分区大小限制。配合参数--memory使用,且最小内存交换限制应该大于内存限制。该参数有4种情况:
    (1)不设置--memory与该参数:则该容器默认可以用完宿舍机的所有内存和 宿主机 swap 分区。
    (2)设置--memory 50MB 不设置--memory-swap(默认为0):则--memory-swap值等于限制内存大小,即该容器能够申请的最大内存为100MB。
    (3)设置--memory 50MB --memory-swap为-1:则该容器最大可以申请的内存为50MB+宿主机swap分区大小
    (4)设置--memory 50MB --memory-swap 100MB:则该容器可以申请的最大内存为100MB-50MB=50MB
    --memory-swappiness -1 用于调整虚拟内存的控制行为,为0~100之间的整数。在linux内存管理中,将内存中不活跃的页交换至硬盘中,以缓解内存紧张,该参数设置为0则认定该容器所有内存中的内容均不允许交换至硬盘,用以保障最大性能,若设置为100,则认为该容器所有内存中的数据均可以交换至硬盘。扩展阅读Linux内存管理
    --mount 将文件系统挂载附加到容器
    --name 设置该容器的名称
    --net 将容器连接到网络,支持bridge/host/none/container四种类型
    --net-alias 设置该容器在网络上的别名
    --network 将容器连接到网络,支持bridge/host/none/container四种类型
    --network-alias 设置该容器在网络上的别名
    --no-healthcheck false 禁止一切健康检查行为
    --oom-kill-disable false 设置是否禁止oom kill行为,若该容器因为需要大量请求内存,导致宿主机内存不足或触发到内存限制,导致杀死该容器进程,若设置该参数为true则会关闭这个检查
    --oom-score-adj 0 调整主机的OOM首选项(从-1000到1000)此处需要注意的是,非专业人士docker官方是不建议用户修改--oom-score-adj--oom-kill-disable这两个参数的
    --pid 自定义设置该容器的pid
    --pids-limit 0 该参数值为整数,为限制该容器所能创建的最大进程数。
    --privileged false 在该容器上开启特权模式,让该容器拥有所有的linux能力
    --publish -p 将容器的端口映射到宿主机上 docker run -p 8000:8000 ubuntu
    --publish-all (-P) false 将该容器的所有端口均随机映射至宿主机
    --read-only false 设置该容器只读
    --restart no 在退出该容器时重启该容器
    --rm false 当退出该容器时自动删除该容器资源
    --runtime 指定该容器关联一个runtime的容器,在使用该参数时注意runtime specified必须在dockerd --add-runtime注册过。扩展阅读什么是容器的runtimeDocker、Containerd、RunC之间的进程关系
    --security-opt 设置安全属性,在windows上使用CredentialSpec模块来执行身份识别。
    --shm-size 0 设置/dev/shm/目录的大小
    --sig-proxy true 代理进程所接收的所有字符,当指定--sig-proxy=false时,ctrl+c和ctrl+d 不会传递信号给docker进程而关闭容器。
    --stop-signal SIGTERM 停止带有信号的容器,在linux环境下输入kill -l,就可以看到所有信号名称,可以指定容器发出某种信号时停止该容器,譬如SIGKILL
    --stop-timeout 0 设置容器调用命令超时后自动退出。该参数可以设置容器在调用命令时导致超时后多少秒退出,0为永远不退出,该参数单位为秒
    --storage-opt 设定该容器的存储空间,可以分别指定dm.basesize、dm.loopdatasize、dm.loopmetadatasize等项,指定单个容器可用数据空间、docker可用数据空间、元数据可用数据空。 docker run --storage-opt dm.basesize=20G ubuntu
    --sysctl map[] 修改内核参数,对应修改容器中的/etc/sysctl.conf文件
    --tmpfs 指定挂载一个tmpfs目录,tmpfs是一种虚拟内存文件系统。可以不经由镜像直接创建一个容器 docker run -d --tmpfs /run:rw,noexec,nosuid,size=65536k my_image
    --tty (-t) false 为容器重新分配一个伪输入终端,通常与参数--interactive (-i)同时使用
    --ulimit 设置容器的ulimit选项,扩展阅读ulimit命令
    --user (-u) 在该容器下添加新用户
    --userns 指定该容器运行在指定host user namespace中
    --uts 使用uts命名空间。扩展阅读Linux命名空间入门
    --volume (-v) 在该容器下挂载新卷
    --volume-driver 挂载一个卷容器,该卷可以是一个本地共享卷或者一个远程服务,配合docker volume create命令创建一个卷
    --volumes-from 可以将任意文件夹反挂载到卷中,从而快速实现对该容器的备份与迁移。 docker run --rm --volumes-from dbstore -v $(pwd):/backup ubuntu tar cvf /backup/backup.tar /dbdata
    --workdir (-w) 指定容器的工作目录与Dockerfile中的WORKDIR作用相同

    start命令

    docker start是用于启动容器的命令


    语法:

    docker start [OPTIONS] CONTAINER [CONTAINER...]
    

    命令参数说明:

    参数名 默认 说明 特殊示例
    --attach(-a)
    --checkpoint
    --checkpoint-dir
    --detach-keys
    --interactive(-i)

    dockerd命令集

    展开全文
  • + + + + + + + + + 在这个云计算横行的时代,作为一个运维人,如果说你不知道docker为何物,可能会闹出不少笑话。不过不用担心!当你看到这些文字的时候这些是注定不会发生的,因为接下来你将了解到docker核心软件--...

    1948c30b316f6b599a9fc130312816b0.png

    f5c8d8a491da75e5ae3092c98fc6bda0.png

    +   +   +   +   +   +   +   +   +

        在这个云计算横行的时代,作为一个运维人,如果说你不知道docker为何物,可能会闹出不少笑话。不过不用担心!当你看到这些文字的时候这些是注定不会发生的,因为接下来你将了解到docker核心软件----docker引擎.

    +   +   +   +   +   +   +   +   +

    docker 引擎

    基于开放容器计划(OCI)相关标准的要求,Docker引擎采用了模块化的设计原则,其组件是可替换的。Docker 引擎由如下主要的组件构成: Docker 客户端( Docker Client )、Docker 守护进程( Docker daemon )、containerd 以及runc。它们共同负责容器的创建和运行。

    074506be99b4e1e125dd4dd84bef910e.png

    074359312449d2d82d14423d0a585bab.png

    runc

    runc实质上是一个轻量级的、针对Libcontainer进行了包装的命令行交互工具( Libcontainer取代了早期Docker架构中的LXC )。runc生来只有一个作用一创建容器,速度很快!不过它是一个CLI 包装器,实质上就是一个独立的容器运行时工具。因此直接下载它或基于源码编译二进制文件,即可拥有一个全功能的runc。 但它只是一个基础工具,并不提供类似Docker引擎所拥有的丰富功能。 有时也将runc所在的那一层称为“OCI 层”

    containerd

    在对Docker daemon的功能进行拆解后,所有的容器执行逻辑被重构到一个新的名为containerd (发音为container-dee) 的工具中。它的主要任务是容器的生命周期管理———— start | stop | pause | rm....containerd在Linux和Windows中以daemon的方式运行Docker引擎技术栈中,containerd位于daemon和runc所在的OCI层之间随着时间的推移,它被赋予了更多的功能,如镜像管理常用的启动容器的方法就是使用Docker命令行工具。下面的docker container run命令会基于alpine:latest镜像启动一个新容器。
    $ docker container run --name ctrl -it alpine:latest sh
    当使用Docker命令行工具执行如上命令时,Docker客户端会将其转换为合适的API格式,并发送到正确的API端点。API是在daemon中实现的。这套功能丰富、基于版本的REST API已经成为Docker的标志。一旦daemon接收到创建新容器的命令,它就会向containerd发出调用。daemon已经不再包含任何创建容器的代码了!daemon使用一种CRUD风格的API,通过gRPC与containerd进行通信。虽然名叫containerd, 但是它并不负责创建容器,而是指挥runc去做。containerd将Docker镜像转换为OCI bundle,并让runc基于此创建一个新的容器。然后,runc与操作系统内核接口进行通信,基于所有必要的工具( Namespace、CGroup 等)来创建容器。容器进程作为runc的子进程启动,启动完毕后,runc 将会退出。现在,容器启动完毕了。

    df7f0dd59dc9845e701eacc39933deb5.png

    将所有的用于启动、管理容器的逻辑和代码从daemon中移除,意味着容器运行时与Docker daemon是解耦的,有时称之为“无守护进程的容器(daemonless container)",如此,对Docker daemon的维护和升级工作不会影响到运行中的容器。shimshim是实现无daemon的容器(用于将运行中的容器与daemon解耦,以便进行daemon升级等操作)不可或缺的工具。containerd 指挥runc来创建新容器。事实上,每次创建容器时它都会fork一个新的runc实例。不过,一旦容器创建完毕,对应的runc进程就会退出。因此,即使运行上百个容器,也无须保持上百个运行中的runc实例。一旦容器进程的父进程runc退出,相关联的containerd-shim 进程就会成为容器的父进程。作为容器的父进程,shim 的部分职责如下。
    • 保持所有STDIN和STDOUT流是开启状态,从而当daemon重启的时候,容器不会因为管道( pipe)的关闭而终止。
    • 将容器的退出状态反馈给daemon。
    daemon的作用daemon的主要功能包括镜像管理、镜像构建、REST API、身份验证、安全、核心网络以及编排。【注】:本实验环境为centos7.4 ,本人水平有限,文章内容或有问题存在,还请各位看官不吝赐教~~~~

    本文原创地址:https://www.linuxprobe.com/docker-study-engine.html编辑:上官,审核员:逄增宝

    5f0142f2b2e4cb592c63e652ae069145.png

    如果喜欢这位作者的文章,点点在看支持一下~

    d89cfec9a748002c198349c0b9c1c873.png

    官方站点:www.linuxprobe.com

     Linux命令大全:www.linuxcool.com

    Linux系统下载站:www.linuxdown.com

    a75f896aea1554bdfda95d2865b4134b.png

    刘遄老师QQ:5604922

    Linux技术交流群:193666693

    (新群,火热加群中……)

    书籍在线学习(电脑阅读效果佳)

    http://www.linuxprobe.com/chapter-00.html

        想要学习Linux系统的读者可以点击按钮来了解书籍《Linux就该这么学》,同时也非常适合专业的运维人员阅读,成为辅助您工作的高价值工具书!

    展开全文
  • Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的镜像中,然后发布到任何流行的 Linux或Windows 机器上,也可以实现虚拟化。容器是完全使用沙箱机制,相互之间不会有任何接口...

    ebc29ee771eda5d4148ca79c77269e42.png

    Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的镜像中,然后发布到任何流行的 Linux或Windows 机器上,也可以实现虚拟化。容器是完全使用沙箱机制,相互之间不会有任何接口。给新手们推荐11个极易上手的Docker实践项目。9dece2bbb55a5dbd951d5eb7c8878ab1.png

    1. spug

    地址: http s:// github.com/openspug/spug

    • star: 3.8k
    • fork: 769

    使用 Python+Vue 实现的开源运维平台,前后端分离方便二次开发。该项目基于 Docker 镜像发布部署,方便安装和升级。支持运维常见功能:主机管理、任务计划管理、发布部署、监控告警等。

    d4372b7a3a69026ff703b8e58ec390b0.gif

    2. ctop

    地址: http s:// github.com/bcicen/ctop

    • star: 10.2k
    • fork: 388

    实现了类 top 命令展示效果的 docker 容器监控工具。

    018d5bfb0b418bc769df655d0bfe4d00.gif

    3. drone

    地址: http s:// github.com/drone/drone

    • star: 21.3k
    • fork: 2.1k

    一个基于 Docker 的持续集成平台,使用 Go 语言编写。

    0dac53f384553c38a7d09f1314afae63.png

    4. docui

    地址: http s:// github.com/skanehira/docui

    • star: 1.8k
    • fork: 74

    终端 Docker 管理工具,自带一个终端界面。使用该工具可以方便的通过界面管理 docker 不用再记那些命令。安装命令:

    0348b825bd0786eb97820f3278b49eae.png

    5. docker-slim

    地址: http s:// github.com/docker-slim/docker-slim

    • star: 8.8k
    • fork: 306

    自动缩减 docker 镜像的体积的工具。大幅度缩减 docker 镜像的体积,方便分发,使用命令 docker-slim build --http-probe your-name/your-app。比如 Node.js 镜像缩减后的对比:

    6. docker_practice

    地址: http s:// github.com/yeasy/docker_practice

    • star: 17.1k
    • fork: 4.7k

    Docker 从入门到实践

    7. lazydocker

    地址: http s:// github.com/jesseduffield/lazydocker

    • star: 15.5k
    • fork: 581

    带命令行 UI 的 docker 管理工具。可以通过点点点来管理 docker,却又不需要装 rancher 这样的企业级容器管理平台。

    0454bcb7af339d34f230b89738bb6a9a.png

    8. dive

    地址: http s:// github.com/wagoodman/dive

    • star: 20.7k
    • fork: 749

    用来探索 docker 镜像每一层文件系统,以及发现缩小镜像体积方法的命令行工具。启动命令:dive 镜像名。

    078942f63519f23d2645bcbf8d254877.gif

    9. gochat

    地址: http s:// github.com/LockGit/gochat

    • star: 663
    • fork: 108

    纯 Go 实现的轻量级即时通讯系统。技术上各层之间通过 rpc 通讯,使用 redis 作为消息存储与投递的载体,相对 kafka 操作起来更加方便快捷。各层之间基于 etcd 服务发现,在扩容部署时将会方便很多。架构、目录结构清晰,文档详细。而且还提供了 docker 一件构建,安装运行十分方便,推荐作为学习项目。

    69f0e6ae8c954b176417c9afc1e4b263.gif

    10. docker-dashboard

    地址: http s:// github.com/pipiliang/docker-dashboard

    • star: 205
    • fork: 22

    基于控制台的 docker 工具,代码简单易读,可以做为学习 Node.js 的实践项目。

    11. diving

    地址: http s:// github.com/vicanso/diving

    • star: 136
    • fork: 12

    基于 dive 分析 docker 镜像,界面化展示了镜像每层的变动(增加、修改、删除等)、用户层数据大小等信息。便捷获取镜像信息和每层镜像内容的文件树,可以方便地浏览镜像信息。对于需要优化镜像体积时非常方便。

    6c0130bb7a4e6eee4547d7136d4050db.png

    作者:老K玩代码

    来源:http://r6d.cn/BFUL

    END

    官方站点:www.linuxprobe.com

    Linux命令大全:www.linuxcool.com

    109295520a38f126495397dacd33f4ae.png

    刘遄老师QQ:5604922

    Linux技术交流群:193666693

    (新群,火热加群中……)

    想要学习Linux系统的读者可以点击"阅读原文"按钮来了解书籍《Linux就该这么学》,同时也非常适合专业的运维人员阅读,成为辅助您工作的高价值工具书!

    展开全文
  • 就目前的形势看,一家公司的运维体系不承载在 Docker+Harbor(或 Pouch 等同类平台)之上都不好意思说自己的互联网公司。当然这些技术也不适用于全部公司,技术在迭代,平台也一样,把我使用的工具和大家分享下,...
  • Docker有成千上百万的命令行。因此Docker文档内容十分丰富,同时又让刚入门的新手感到不知所措。在本文中,我将重点介绍运行Docker的关键命令。
  • Docker有成千上百万的命令行。因此Docker文档内容十分丰富,同时又让刚入门的新手感到不知所措。在本文中,我将重点介绍运行Docker的关键命令。 前 言 Docker镜像是由Dockerfile和一些必要的依赖项组成的,Docker...
  • Docker有成千上百万的命令行。因此Docker文档内容十分丰富,同时又让刚入门的新手感到不知所措。在本文中,我将重点介绍运行Docker的关键命令。前 言Docker镜像是由Dockerfile和一些必要的依赖项组成的,Docker容器...
  • Docker有成千上百万的命令行。因此Docker文档内容十分丰富,同时又让刚入门的新手感到不知所措。在本文中,我将重点介绍运行Docker的关键命令。前 言Docker镜像是由Dockerfile和一些必要的依赖项组成的,Docker容器...
  • Docker有成千上百万的命令行。因此Docker文档内容十分丰富,同时又让刚入门的新手感到不知所措。在本文中,我将重点介绍运行Docker的关键命令。前 言Docker镜像是由Dockerfile和一些必要的依赖项组成的,Docker容器...
  • Docker常用命令行

    2020-08-18 10:48:08
    Docker命令行入门大全:这18条,你不得不知 Docker有成千上百万的命令行。因此Docker文档内容十分丰富,同时又让刚入门的新手感到不知所措。在本文中,我将重点介绍运行Docker的关键命令。 作者:RancherLabs来源...
  • 一、查看Docker的信息(info) 通过下面的命令可以查看Docker的工作情况 sudo docker info 该命令会返回所有容器和镜像的数量、Docker使用的执行驱动和存储驱动(execution and storage driver)、以及Docker的...
  • Docker命令大全

    2017-05-11 14:33:36
    1. Docker命令行 Docker官方为了让用户快速了解Docker,提供了一个交互式教程,旨在帮助用户掌握Docker命令行的使用方法。但是由于Docker技术的快速发展,此交互式教程已经无法满足Docker用户的实际使用需求,...
  • 笔记本/台式机电脑的性能足够强劲(内存不低于 8G),可以直接安装 docker-desktop,并启用其中内嵌的 Kubernetes 集群,用做学习、测试,也可以用作日常开发。 下载 docker-desktop 从 docker 下载 docker-desktop ...
  • Docker怎么学?学哪些内容?……其实,民工哥在初学运维时、刚工作时,也一样有这些问题,这很正常。民工哥从事IT技术工作多年,从最初的桌面技术、网络工程师、再到运维,一路走来,算是披荆斩棘。谈不上有多老道.....
  • Linux 系统如何快速入门?分享民工哥总结的经验我...Docker怎么学?学哪些内容?……其实,民工哥在初学运维时、刚工作时,也一样有这些问题,这很正常。民工哥从事IT技术工作多年,从最初的桌面技术、网络工程师...
  • 一、命令行可以通过运行 docker ,或者 docker help 命令得到命令行的帮助信息(我们以 CentOS 为操作环境为例):[root@iz2ze2bn5x2wqxdeq65wlpz ~]# docker helpUsage: docker [OPTIONS] COMMANDA self-sufficient ...
  • 如何在docker中部署springboot的web应用转载自: https://www.cnblogs.com/HeQiangJava/p/7388736.html https://www.jianshu.com/p/711bc4ffcecf第一步:搭建springboot的web应用,可在CMD命令行中通过mvn install...
  • 可以使用在命令行中调用任何命令。 Docker通过读取Dockerfile中的指令自动生成映像。docker build命令用于从Dockerfile构建映像。可以在docker build命令中使用-f标志指向文件系统中任何位置的Dockerfile。例:...
  • 一、k8s 文档: ... 命令行大全 https://kubernetes.io/docs/reference/generated/kubectl/kubectl-commands http://docs.kubernetes.org.cn/626.html ...
  • 大三寒假(2017.1.18)

    2017-01-18 13:59:53
    shell脚本精通,linux命令行与shell脚本编程大全,linux shell脚本攻略,awk&sed,ABS(1h/day) linux环境编程(15*4h=60h) docker(10h) 高性能linux服务器构建实战(14*4=56h) 英语六级(0.5h/day) 每日编程(1h/day) CCNA...
  • 分享一些书籍 看到书籍很多,感觉很不错,就收藏...Linux命令行与shell脚本编程大全(第3版) python高手之路 iOS编程(第4版) Python编程:从入门到实践 父与子的编程之旅 第一本Docker书(修订版) 代码整洁之道...

空空如也

空空如也

1 2
收藏数 36
精华内容 14
关键字:

docker命令行大全