一、容器管理
容器是镜像运行后的一种状态,一个镜像可以创建多个容器,镜像是不可写的,一旦运行后成容器就变成可写的状态;容器也可以导出、导入。
二、容器的命令选项
选项 | 描述 | |
-i,--interactive | 交互式 | |
-t,--tty | 分配一个伪终端 | |
-d,--detach | 运行容器到后台 | |
-e,--env | 设置环境变量 | |
-p,--publish list | 发布容器端口到主机 | |
-P,--publish-all | 发布容器所有EXPOSE的端口到宿主机随机端口 | |
--name string | 指定容器名称 | |
-h,--hostname | 设置容器主机名 | |
--ip string | 指定容器IP,只能用于自定义网络 | |
--network | 连接容器到一个网络 | |
--mount mount | 将文件系统附加到容器 | |
-v ,--vloume list | 绑定挂载一个卷 | |
--restart string | 容器退出时重启策略,默认no,可选值[always | on-failure] |
例:
docker run -itd -e hello=123 -e abc=123 -p 88:80 --name=nginx-v1 -h nginx-test --restart=always nginx
解析:
-itd 交互、伪终端、后台运行
-e 环境变量
-p 宿主机的88端口映射容器的80端口
--name 定义容器名字为nginx-v1
-h 定义容器主机名为nginx-test
--restart=always 当容器退出时,尝试重启,开机启动的意思
nginx 最后跟镜像名称
三、容器资源限制
选项 | 描述 |
-m,--memory | 容器可以使用的最大内存量 |
--memory-swap | 允许交换到磁盘的内存量 |
--memory-swappiness=<0-100> | 容器使用SWAP分区的百分比 |
--oom-lill-disable | 禁用OOM Killer |
--cpus | 可以使用的CPU数量 |
--cpuset-cpus | 限制容器使用特定的CPU核心,如(0-3,0,1) |
--cpu-shares | cpu共享(相对权重) |
例:
#docker run -d -m 512M nginx-v1
#docker run -d --cpus='1.5' nginx
内存限额
允许容器最多使用500M内存和100M的Swap,并禁用OOM Killer:
docker run -d --name nginx03 --nemory="500m" --memory-swap="600m" --oom-kill-disable nginx
CPU限额:
允许容器最多使用一个半CPU
docker run -d --name nginx04 --cpus="1.5" nginx
允许容器最多使用50%的CPU
docker run -d --name nginx05 --cpus="0.5" nginx
查看docker容器占用宿主机资源
#docker stats nginx-v1
这样是交互式显示,不易来监控指标
#docker stats --help
#docker stats --no stream nginx-v1
四、管理容器的常用命令
选项 | 描述 |
ls | 列出容器 |
inspect | 查看一个或多个容器详细信息 |
exec | 在运行容器中执行命令 |
commit | 创建一个新镜像来自一个容器 |
cp | 拷贝文件、文件夹到一个容器 |
logs | 获取一个容器日志 |
port | 列出或指定容器端口映射 |
top | 显示一个容器运行的进程 |
stats | 显示容器资源使用统计 |
stop/start/restart | 停止/启动一个或多个容器 |
rm | 删除一个或多个容器 |
查看容器中的目录
#docker exec id ls
进入容器
docker exec -it id bash