docker之容器管理

时间:2024-03-21 23:36:02

一、docker常用的创建命令

[root@node03 ~]# docker create --help

[root@node03 ~]# docker run --help

OPTIONS说明:

  • -a stdin: 指定标准输入输出内容类型,可选 STDIN/STDOUT/STDERR 三项;

  • -d: 后台运行容器,并返回容器ID;

  • -i: 以交互模式运行容器,通常与 -t 同时使用;

  • -p: 端口映射,格式为:主机(宿主)端口:容器端口

  • -t: 为容器重新分配一个伪输入终端,通常与 -i 同时使用;

  • --name="nginx-lb": 为容器指定一个名称;

  • --dns 8.8.8.8: 指定容器使用的DNS服务器,默认和宿主一致;

  • --dns-search example.com: 指定容器DNS搜索域名,默认和宿主一致;

  • -h "mars": 指定容器的hostname;

  • -e username="ritchie": 设置环境变量;

  • --env-file=[]: 从指定文件读入环境变量;

  • --cpuset="0-2" or --cpuset="0,1,2": 绑定容器到指定CPU运行;

  • -m :设置容器使用内存最大值;

  • --net="bridge": 指定容器的网络连接类型,支持 bridge/host/none/container:<name|id> 四种类型;

  • --link=[]: 添加链接到另一个容器;

  • --expose=[]: 开放一个端口或一组端口;

一、实例演示

1.容器挂了之后,不断的去重启容器

[root@node03 ~]# docker run -itd --restart always ubuntu

2、容器挂了之后,重启3次就不再重启了

[root@node03 ~]# docker run -itd --restart on-failure:3 ubuntu

3、设置文件数

[root@node03 ~]# docker run -itd --ulimit nproc=10240 --ulimit nofile=10240 ubuntu

docker之容器管理

4、docker列出所有进程ID

docker ps -q -a

docker之容器管理

5、删除所有容器。

[root@node03 merged]# docker rm -f $(docker ps -q -a)

docker之容器管理

二、ps 的用法

1. 最常见的用法

$ docker ps

显示当前正在运行的容器。

在 PORTS 一列,如果暴露的端口是连续的,还会被合并在一起,例如一个容器暴露了3个 TCP 端口:100,101,102,则会显示为 100-102/tcp。

2. 显示所有状态的容器

$ docker ps -a

容器的状态共有 7 种:created|restarting|running|removing|paused|exited|dead。

3. 显示最后被创建的 n 个容器

$ docker ps -n 3

注意,这里不限状态。

4. 显示最后被创建的容器

$ docker ps -l

相当于 docker ps -n 1。

5. 显示完整输出

$ docker ps --no-trunc

即不会截断输出。该选项有点长,其中 trunc 算是 truncate 的缩写。

6. 只显示容器 ID

$ docker ps -q

清理容器时非常好用,filter 过滤显示一节有具体实例。

7. 显示容器文件大小

$ docker ps -s

该命令很实用,可以获得 2 个数值:一个是容器真实增加的大小,一个是整个容器的虚拟大小。

查看源码(https://github.com/moby/moby/blob/master/daemon/getsize_unix.go)后可知,容器虚拟大小 = 容器真实增加大小 + 容器镜像大小。

docker之容器管理

三、rename 重命名

[root@node03 merged]# docker rename reverent_babbage zoulixiang

docker之容器管理

2.容器的详细信息

[root@node03 merged]# docker inspect zoulixiang

docker之容器管理

3、显示容器下面的目录

非标准格式输出

-it  :标准格式输出

docker之容器管理

4、显示当前容器运行的进程

docker top zoulixiang

docker之容器管理

5、显示当前容器对外映射的端口

[root@node03 merged]# docker port zoulixiang

6、将本地文件cp 到容器中

[root@node03 ~]# docker cp test.txt zoulixiang:/home

docker之容器管理

7、输出日志信息

[root@node03 ~]# docker logs zoulixiang

8、动态查看当前容器利用率

[root@node03 ~]# docker stats zoulixiang

docker之容器管理

9、静态输出当前容器利用率,方便shell脚本收集信息

[root@node03 ~]# docker stats --no-stream zoulixiang

docker之容器管理

10、输出当前docker 整体的事件

docker events zoulixiang