docker 容器常用操作详解

781 阅读1分钟

这是我参与8月更文挑战的第4天,活动详情查看:8月更文挑战

1. 启动/停止容器

新建并启动一个srs镜像的容器

$ docker run -it --restart=always -p 1985:1985 -v /dev:/dev2 -v /mnt/nfs:/mnt/volume1 --name srs-service srs
  • --restart=always 表示开机启用
  • -p 1985:1985 表示主机端口与docker端口的映射
  • -v /mnt/nfs:/mnt/volume1 表示本机/mnt/nfs目录挂载到容器/mnt/volume1目录
  • srs表示镜像标识符

启动/停止容器

#启动
$ docker container start xxx
#终止
$ docker container stop xxx
#查询修改
$ docker container diff xxx

2. 进入容器

容器列表(-a 命令可以查看所有已经创建的包括终止状态的容器)

$ docker container ls -a

进入容器

$ docker exec -it xxx /bin/bash
  • xxx 为容器标识符
  • 可以通过 docker container update 更新容器,例如 docker container update --restart="no" < container id>

3. 导出和导入容器

导出容器

如果要导出本地某个容器快照,使用 docker export 命令

$ docker export xxx > container20201216.tar

导入容器

使用 docker import 从容器快照文件中再导入为镜像,例如

$ cat container20201216.tar | docker import - srs/srs:v1.0

此外,也可以通过指定 URL 或者某个目录来导入,例如

$ docker import http://example.com/exampleimage.tgz example/imagerepo

4. 删除容器

可以使用 docker container rm 来删除一个处于终止状态的容器, 如

$ docker container rm  trusting_newton

如果数量太多要一个个删除可能会很麻烦,用下面的命令可以清理掉所有处于终止状态的容器。

$ docker container prune

5. 容器的信息

PID 信息

$ docker inspect --format '{{ .State.Pid }}' <CONTAINER ID or NAME>

IP 地址

$ docker inspect --format '{{ .NetworkSettings.IPAddress }}' <CONTAINER ID or NAME>

容器配置

$ docker inspect <CONTAINER ID or NAME>

容器监控

$ docker stats

已经运行的容器,可以通过 docker update 更新配置参数 <CONTAINER ID or NAME>(需要先停止容器的运行) 或者通过 /var/lib/docker/containers/容器ID 下的 hostconfig.json 等文件,修改启动配置参数

6. 控制容器系统资源占用

在使用 docker create 命令创建容器或使用 docker run 创建并启动容器的时候

  • 可以使用 -c|--cpu-shares[=0] 参数来调整容器使用 CPU 的权重
  • 可以使用 -m|--memory[=MEMORY] 参数来调整容器使用内存的大小。