文章目录

一、docker create 创建容器但不启动

1. 语法格式

docker create [options] image [command] [arg...]

注意:[command]这里是用于设置容器的启动命令(CMD)


2. 常用参数

  • -p:指定端口映射,格式:宿主机端口:容器端口
  • –name:指定容器名字
  • -e:指定环境变量,例如:-e MYSQL_PWD='123A'
  • –cpuset-cpus:绑定容器到指定 CPU 运行,例如:--cpuset-cpus='0-2' 或 --cpuset-cpus="0,1,2"
  • -m:指定最大内存:k(字节)、kb(千字节)、mb(兆字节)、g(吉字节)[1024进位]
  • –rm:退出 Shell 后,自动删除容器
  • –restart:自动重启策略(注意:--rm 和 --restart 不能同时使用)

3. 使用示例

3.1 案例介绍

  1. 根据镜像,创建一个容器,但是不启动,指定容器名、退出后删除容器、绑定cpu、绑定端口号、设置容器启动命令
  2. 查看容器是否创建成功
  3. docker run启动该容器

3.2 实现演示

 docker images "*nginx*"
REPOSITORY     TAG       IMAGE ID       CREATED        SIZE
my_oom_nginx   v1        59ae3d65ef77   3 days ago     150MB
nginx          latest    d261fd19cb63   3 months ago   152MB
nginx          1.23.3    ac232364af84   2 years ago    142MB
 docker create \
> --name "docker_create_stu" \
> --rm \
> --cpuset-cpus="0,1" \
> -p 8081:80 \
> -m 128m \
> my_oom_nginx:v1 \
> nginx -g "daemon off;" 
7df6603948f06fcaa36a512b68013f5211dcf00dd8716701cfca86dcf4c0b0ab
 docker ps 
CONTAINER ID   IMAGE     COMMAND   CREATED   STATUS    PORTS     NAMES
 docker ps -a
CONTAINER ID   IMAGE             COMMAND                  CREATED         STATUS    PORTS     NAMES
7df6603948f0   my_oom_nginx:v1   "nginx -g 'daemon of…"   6 seconds ago   Created             docker_create_stu
docker start docker_create_stu 
docker_create_stu

二、docker run 启动容器

1. 语法格式

docker run [options] image [command] [arg...]

小提示: command用于定义启动命令


2. 常用参数

  • -d: 后台运行容器,启动后只返回容器 ID。
  • -it: 启动并进入交互模式。-i 表示交互式,-t 表示分配一个伪终端,通常搭配 /bin/bash 或 /bin/sh 使用。
  • -p: 端口映射,格式为 宿主机端口:容器端口。
  • --name: 为容器指定一个自定义名称。
  • -h “host_name”: 设置容器内部的 hostname(主机名)。
  • -e: 设置环境变量(例如 -e MYSQL_PWD="123")。
  • --cpuset-cpus: 限制容器使用的 CPU 核心,例如 "0,1,2" 表示绑定到前三个核心。
  • -m: 限制容器使用的最大内存(支持单位:b、k、m、g)。
  • --rm: 容器退出(Shell 断开)后自动删除容器,常用于临时测试。
  • -v / --volume: 挂载数据卷,将宿主机目录映射到容器内部。

3. 使用示例

3.1 案例介绍

  1. 运行一个容器,并且指定容器名、绑定cpu、后台运行、设置内存大小、设定主机名
  2. 进入容器内部,查看主机名

3.2 实现演示:

