操作Docker容器

1.1 创建容器

       1.可以使用docker create 命令来创建容器,例如:

       使用docker create 命令新建的容器处于停止状态,可以使用docker start 命令来启动它。

        create 命令与容器运行模式相关的选项有如下几个:

        --expose=[ ]  ,指定容器会暴露出来的端口或端口范围;

        -p,--publish=[ ],指定如何映射到本地主机端口;

        --restart="no",容器的重启策略,包括no,on-failure[:max-retry],always,unless-stoppped等;

        --rm=true/false,容器退出后是否自动删除,不能和-d参数同时使用;

        -t,--tty=true/false,是否分配一个伪终端,默认为false。   

        2.可以使用docker start + 容器id 命令来启动一个已经创建的容器,   docker run 命令等价与先执行docker create 命令,再执行docker start命令。

         某些时候,执行docker run 命令因为命令无法正常执行容器会出错直接退出,此时可以查看退出的错误代码。默认情况下,常见的错误代码包括:

         125:Docker daemon执行出错,例如指定了不支持的Docker命令参数;

         126:所指定命令无法执行,例如权限出错;

          127:容器内命令无法找到。

           更多时候,需要Docker容器在后台以守护态形式运行,可以通过添加-d参数来实现。

1.2 停止容器

         1. 暂停容器可以使用docker pause 命令,处于paused状态的容器可以使用docker unpause 命令来恢复到运行状态。

         2.终止容器可以使用docker stop命令,它可以终止一个运行中的容器。docker kill 命令是直接发送SIGKILL信号来强行终止容器。当容器中指定的应用终结时,容器也会自动终止。可以用docker ps -qa 命令来查看所有容器的记录。还可以执行docker container prune 命令,会自动清除掉所有处于停止状态的容器。处于终止状态的容器,可以通过docker start 命令来重新启动。

1.3 进入容器

      Docker提供了一个方便的工具exec 命令,可以在运行中容器内直接执行任意命令。

      该命令所带比较重要的参数有:

      -d,--detach:在容器中后台执行命令;

      --detach-keys=" ":指定将容器切回后台的按键;

      -e,--env=[ ]:指定环境变量列表;

      -i,--interactive=true/false:打开标准输入接受用户输入命令,默认值为false;

      -t,--tty=true/false:分配伪终端,默认值为false;

      -u,--user=" ":执行命令的用户名或ID。

1.4 删除容器

      可以使用docker rm 命令来删除处于终止或退出的容器,命令格式为 docker [container] rm [-f] [-l] [-v] ,主要支持的选项包括:

      -f,--force=false:是否强行终止并删除一个运行中的容器;

      -l,--link=false:删除容器的连接,但保留容器;

      -v,--volume=false:删除容器挂载的数据卷。

      默认情况下,docker rm 命令只能删除已经处于终止或退出状态的容器,并不能删除还处于正在运行状态的容器,如果非要直接删除,可以添加-f参数,docker会终止其中的应用强行删除该容器。 

1.5 导入和导出容器

     导出容器是指导出一个已经创建的容器到一个文件,不管此时这个容器是否处于运行状态。可以使用docker export 命令,该命令格式为 docker export [-o|--output [=" "]] container-id,其中-o选项用来指定导出的tar文件名,也可以直接通过重定向来实现。

      之后可将导出的tar文件传输到其他机器上,然后再通过导入命令导入到系统中,实现容器的迁移。

     导入容器可以docker import命令,导入之后变成镜像,该命令格式为:docker import  [-c] [-m] file|URL|-[REPOSITORY[:TAG]],用户可以通过-c,--change=[]选项在导入的同时执行对容器进行修改的Dockerfile指令。

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

1.6 查看容器

       1.查看容器详情可以用docker inspect + container-id,结果会以json格式返回,包括容器ID,创建时间,路径,状态,镜像,配置等在内的各项信息。

       2.查看容器内进程命令,docker top container-id,此命令会打印容器内的进程信息,包括PID,用户,时间,命令等。

       3.查看统计信息可用docker stats container-id命令,结果会显示CPU,内存,存储,网络等使用情况的统计信息。支持的选项包括:

       -a,-all:输出所有容器统计信息,默认仅在运行中;

       -format string:格式化输出信息;

       -no-stream:不持续输出,默认会自动更新持续实时结果;

       -no-trunc:不截断输出信息。

       4.要获取容器的输出信息,可以通过docker logs + 容器id 命令实现。该命令支持的选项包括:

       -details:打印详细信息;

       -f,-follow:持续保持输出;

       -t,-timestamps:显示时间戳信息;

       -since string:输出从某个时间开始的日志;

       -tail string:输出最近的若干日志;

       -until string:输出某个时间之前的日志。

1.7 其他容器命令

      docker cp 命令支持在容器和主机之间复制文件。

      docker diff 命令查看容器内文件系统的变更。

      docker port 命令查看容器的端口映射情况。

      docker update 命令可以更新容器的一些运行时配置,主要是一些资源限制份额。

  • 31
    点赞
  • 28
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值