Docker容器一些常用命令

0 目录

运行容器 (CMD; ENTRYPOINT; docker run)

进入容器(attach; exec)

停止容器

重启容器

暂停 继续容器

删除容器

导入导出容器

资源限制

习题

1 运行容器

docker run ubuntu # 实际效果执行一下就退出了

docker run -d ubuntu # 后台运行并返回控制权

docker run -d --name ubuntu_smith ubuntu# 后台运行容器,docker ps看容器时,容器名字为--name的名字

注意,-d只是后台运行,而不是一直执行,即,如果容器执行一下就返回,那加-d也是执行完了就返回,docker ps查不到,如果容器是守护进程那种,一般情况不会自己退出,不加-d的话,run容器后光标就一直收不回来,这是用-d可以让容器后台执行,控制权会返回来。-P表示端口随机映射

docker run -d ubuntu # 后台docker ps查不到

docker run -d httpd # 后台docker ps可以查到容器

docker run = docker create + docker start

2 进入容器

docker attach container_id/container_name

Docker容器一些常用命令_第1张图片

docker exec -it ubuntu bash

区别

attach直接进入启动容器的终端,不开新终端并进入

exec在容器中开个新终端并进入

注意容器可分为两类,服务类和工具类,服务类是守护进程,工具类是执行完了就返回退出

3 停止容器

docker stop container_id/container_name

4 重启容器

docker restart container_id/container_name

docker run -d --restart=always httpd # 容器异常退出时,自动重启

docker run -d --restart=on-failure:3 httpd # 容器推出代码非0则重启容器,最多三次

5 暂停/继续容器

docker pause container_id/container_name

docker unpause container_id/container_name

pause的容器不占用cpu等主机资源

6 删除容器

stop的容器如果未删除会占用host的文件资源

docker rm container_a_id container_b_id

docker rm -v `docker ps -aq -f status=exit` # -v删除和容器相关的volume

注意参数的位置

6.5 导入导出容器

7 资源限制

7.1 内存

设定容器可使用的资源数量

docker run - m 200M --memory-swap=300M ubuntu # 容器最多使用200M内存和100M swap

docker run -it -m 200M --memory-swap=300M progrium/stress --vm 1-- vm-bytes 280M

说明 启动一个线程,每个线程分配280M内存 压力测即为重复分配线程并释放,如果内存超过限制容器将会退出

交换内存默认为内存的两倍,如果没设定

7.2 cpu

-c   --cpu-shares 设定的是cpu相对权重,默认1024,权重越大分的资源越多

7.3 资源限制的原理

主要是cgroup和namespace,前者用来设置资源使用额度,后者用来实现资源隔离,原理以后再了解 

通过设置cgroup实现。如何查看cgroup?/sys/fs/cgroup

Docker容器一些常用命令_第2张图片

8 习题

了解cgroup namespace原理

为什么容器pause时不消耗系统资源

你可能感兴趣的:(docker,docker,linux,运维)