docker images "*nginx*"
REPOSITORY     TAG       IMAGE ID       CREATED        SIZE
my_oom_nginx   v1        59ae3d65ef77   3 days ago     150MB
nginx          latest    d261fd19cb63   3 months ago   152MB
nginx          1.23.3    ac232364af84   2 years ago    142MB
docker run \
> --name "nginx_contianer_name" \
> --cpuset-cpus="0,1" \
> -d \
> -m 128m \
> -e MYSQL_PWD="123" \
> -h "nginx_hostname" \
> nginx:latest
826d3d83e3e1a0bcec7ee426676fb0af1ab157a95d695c486116a8ea041648f4
docker ps 
CONTAINER ID   IMAGE          COMMAND                  CREATED         STATUS         PORTS     NAMES
826d3d83e3e1   nginx:latest   "/docker-entrypoint.…"   6 seconds ago   Up 5 seconds   80/tcp    nginx_contianer_name
docker exec -it nginx_contianer_name /bin/bash
root@nginx_hostname:/# 


三、docker ps 查看容器运行状态

1. 语法格式

docker ps [options]

小提示: docker ps 不添加任何选项,默认显示正在运行的容器信息

2. 常用选项

2.1 docker ps -a 显示所有未被删除的容器

docker ps
CONTAINER ID   IMAGE          COMMAND                  CREATED          STATUS          PORTS      NAMES
3baffca2226e   myweb:v1.8     "/usr/local/nginx/sb…"   4 minutes ago    Up 4 minutes    80/tcp     musing_knuth
73be834915c9   redis:latest   "docker-entrypoint.s…"   4 minutes ago    Up 4 minutes    6379/tcp   naughty_kare
826d3d83e3e1   nginx:latest   "/docker-entrypoint.…"   15 minutes ago   Up 15 minutes   80/tcp     nginx_contianer_name
docker ps -a
CONTAINER ID   IMAGE          COMMAND                  CREATED          STATUS                     PORTS      NAMES
3baffca2226e   myweb:v1.8     "/usr/local/nginx/sb…"   4 minutes ago    Up 4 minutes               80/tcp     musing_knuth
f0f626f8f293   myweb:v1.5     "/bin/bash"              4 minutes ago    Exited (0) 4 minutes ago              reverent_chaplygin
73be834915c9   redis:latest   "docker-entrypoint.s…"   4 minutes ago    Up 4 minutes               6379/tcp   naughty_kare
31eab7caa8bb   redis:latest   "docker-entrypoint.s…"   5 minutes ago    Exited (0) 5 minutes ago              vigilant_bartik
826d3d83e3e1   nginx:latest   "/docker-entrypoint.…"   15 minutes ago   Up 15 minutes              80/tcp     nginx_contianer_name

根据上述信息,我们发现-a后,多了STATUS= Exited(已经关闭)的容器

2.2 docker ps --no-trunc 不截断内容

docker ps 
CONTAINER ID   IMAGE          COMMAND                  CREATED          STATUS          PORTS      NAMES
3baffca2226e   myweb:v1.8     "/usr/local/nginx/sb…"   11 minutes ago   Up 11 minutes   80/tcp     musing_knuth
73be834915c9   redis:latest   "docker-entrypoint.s…"   12 minutes ago   Up 12 minutes   6379/tcp   naughty_kare
826d3d83e3e1   nginx:latest   "/docker-entrypoint.…"   22 minutes ago   Up 22 minutes   80/tcp     nginx_contianer_name
docker ps --no-trunc
CONTAINER ID                                                       IMAGE          COMMAND                                          CREATED          STATUS          PORTS      NAMES
3baffca2226e2cba0b926e268c5bb728b8e8ffeecfad94f9c8b281317b593961   myweb:v1.8     "/usr/local/nginx/sbin/nginx -g 'daemon off;'"   11 minutes ago   Up 11 minutes   80/tcp     musing_knuth
73be834915c939456c38bee071f3c35d834f3e0d2a4debcc187e04fb6ded4744   redis:latest   "docker-entrypoint.sh redis-server"              12 minutes ago   Up 12 minutes   6379/tcp   naughty_kare
826d3d83e3e1a0bcec7ee426676fb0af1ab157a95d695c486116a8ea041648f4   nginx:latest   "/docker-entrypoint.sh nginx -g 'daemon off;'"   22 minutes ago   Up 22 minutes   80/tcp     nginx_contianer_name
root@iZ2ze8ve39i30yl0dhbqneZ:~# 

