四.docker容器管理

试验机192.168.181.144
用户root 密码123456

主机名
root@web:/# hostname
web

docker container run -d --name web2 -P nginx #-P :发布容器中声明EXPOSE端口到宿主机的随机端口;
#docker ps -l #列出最新创建的容器;
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
803a6db849ab nginx "nginx -g 'daemon of…" 16 seconds ago Up 9 seconds 0.0.0.0:32768->80/tcp web2
http://192.168.181.144:32768/

docker image prune 移除不使用的镜像;

Export 导出容器文件系统 -----------针对容器导出导入,不会保存层级信息,快照。
import导入容器文件

Save 保存导出完整镜像;docker image save nginx > nginx.tar ------针对镜像持久化,可以保存层级信息以及历史数据,俗称元数据。

Load 导入镜像 docker image load < nginx.tar

Docker stats web 动态查看运行内存状态
Docker stats --no-stream web 静态查看

容器内存默认运用到物理所有内存,所以为了安全 要做内存限制

默认swap是设置内存到两倍

docker cp apache-maven-3.5.3-bin.tar.gz web04:/

扫描二维码关注公众号,回复: 9675432 查看本文章

docker exec -it web04 ls /

docker top 2167fe9f46da 查看容器进程

容器日志输出到控制台的日志才能用docker logs 看到

docker run -d --name web3 --restart always -P nginx :运行容器 参数--restart always 当 Docker 重启时,容器能自动启动
参数 on-failure 容器退出docker会启动他直到超过设置启动的次数;

容器资源限制参数
Cpu限额
docker run -d --name nginx03 --memory="500m" –memory-swap="600m" --oom-kill-disable nginx

默认情况下,在出现 out-of-memory(OOM) 错误时,系统会杀死容器内的进程来获取更多空闲内存。这个杀死进程来节省内存的进程,我们姑且叫它 OOM killer。我们可以通过设置–oom-kill-disable选项来禁止 OOM killer 杀死容器内进程。但请确保只有在使用了-m/–memory选项时才使用–oom-kill-disable禁用 OOM killer。如果没有设置-m选项,却禁用了 OOM-killer,可能会造成出现 out-of-memory 错误时,系统通过杀死宿主机进程或获取更改内存。

#启用docker容器限制内存500m,swap 600m 禁止oom;

docker stats --no-stream nginx03

CONTAINER ID NAME CPU % MEM USAGE / LIMIT MEM % NET I/O BLOCK I/O PIDS
e7042e0bf2e2 nginx03 0.00% 3.648MiB / 600MiB 0.61% 648B / 0B 8.55MB / 0B 0
#运行查看容器状态;

docker run -d --name web05 --cpus="0.5" nginx #容器运行50%cpu;

禁用 –oom-kill-disable 禁用OOM Killer 启用,物理内存不够了 就自动关闭内存耗费最大的应用;

Docke 容器状态监控
$ docker stats --format "table {{.Name}}\t{{.CPUPerc}}\t{{.MemUsage}}"

NAME CPU % MEM USAGE / LIMIT
web03 0.00% 1.352MiB / 977.9MiB
nginx02 0.00% 2.848MiB / 600MiB
web2 0.00% 1.363MiB / 977.9MiB

容器重新生成镜像
【容器数据持久化】

docker exec -it web05 bash #进入容器修改文件;

#docker commit web05 nginx:v1 #提交并且打标记变成镜像;

docker images #查看最新的镜像;

#进入容器查看
docker run --d --name web05-1 ngixn:v1
#docker exec -it web05-1 bash

复制本地文件到容器

docker cp 1.txt web05:/

docker exec -it web05 bash 或者用docker exec -it web05 ls查看

查看端口映射

docker port 803a6db849ab

80/tcp -> 0.0.0.0:32768

容器映射宿主机

查看容器中进程

docker top 803a6db849ab

在线修改容器cpus限制 ,仅限cpu和内存,即时生效

docker update --cpus "1.5"

猜你喜欢

转载自blog.51cto.com/2367685/2476389