docker之容器管理

文章目录

      • 创建容器
      • 查看容器
      • 运行容器
      • 停止容器
      • 暂停/唤醒容器
      • 进入容器
      • 删除容器
      • 容器状态机

创建容器

语法

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

常用选项

--name string : 给启动的容器 起一个名字,如果不使用 –name 。docker的守护进程会自动给容器命名

-d, --detach :让容器在后台运行,用于运行服务

-i, --interactive :交互式

-t, --tty :分配一个伪终端

--rm :容器运行介绍后自动删除

-e, --env :设置环境变量

-p, --publish list :发布容器端口到主机

-P, --publish-all :发布容器所有EPOSE的端口到宿主机随机端口

-h, --hostname :设置容器主机名

--ip string :指定容器IP,只能用于自定义网络

--network :连接容器到一个网络

--mount mount :将文件系统附加到容器

-v, --volume list :绑定挂载一个卷

--volumes-from

容器运行资源限制选项

#内存限额

-m, --memory:内存限额

--memory-swap:内存+swap限额,默认为2倍-m大小

#cpu限额

-c, --cpu-share: cpu资源提供给一组容器使用,组内的容器按比例使用cpu资源,当容器处于空闲状态时,cpu资源被负载大的容器占用,(按压缩方式比例分配),当空闲进行运行起来时,cpu资源会被分配到其他容器

--cpu : 指定 cpu的核心数量,这种方式直接限定了容器可用的cpu资源

--cpuset-cpus: 指定容器只能运行在哪个cpu核心上(绑定cpu);核心使用0,1,2,3编号;–cpu-share会随机指定cpu

#block IO限额

--blkio-weight :io权重,默认500

--device-read-bps:按每秒读取块设备的数据量设定上限

--device-write-bps:按每秒写入块设备的数据量设定上限

--device-read-iops:按照每秒读操作次数设定上限

--device-write-iops:按照每秒写操作次数设定上限

例子

  1. docker run --rm centos /bin/echo "hello world"

在这里插入图片描述

  1. docker run -t -i --name mydocker centos /bin/bash

在这里插入图片描述

查看容器

  1. docker ps:查看正在运行的容器

  2. docker ps -a:查看所有状态的容器

  3. docker ps -l :可以查看你最后一个运行的容器

  4. docker ps -a -q:查看所有容器的ID

运行容器

docker start 容器ID/名称:启动一个未运行(已停止)的容器

停止容器

  1. docker stop 容器ID/名称:发送一个命令等待容器停止: 有等待时间

  2. docker kill 容器ID/名称: 直接停止容器:没等待时间

这两个的区别相当于kill和kill -9的区别

暂停/唤醒容器

暂停容器:docker pause 容器ID/名称

唤醒容器:docker unpause 容器ID/名称

进入容器

方法一:通过docker attach 容器名(exit容器退出)

docker之容器管理_第1张图片

方法二:通过nsenter(推荐,exit容器不会关闭)

#首先要安装util-linux
yum install util-linux
#获取容器的pid
docker inspect -f "{{ .State.Pid }}" mydocker
#使用nsenter进入容器
nsenter -t PID -m -u -i -p -n
-t:指定PID
-m:进入Mount Namespace
-u:进入ust namespace
-i:进入IPC namespace
-p:进入到pid namespace
-n:进入到network namespace


#我们可以编辑一个脚本,直接用脚本进入
#!/bin/bash
CPID=`docker inspect -f "{{ .State.Pid }}" $CID`
nsenter -t CPID -m -u -i -p -n

方法三:通过docker exec(推荐,exit容器不会关闭)

docker exec 容器ID/名称 命令

docker之容器管理_第2张图片

删除容器

删除容器:docker rm 容器名/ID

强制删除:docker rm -f 容器名/ID

容器状态机

docker之容器管理_第3张图片

你可能感兴趣的:(docker之容器管理)