2.3 docker ps -l 和docker ps -n 查看最近创建的容器

docker ps
CONTAINER ID   IMAGE          COMMAND                  CREATED          STATUS          PORTS      NAMES
3baffca2226e   myweb:v1.8     "/usr/local/nginx/sb…"   30 minutes ago   Up 30 minutes   80/tcp     musing_knuth
73be834915c9   redis:latest   "docker-entrypoint.s…"   30 minutes ago   Up 30 minutes   6379/tcp   naughty_kare
826d3d83e3e1   nginx:latest   "/docker-entrypoint.…"   41 minutes ago   Up 41 minutes   80/tcp     nginx_contianer_name
docker ps -l
CONTAINER ID   IMAGE        COMMAND                  CREATED          STATUS          PORTS     NAMES
3baffca2226e   myweb:v1.8   "/usr/local/nginx/sb…"   30 minutes ago   Up 30 minutes   80/tcp    musing_knuth
docker ps -n 2
CONTAINER ID   IMAGE        COMMAND                  CREATED          STATUS                      PORTS     NAMES
3baffca2226e   myweb:v1.8   "/usr/local/nginx/sb…"   30 minutes ago   Up 30 minutes               80/tcp    musing_knuth
f0f626f8f293   myweb:v1.5   "/bin/bash"              30 minutes ago   Exited (0) 30 minutes ago             reverent_chaplygin

2.4 docker ps -q 只返回容器ID

这种方式一般自动化脚本用的多

docker ps -q
3baffca2226e
73be834915c9
826d3d83e3e1

四、docker logs查看容器日志

1. 语法格式

docker logs [options] container

2. 常用选项

  • -t:显示时间戳
  • --since: 从某时间开始查看所有日志
  • -n 20:列出最新的20条日志
  • f: 实时跟踪日志

五、docker exec 在容器中执行命令

1. 语法格式

docker exec [options] container command  [arg...]

2. 常用选项

2.1 docker exec -d 后台运行结果

显面我们不加-d则目录会直接输出到当前终端,如果-d后台运行则不会:

docker exec -d 7cc06ab ls -lh
docker exec 7cc06ab  ls -lh
total 64K
lrwxrwxrwx   1 root root    7 Aug 24 16:20 bin -> usr/bin
drwxr-xr-x   2 root root 4.0K Aug 24 16:20 boot
.....
drwxr-xr-x   1 root root 4.0K Nov  3 20:44 var

2.2 docker exec -it 分配伪终端

-i和it一般一起使用,效果是分配一个伪终端进行持续交互:

docker exec -it busy_kilby /bin/bash
ls -lh
total 68K
lrwxrwxrwx   1 root root    7 Aug 24 16:20 bin -> usr/bin
drwxr-xr-x   2 root root 4.0K Aug 24 16:20 boot
drwxr-xr-x   5 root root  340 Feb  5 07:40 dev
drwxr-xr-x   1 root root 4.0K Nov  4 04:06 docker-entrypoint.d
-rwxr-xr-x   1 root root 1.6K Nov  4 04:05 docker-entrypoint.sh
drwxr-xr-x   1 root root 4.0K Feb  5 07:40 etc
drwxr-xr-x   2 root root 4.0K Aug 24 16:20 home
lrwxrwxrwx   1 root root    7 Aug 24 16:20 lib -> usr/lib
lrwxrwxrwx   1 root root    9 Aug 24 16:20 lib64 -> usr/lib64
drwxr-xr-x   2 root root 4.0K Nov  3 20:44 media
drwxr-xr-x   2 root root 4.0K Nov  3 20:44 mnt
drwxr-xr-x   2 root root 4.0K Nov  3 20:44 opt
dr-xr-xr-x 199 root root    0 Feb  5 07:40 proc
drwx------   2 root root 4.0K Nov  3 20:44 root
drwxr-xr-x   1 root root 4.0K Feb  5 07:40 run
lrwxrwxrwx   1 root root    8 Aug 24 16:20 sbin -> usr/sbin
drwxr-xr-x   2 root root 4.0K Nov  3 20:44 srv
dr-xr-xr-x  13 root root    0 Nov  1 08:19 sys
drwxrwxrwt   2 root root 4.0K Nov  3 20:44 tmp
drwxr-xr-x   1 root root 4.0K Nov  3 20:44 usr
drwxr-xr-x   1 root root 4.0K Nov  3 20:44 var
root@container_host_name:/# cd root
root@container_host_name:~# ls -lh
total 0

