容器是镜像的一个运行实例。镜像是静态的只读文件,而容器带有运行时需要的可写文件层,同时,容器中的应用进程处于运行状态 1 创建容器create、start、run、wait和logs子命令 1.1 新建容器docker [container] create命令新建的容器处于停止状态,可以使用docker [container] start命令启动 例:docker create –it ubuntu:latest #ubuntu:latest为镜像 cretae命令的选项主要包括:与容器运行模式相关、与容器环境配置相关、与容器资源限制和安全保护相关 1) 与容器运行模式相关 -a,--attach=[] 是否绑定到标准输入、输出和错误 -d,--detach=true|false 是否在后台运行容器。默认为否 --group-add=[] 运行容器的用户组 -i,--interactive=true|false 保持标准输入打开,默认为false -t,--tty=true|false 是否分配一个伪终端,默认为false 2) 与容器环境配置相关 --add-host=[] 在容器内添加一个主机名到IP地址的映射关系(通过/etc/hosts文件) --device=[] 映射物理机上的设备到容器内 -e,--env=[] 指定容器内环境变量 --ip=”” 指定容器的IPv4地址 --link=[<name or id>:alias] 链接到其他容器 --link-locak-ip=[]: 容器的本地链接地址表 --name=”” 指定容器的别名 3) 与容器资源限制和安全保护相关 --blkio-weight=10~1000 容器读写块设备的I/O性能权重,默认为0 --device-read-iops=[] 挂载设备的读速率(以每秒i/o次数为单位)限制 --device-write-opps=[]挂载设备的写速率(以每秒i/o次数为单位)限制 --kernel-memory=”” 限制容器使用内核的内存大小,单位可以是b、k、m或g -m,--memory=”” 限制容器内应用使用的内存,单位可以是b、k、m或g 1.2 启动容器docker [container] start命令来启动一个已经创建的容器 docker start pedantic_rubin 1.3 新建并启动容器1)docker [container] run,等价于先执行doker create,在执行docker start命令 docker run ubuntu /bin/echo "hello world" 2)docker [container] run创建并启动容器时,Docker在后台运行的标准操作包括:
3)下面命令启动一个bash终端 docker run -it ubuntu:latest /bin/bash -t 让Docker分配一个伪终端并绑定到容器的标准输入上 -i 让容器的标准输入保持打开 4) 执行docker run时因为命令无法正常执行容器会出错直接退出,常见错误代码:
1.4 守护态运行-d参数来实现 例:docker run -d ubuntu /bin/sh -c "while true;do echo hello world;sleep 1;done" 1.5 查看容器输出信息docker [container] logs 选项:
例:查看某个容器的输出 2 停止容器2.1 暂停容器docker [container] pause CONTAINER [CONTAINER…] 例:docker pause 28f646b7ba0a 处于pause状态的容器,可以使用docker [container] unpause CONTAINER [CONTAINER…]命令来恢复到运行状态 例:docker unpause 28f646b7ba0a 2.2 终止容器docker [container] stop命令首先向容器发送SIGTERM信号,等待一段超时时间后(默认为10秒),再发送SIGKILL信号来终止容器 例:docker stop 28f646b7ba0a docker container prune 自动清除所有处于停止状态的容器 docker [container] start 启动 docker [container] restart 停止后启动 3 进入容器使用-d参数时,容器启动后会进入后台,用户无法看到容器中的信息,也无法进行操作 3.1 attach命令命令格式: docker [container] attach [--detach-key[=[]]] [--no-stdin] [--sig-proxy[=true]] CONTAINER 选项
例:docker attach unruffled_euclid 但多个窗口同时使用attach到同一个容器的时候,所有窗口都会同步显示,但默认窗口因命令阻塞时,其他窗口也无法执行操作了 3.2 exec命令对容器执行操作最为推荐的方式 命令格式: docker [container] exec [选项] CONTAINER COMMAND [ARG…] 选项: -d,--detach:容器中后台执行命令 --detach-keys=””:指定将容器切回后台的按键 -e,--env=[]:指定环境变量列表 -i,--interactive=true|false:打开标准输入接受用户输入命令,默认为false; --privileged=true|false:是否给执行命令以高权限,默认为false -t,--tty=true|false:分配伪终端,默认为false -u,--user=””:执行命令的用户名或ID 例:docker exec -it 50c9d318fc51 /bin/bash
4 删除容器docker [container] rm [选项] CONTAINER [CONTAINER…] 删除处于终止或退出状态的容器 选项: -f,--force=false:是否强行终止并删除一个运行中的容器 -l,--link=false:删除容器的连接,但保留容器 -v,--volumes=false:删除容器挂载的数据卷 例:docker rm 50c9d318fc51 5 导入和导出容器5.1 导出容器导出一个已经创建的容器到一个文件,不管此时这个容器是否处于运行状态 命令:docker [container] export [-o|--output[=””]] CONTAINER -o指定导出的tar文件名,也可以直接通过重定向来实现 例:docker export -o ubuntu_run.tar b7a8d50eca7b docker export b7a8d50eca7b > ubuntu_test.tar 5.2 导入容器docker [container] import [-c|--change[=[]]] [-m|--message[=MESSAGE]] file|URL|- [REPOSITORY[:TAG]] 导入变成镜像 选项: -c,--change=[]:在导入的同时执行对容器进行修改的Dockerfile指令 例:docker import ubuntu_run.tar run/ubuntu:v1.0 docker load命令导入镜像存储文件到本地镜像库 docker import命令导入一个容器快照到本地镜像库 区别:容器快照文件将丢弃所有的历史记录和元数据信息(即仅保存容器当时的快照状态),而镜像存储文件将保存完整记录,体积更大。此外,从容器快照文件导入时可以重新制定标签等元数据信息 6 查看容器inspect、top、stats 6.1 查看容器详情docker container inspect [OPTIONS] CONTAINER [CONTAINER…] 例:docker container inspect b7a8d50eca7b 6.2 查看容器内进程docker [container] top [OPTIONS] CONTAINER [CONTAINER…] 例:docker top b7a8d50eca7b 6.3 查看统计信息docker [container] stats [OPTIONS] [CONTAINER…] 显示CPU、内存、存储、网络等使用情况的统计信息 选项: -a,-all:输出所有容器统计信息,默认仅在运行中 -format string:格式化输出信息 -no-srteam:不持续输出,默认会自动更新持续实时结果 -no-trunc:不截断输出信息 例:docker stats b7a8d50eca7b 7 其他容器命令cp、diff、port、update 7.1 复制文件docker [container] cp [OPTINOS] CONTAINER:SRC_PATH_ DEST_PATH|- 支持在容器和主机之间复制文件 选项: -a,-archive:打包模式,复制文件会带有原始的uid/gid信息 -L,-follw-link:跟随软链接。当原路径为软链接时,默认只复制链接信息,使用该选项会复制链接的目标内容 例:将本地的test1.txt文件复制到ID为b7a8d50eca7b容器的/tmp目录 docker cp test1.txt b7a8d50eca7b:/tmp 7.2 查看变更docker [container] diff CONTAINER 查看容器内文件系统的变更 例:docker container diff b7a8d50eca7b 7.3 查看端口映射docker container port CONTAINER [PRIVATE_PORT[/PROTO]] 例:docker container port b7a8d50eca7b 7.4 更新配置docker [container] update [OPTINOS] CONTAINER [CONTAINER…] 更新容器运行时配置,主要是一些资源限制份额 选项: -cpus decimal:限制CPU个数 -m,-memory bytes:限制使用的内存 --cpu-quota int:限制CPU调度器CFS(Completely Fair Scheduler)配额,单位为微秒,最小1000 -cpu-period int:限制CPU调度器CFS使用时间,单位为微秒,最小1000 例:docker update --cpu-quota 1000000 b7a8d50eca7b 来源:http://www./content-4-92901.html |
|