小提示:
如果要用-it,必须使用一个shell解释器(命令),比如/bin/bash

六、docker start/restart/stop/pause/unpause

概念理解铺垫

docer容器运行的几个核心状态:

状态 (State)中文描述触发命令 (示例)详细含义与资源占用
Created初建状态docker create容器已创建,文件系统已准备好,但主进程尚未启动。不占用 CPU/内存资源,仅占用磁盘空间。
Running运行状态docker start
docker run
容器的主进程(Init 进程)正在运行。占用 CPU 和 内存。
Paused暂停状态docker pause利用 Cgroups 冻结容器内所有进程。进程依然存在于内存中,但不再获取 CPU 时间片。用于临时挂起任务。
Stopped停止状态docker stop
docker kill
容器主进程已退出。在 docker ps -a 中显示为 Exited。不占用 CPU 和 内存,但保留容器的可写层数据。
Deleted删除状态docker rm容器的元数据、配置和可写层文件被彻底从磁盘抹除。这是生命周期的终点。

1. docker stop 优雅关闭容器

docker stop会发送一个sigterm(终止信号)给对应的容器进程,等待10s,让进行主动退出,同时保存相关配置(数据卷、网络配置、容器文件系统)。超过10s直接强制关闭(等价于docker kill)

ps -a
CONTAINER ID   IMAGE          COMMAND                  CREATED      STATUS         PORTS     NAMES
977d80ec3def   nginx:latest   "/docker-entrypoint.…"   5 days ago   Up 2 seconds   80/tcp    busy_kilby
docker stop -t 20 977d80ec3def
977d80ec3def
docker ps -a
CONTAINER ID   IMAGE          COMMAND                  CREATED      STATUS                     PORTS     NAMES
977d80ec3def   nginx:latest   "/docker-entrypoint.…"   5 days ago   Exited (0) 4 seconds ago             busy_kilby

小提示:
可以通过-t选项修改默认等待时间,上述命令中docker stop -t 20将默认等待时间改成了20s

2. docker start 启动容器

用于启动Created或Exited状态的容器,其他章台不会生效

docker ps -a
CONTAINER ID   IMAGE          COMMAND                  CREATED      STATUS                     PORTS     NAMES
977d80ec3def   nginx:latest   "/docker-entrypoint.…"   5 days ago   Exited (0) 4 seconds ago             busy_kilby

docker start 977d80ec3def
977d80ec3def
docker ps
CONTAINER ID   IMAGE          COMMAND                  CREATED      STATUS         PORTS     NAMES
977d80ec3def   nginx:latest   "/docker-entrypoint.…"   5 days ago   Up 2 seconds   80/tcp    busy_kilby

3. docker restart 重启容器

等价于 docker stop + docker :

docker ps
CONTAINER ID   IMAGE          COMMAND                  CREATED      STATUS         PORTS     NAMES
977d80ec3def   nginx:latest   "/docker-entrypoint.…"   5 days ago   Up 2 seconds   80/tcp    busy_kilby
docker restart 977d80ec3def
977d80ec3def
docker ps 
CONTAINER ID   IMAGE          COMMAND                  CREATED      STATUS         PORTS     NAMES
977d80ec3def   nginx:latest   "/docker-entrypoint.…"   5 days ago   Up 4 seconds   80/tcp    busy_kilby

4. docker pause/unpause 冻结/恢复容器

pause冻结的意思是保存当前容器的所有状态,但容器不继续运行,实现原理是保存该容器进程的内存资源,但是CPU不再调度该进程。unpause则会解除这个状态,让容器继续运行

docker pause 977d80ec3def
977d80ec3def
docker ps -a
CONTAINER ID   IMAGE          COMMAND                  CREATED      STATUS                   PORTS     NAMES
docker stats 977d80ec3def
CONTAINER ID   NAME         CPU %     MEM USAGE / LIMIT     MEM %     NET I/O         BLOCK I/O        PIDS 
977d80ec3def   busy_kilby   0.00%     5.699MiB / 1.634GiB   0.34%     1.16kB / 126B   2.78MB / 4.1kB   3 
docker unpause 977d80ec3def
977d80ec3def
docker stats 977d80ec3def
CONTAINER ID   NAME         CPU %     MEM USAGE / LIMIT   MEM %     NET I/O   BLOCK I/O   PIDS 
977d80ec3def   busy_kilby   0.12        -- / --             --        --        --          -- 


小提示:

  • docker stats可以查看容器的资源占用情况(展示宿主机上实际总cpu消耗率)
  • pause是Up的一个子状态

5. docker kill 杀死容器

这种方式简单粗暴,直接给容器“断电”,谨慎使用。

优点是关闭速度快

docker ps
CONTAINER ID   IMAGE          COMMAND                  CREATED      STATUS          PORTS     NAMES
977d80ec3def   nginx:latest   "/docker-entrypoint.…"   5 days ago   Up 21 minutes   80/tcp    busy_kilby
docker kill 977d80ec3def
977d80ec3def

七、docker top 查询指定容器进程信息

查看容器中运行的进程信息,支持 Linux的ps 命令参数

1. 语法格式

docker top container [linux_ps_options]

2. 使用示例

 docker ps
CONTAINER ID   IMAGE          COMMAND                  CREATED      STATUS          PORTS     NAMES
977d80ec3def   nginx:latest   "/docker-entrypoint.…"   5 days ago   Up 10 minutes   80/tcp    busy_kilby
docker top 977d80ec3def ps -aux
Error response from daemon: ps: error: process ID list syntax error
docker top 977d80ec3def -aux
USER                PID                 %CPU                %MEM                VSZ                 RSS                 TTY                 STAT                START               TIME                COMMAND
root                3958704             0.0                 0.5                 14764               9040                ?                   Ss                  13:58               0:00                nginx: master process nginx -g daemon off;
systemd+            3958751             0.0                 0.2                 15220               3444                ?                   S                   13:58               0:00                nginx: worker process
systemd+            3958752             0.0                 0.2                 15220               3444                ?                   S                   13:58               0:00                nginx: worker process

小提示:

  • linux中ps -aux主要用于查看CPU、内存资源以及进程状态
  • linux中ps -ef 主要用于查看继承父子关系(含有PID PPID信息)

八、docker stats 查看所有容器的资源占用情况

docker stats可以查看所有容器的cpu、内存、IO、网络资源的占用情况,但是无进程细节

1. 语法格式

docker stats [options] [containers]

2. 常用选项

  • –all: 显示所有容器,包括未启动
  • –no-trunc: 不截断输出信息
  • –no-stream:只输出执行命令时的状态信息(默认实时更新)

3. 使用示例

docker stats --no-stream --all 
CONTAINER ID   NAME                  CPU %     MEM USAGE / LIMIT     MEM %     NET I/O         BLOCK I/O       PIDS
1fd62da5e5e0   interesting_darwin    0.05%     458.4MiB / 1.634GiB   27.40%    796B / 126B     105MB / 134MB   21
f25a5aaa8a33   optimistic_shockley   0.00%     0B / 0B               0.00%     0B / 0B         0B / 0B         0
977d80ec3def   busy_kilby            0.00%     3.258MiB / 1.634GiB   0.19%     1.46kB / 126B   4.53MB / 0B     3

九、docker cp 容器和宿主机的数据拷贝

docker cp 是 Docker 中用于在宿主机和容器之间双向拷贝文件/目录的核心命令,支持容器运行或停止状态下的数据传输,是容器数据迁移、配置修改、日志提取的常用工具。

1. 语法格式

docker cp 支持两种拷贝方向,语法结构如下:

# 宿主机 → 容器:将宿主机的文件/目录拷贝到容器内指定路径
docker cp [options] 宿主机路径 容器名/ID:容器内路径

# 容器 → 宿主机:将容器内的文件/目录拷贝到宿主机指定路径
docker cp [options] 容器名/ID:容器内路径 宿主机路径

小提示:

  • 路径支持绝对路径和相对路径(相对当前终端所在目录);
  • 拷贝目录时,会递归拷贝目录下所有文件/子目录,无需额外参数。

2. 常用选项

选项说明使用场景
-a归档模式拷贝,保留文件的权限、所有者、时间戳等元数据拷贝需要保持权限的配置文件、可执行程序
-L跟随宿主机上的软链接,拷贝链接指向的实际文件(而非链接本身)宿主机路径是软链接时,需拷贝实际文件

3. 使用示例

3.1 案例介绍

  1. 宿主机 → 容器:将本地自定义的 nginx.conf 配置文件拷贝到运行中的 nginx 容器配置目录;
  2. 容器 → 宿主机:从 nginx 容器中提取访问日志到宿主机本地目录;
  3. 验证拷贝结果,确认数据一致性。

3.2 实现演示

步骤1:准备宿主机测试文件
# 1. 创建宿主机测试目录和自定义nginx配置文件
# 2. 创建自定义的index.html(内容极简,新手易理解)
cat > ~/docker_cp_test/index.html << EOF
<!DOCTYPE html>
<html>
<head>
    <title>My Custom Nginx Page</title>
</head>
<body>
    <h1>Hello Docker! 🐳</h1>
    <p>这个页面是从宿主机拷贝到容器的!</p>
</body>
</html>
EOF

# 2. 查看宿主机文件(确认存在)
cat > ~/docker_stu/docker_cp_test/index.html <<EOF
> <!DOCTYPE html>
<html>
<head>
    <title>My Custom Nginx Page</title>
</head>
<body>
    <h1>Hello Docker! 🐳</h1>
    <p>这个页面是从宿主机拷贝到容器的!</p>
</body>
</html>
EOF


步骤2:宿主机 → 容器拷贝配置文件
docker run --name nginx_cp_demo -p 80:80 -d nginx:latest 
3e41e3f7d876571a638cab3670f3f6d092e8aeb8dafb813a602ec57e9399f6b4
docker ps
CONTAINER ID   IMAGE          COMMAND                  CREATED         STATUS         PORTS                                 NAMES
3e41e3f7d876   nginx:latest   "/docker-entrypoint.…"   2 seconds ago   Up 2 seconds   0.0.0.0:80->80/tcp, [::]:80->80/tcp   nginx_cp_demo
步骤3:查看默认nginx页面
curl 127.0.0.1
<!DOCTYPE html>
<html>
<head>
<title>Welcome to nginx!</title>
<style>
html { color-scheme: light dark; }
body { width: 35em; margin: 0 auto;
font-family: Tahoma, Verdana, Arial, sans-serif; }
</style>
</head>
<body>
<h1>Welcome to nginx!</h1>
<p>If you see this page, the nginx web server is successfully installed and
working. Further configuration is required.</p>

<p>For online documentation and support please refer to
<a href="http://nginx.org/">nginx.org</a>.<br/>
Commercial support is available at
<a href="http://nginx.com/">nginx.com</a>.</p>
<p><em>Thank you for using nginx.</em></p>
</body>
</html>
步骤4:拷贝文件(宿主机->容器)并且查看更新后的页面
docker cp -a  ./index.html nginx_cp_demo:/usr/share/nginx/html/index.html
Successfully copied 2.05kB to nginx_cp_demo:/usr/share/nginx/html/index.html
curl 127.0.0.1
<!DOCTYPE html>
<html>
<head>
    <title>My Custom Nginx Page</title>
</head>
<body>
    <h1>Hello Docker! 🐳</h1>
    <p>这个页面是从宿主机拷贝到容器的!</p>
</body>
</html>

小提示:

  • 拷贝容器内文件时,即使容器处于 Exited 状态也可执行(容器文件系统未删除);
  • 若拷贝到容器的路径不存在,docker cp 会自动创建该路径;
  • docker cp如果目标路径有相同的文件或者文件夹会直接覆盖!
  • 针对-L,会直接把原路径的软连接指向文件(而非软连接)拷贝过去
  • 避免拷贝容器内的 /proc、/sys 等虚拟文件系统目录(无实际意义)。

3.3 常见问题解决

  1. 权限问题:拷贝到容器后文件权限异常
    # 解决方案:使用 -a 选项保留元数据
    docker cp -a 宿主机文件 容器名:容器路径
    
  2. 路径空格问题:路径包含空格时需用引号包裹
    docker cp "/home/user/my dir/file.txt" nginx_cp_demo:/tmp/
    

十、docker update 更新容器配置

1. 语法格式

docker update [options] container

2. 常用选项

  • –cpus: 显示cpu数量
  • –cpuset-cpus: 指定只能使用宿主机的那块cpu
  • –memory: 指定容器的内存大小
  • –memory-swap: 指定容器的交换内存大小
  • –cpu-quota: 指定容器一个cpu周期内,允许容器被调度的最长时间(单位微秒,默认无限制),超过该时间,当前CPU周期,容器进程将被限流
  • –cpu-period:指定一段时间(周期),时间结束后若cpu-quota的配额用完,当前cpu周期该容器进程会被限流,未超过cpu-quota则当前cpu周期,docker进程会一直占用cpu

3. 使用示例

docker ps
CONTAINER ID   IMAGE          COMMAND                  CREATED          STATUS          PORTS                                 NAMES
3e41e3f7d876   nginx:latest   "/docker-entrypoint.…"   44 minutes ago   Up 44 minutes   0.0.0.0:80->80/tcp, [::]:80->80/tcp   nginx_cp_demo

docker update --cpuset-cpus=0,1 --cpus=1.5 --memory=512m --memory-swap=600m 3e41e3f7d876

小提示:

  • 容器内存大小 = memory-swap
  • –memory-swap = --memory + 虚拟内存大小
  • 虚拟内存就是硬盘中部分空间,它的缓存速度比较慢,因此–memory-swap与–memory的比值不要太大!
  • –memory-swap必须大于等于–memory
  • 限流:意思是当前周期如果额度大于quota,那么这个周期该线程被cpu调度的优先级将会下调

十一、docker container prune 批量删除容器

1. 语法格式

docker conatiner prune 

2. 常用选项

  • -f : 执行prune会有一个提示弹窗,-f可以忽略该弹窗,直接执行,多用于自动化脚本

3. 使用示例

docker container prune
WARNING! This will remove all stopped containers.
Are you sure you want to continue? [y/N] y
Deleted Containers:
f25a5aaa8a3335905ed9a49630e97a898da0fe7a81a772882fccdeb2462a2ab2

Total reclaimed space: 0B


END

请添加图片描述

更多推荐