• Linux系统有7个运行级别(runlevel):

  • 运行级别0:系统停机状态,系统默认运行级别不能设为0,否则无法正常启动

  • 运行级别1:单用户模式,可用于修改root账户密码,禁止远程登录

  • 运行级别2:多用户模式(没有NFS)

  • 运行级别3:完全的多用户状态(有NFS),登录后进去控制台命令行模式

  • 运行级别4:系统未使用,保留

  • 运行级别5:X11控制台,登录后进去图形GUI模式

  • 运行级别6:系统正常关闭并重启,默认运行级别不能设置为6,否则无法正常启动

1.Linux文件和目录管理

pwd

print work directory 打印当前工作目录 得到路径

cd

Change Directory的缩写,这是用来变换工作目录的命令

  • cd ~回到当前用户的家目录

  • cd ..回到上一级目录

  • cd [相对或绝对目录路径]进入指定目录

ls

list 列出目录,在Linux系统当中, ls 命令可能是最常被运行的

选项与参数:

  • -a :全部的文件,连同隐藏文件( 开头为 . 的文件) 一起列出来(常用)

  • -l :长数据串列出,包含文件的属性与权限等等数据;(常用)

ll

  • 等同于ls -l

mkdir

make directory 创建新的目录

选项与参数:

  • -p :创建多级目录

    -  mkdir -p test1/test2/test3   

rmdir

remove directory 删除空的目录,非空目录用rm命令

  • -p 删除多级目录

    - rmdir -p test4/test41

touch

创建文件

cp

copy

 cp source target

选项与参数:

  • -r:递归持续复制,用于目录的复制行为;(常用)

mv

move移动,也就是剪切; 重命名也是这个命令 mv 原文件 新名字

mv source target

rm

remove (rmdir 只能删除空目录)移除文件或目录

选项与参数:

  • -f :就是 force 的意思,忽略不存在的文件,不会出现警告信息;

  • -i :互动模式,在删除前会询问使用者是否确定删除

  • -r :递归删除啊!最常用在目录的删除了!这是非常危险的选项!!!

rm命令 特别是 rm-rf 可以强制删除任意文件或目录, 强大且危险

因为Linux下时没有回收站概念的,删了就等于是彻底删除了.

所以建议约定某个文件夹为回收站,使用 mv命令来"删除", 然后对于十分确定要删除的再使用rm删除.

2.查看文件

可以把sudo.conf复制一份到Lab里操作,避免修改系统的配置文件

cat

直接在交互窗口显示文件内容, 适合文本内容比较少的时候用.

  • cat /etc/sudo.conf

more

使用more查看/etc/sudo.conf文件,可以显示百分比

  • 回车 向下一行

  • 空格 向下一页

  • b 上一页

  • q 退出查看

more /etc/sudo.conf

less (推荐)

使用less查看/etc/sudo.conf文件,less /etc/sudo.conf

  • 使用键盘上的PgUp和PgDn向上和向下翻页

  • 空格或者n 也可以向下翻页

  • b 上一页

  • q 退出查看

  • 输入 /关键字 搜索

tail

使用 tail -数字 可以查看/etc/sudo.conf文件的后几行 (适用于只关心最新日志内容的场景下使用)

tail -10 /etc/sudo.conf 或者 tail -n 10 /etc/sudo.conf

使用 -f可以保持对文件的监控, 使用Ctrl+C退出.

tail -f /etc/sudo.conf

实践中往往同时指定,例如tail -10f /etc/sudo.conf可以持续监控sudo.conf文件的后10行

3.管道符 "|"

它可以连接多个Linux命令,命令1 | 命令2 | 命令3

将指令1输出(结果)作为指令2的输入,指令2再对指令1的结果进行处理,指令2输出结果作为指令3的输入,指令3在对指令2的结果进行处理

要求:前面的指令一定要有输出

例如

  • 分页查看/etc下的文件、目录 ls /etc | less

  • 显示具体网络连接数量 netstat -an | grep -i established | wc -l

4.grep命令

作用是在文件中提取和匹配符合条件的字符串行

语法 grep [选项] "搜索内容" 文件名

选项

  • -i 忽略大小写

  • -n 输出行号

例如 grep -in sudo sudo.conf

5.Vi/Vim编辑器

文本编辑器(类似于windows中txt文本或者ediplus等),是Visual interface的简称,而vim则是vi的强化版

使用

基本上 vi/vim 共分为三种模式,分别是命令模式(Command mode)输入模式(Insert mode)底线命令模式(Last line mode)

打开文件

vim fileName

此时打开目标文件,进入了命令模式

编辑文件

打开文件后,按

  • i 在光标位置之前开始写内容 (最常用) insert

  • a 在光标之后开始写内容 append

  • o 新增一行开始写内容

编辑完成后,按 Esc退回到命令模式

搜索等操作

在命令模式下 输入 :具体命令 然后按下回车即可

  • 例如 :\关键字可以进行搜索

保存或退出

  • :q 直接退出,如果有修改尚未保存会无法退出

  • :q! 强制直接退出,舍弃修改

  • :wq 保存修改并退出

  • :wq!强制保存修改并退出

更多

更多功能可以参考 vi/Vim命令

6.打包压缩和解压缩

在Linux常见压缩文件格式:tar、tar.gz

tar 仅打包

  • tar -cf xxx.tar DirName1 DirName2 .... file或文件夹 将指定的文件或文件夹打包

  • tar -xf xxx.tar 解包文件

tar.gz 打包并尝试压缩

  • tar -czf xxx.tar.gz DirName1 DirName2 .... 文件或文件夹压缩

  • tar -zxvf xxx.tar.gz 解压

7.linux防火墙操作命令

防火墙百科

防火墙命令

system control

#查看防火墙状态
systemctl status firewalld.service
#启动
systemctl start firewalld.service
#停止/关闭
systemctl stop firewalld.service
#重启
systemctl restart firewalld.service

新增/移除 开放端口规则

firewall-cmd --zone=public --add-port=80/tcp --permanent
#说明:
#–zone #作用域
#–add-port=80/tcp #添加端口,格式为:端口/通讯协议
#–-permanent 永久生效,没有此参数重启后失效
 
#开放多个端口:
firewall-cmd --zone=public --add-port=80-90-9090-8080/tcp --permanent

#删除
firewall-cmd --zone=public --remove-port=80/tcp --permanent

#重新加载防火墙配置规则使修改生效
firewall-cmd --reload

#查看防火墙已开放的端口信息  
firewall-cmd --list-ports

8.用户和用户组

  • 用户

    • - 创建用户:useradd <用户名> (创建用户时默认会创建与用户名相同的用户组)

    • - 设置密码:passwd <用户名>

    • - 删除用户:userdel <用户名>

    • - 查看所有用户: cat /etc/passwd (系统默认已经有了很多用户,我们新增的放在最后边)

  • 用户组

    • - 查看用户所属组 groups <用户名>

    • - 新建用户组:groupadd <用户组名称>

    • - 删除用于组: groupdel <用于组名称>

    • - 查看所有用户组 cat etc/group

  • 更改用户配置

    • - 添加用户的附属用户组: usermod -a -G <用户组名> <用户名>

    • - 将用户从用户组中删除:gpasswd -d <用户名> <用户组名>

    • - 更改用户主用户组:usermod -g <新用户组名> <用户名>

9.Linux的文件权限设计

先确定用户的身份, 然后查找该身份对应的权限 , 从而确定用户的权限

Linux 系统是一种典型的多用户系统,不同的用户处于不同的地位,拥有不同的权限。

为了保护系统的安全性,Linux 系统对不同的用户访问同一文件(包括目录文件)的权限做了不同的规定。

在 Linux 中我们可以使用 ll 或者 ls –l 命令来显示一个文件的属性以及文件所属的用户和组,如:

[root@localhost test]# ll
总用量 0
drwxr-xr-x. 2 root root 6 7月  27 01:20 student
-rw-r--r--. 1 root root 0 7月  26 20:23 t1.txt
-rw-r--r--. 1 root root 0 7月  26 20:23 t2.txt
-rw-r--r--. 1 root root 0 7月  26 20:20 test.txt

文件类型和权限

  1. 第一个字母 代表 文件类型当为 d 则是目录 directory当为 - 则是文件;若是 l 则表示为链接文档(link file);

  2. 接下来的字符中,以三个为一组,且均为 rwx 的三个参数的组合。其中, r 代表可读(read)、 w 代表可写(write)、 x 代表可执行(execute)注意的是,这三个权限的位置不会改变,如果没有权限,就会出现减号 - 而已 第一组 :当前用户拥有的权限. 即属主权限. 第二组 :当前文件所在的用户组拥有的权限. 即属组权限. 第三组 :其他人拥有的权限 (非当前用户和同组人)

rwx

r-x

r-x

.

属主权限

属组权限

others权限

更改属主和属组 chown

chown (change owner) : 修改所属用户与组。

  • 只修改属主: chown 新属主名 文件名

  • 只修改属组: chown :新属组名 文件名

  • 同时修改属主和属组: chown 新属主名:新属组名 文件名

  • 参数-R可以递归修改目录及其子文件. 例如 chown 新属主名:新属组名 目录名

R 表示 recursion

修改权限 chmod

chmod (change mode)

有两种写法

  • 第一种

    • u代表属主(user) g代表属组(group) o代表其他人(other)

    • 使用时使用+或-表示权限变更. 例如 chmod g+w fileName chmod o-x fileName

  • 第二种

    • 用二进制 100 也就是十进制4 表示r, 用二进制 010 也就是2表示w,用二进制 001也就是1表示x.那么就可以用数字0~7来表示所拥有的的权限. 例如0就是 ---, 3就是 -wx,7就是 rwx

    • 在使用时指定一个三个数来表示新的权限. 例如 chmod 777 fileName就是都是rwx,而 chmod 744 fileName就是属主 rwx,属组和其它人都是 r--

    • 如果不够3位,相当于前边补0, 例如 77 等价于 077.

语义

二进制

十进制

---

000

0

--x

001

1

-w-

010

2

-wx

011

3

r--

100

4

r-x

101

5

rw-

110

6

rwx

111

7

参数-R可以递归修改目录及其子文件.

10.进程管理

类似于Windows的任务管理器

ps

process

使用ps指令即可查看当前系统中正在执行的进程的各种进程信息

语法 ps –选项

选项说明:

  • -a:显示当前终端的所有进程信息

  • -u:以用户的形式显示进程信息

  • -x:显示后台进程运行的参数

[root@localhost ~]# ps -aux
USER        PID %CPU %MEM    VSZ   RSS TTY      STAT START   TIME COMMAND
root          1  0.3  0.0 194736  7928 ?        Ss   17:09   0:04 /usr/lib/systemd/systemd --switched-
root          2  0.0  0.0      0     0 ?        S    17:09   0:00 [kthreadd]
root          3  0.0  0.0      0     0 ?        S    17:09   0:00 [ksoftirqd/0]
root          5  0.0  0.0      0     0 ?        S<   17:09   0:00 [kworker/0:0H]
root          6  0.0  0.0      0     0 ?        S    17:09   0:00 [kworker/u256:0]
root          7  0.0  0.0      0     0 ?        S    17:09   0:00 [migration/0]
root          8  0.0  0.0      0     0 ?        S    17:09   0:00 [rcu_bh]
root          9  0.0  0.0      0     0 ?        S    17:09   0:00 [rcu_sched]
root         10  0.0  0.0      0     0 ?        S<   17:09   0:00 [lru-add-drain]
root         11  0.0  0.0      0     0 ?        S    17:09   0:00 [watchdog/0]
root         12  0.0  0.0      0     0 ?        S    17:09   0:00 [watchdog/1]

指令说明

  • USER:用户名称

  • PID:进程号

  • %CPU:进程占用CPU的百分比

  • %MEM:进程占用物理内存的百分比 memory

  • VSZ:进程占用的虚拟内存大小(单位:KB)

  • RSS:进程占用的物理内存大小(单位:KB)

  • TTY:终端名称,缩写 .

  • STAT:进程状态, status

    • S-睡眠

    • s-表示该进程是会话的先导进程

    • N-表示进程拥有比普通优先级更低的优先级

    • R-正在运行

    • D-短期等待

    • Z-僵死进程

    • T-被跟踪或者被停止等等

  • STARTED:进程的启动时间

  • TIME:进程使用CPU的总时间

  • COMMAND:启动进程所用的命令和参数,如果过长会被截断显示

通常使用 ps -aux | grep 关键字来查看我们关心的进程信息

netstat

net status

netstat -ntlp  查看系统中的程序运行在哪些端口上

[root@localhost ~]# netstat -ntlp
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address           Foreign Address         State       PID/Program name
tcp        0      0 0.0.0.0:111             0.0.0.0:*               LISTEN      1/systemd
tcp        0      0 0.0.0.0:6000            0.0.0.0:*               LISTEN      10734/X
tcp        0      0 192.168.122.1:53        0.0.0.0:*               LISTEN      10678/dnsmasq
tcp        0      0 0.0.0.0:22              0.0.0.0:*               LISTEN      10313/sshd
tcp        0      0 127.0.0.1:631           0.0.0.0:*               LISTEN      10310/cupsd
tcp        0      0 127.0.0.1:25            0.0.0.0:*               LISTEN      10547/master
tcp        0      0 127.0.0.1:6010          0.0.0.0:*               LISTEN      10754/sshd: root@pt
tcp        0      0 127.0.0.1:6011          0.0.0.0:*               LISTEN      11200/sshd: root@pt
tcp        0      0 127.0.0.1:6012          0.0.0.0:*               LISTEN      13321/sshd: root@pt
tcp6       0      0 :::111                  :::*                    LISTEN      1/systemd
tcp6       0      0 :::6000                 :::*                    LISTEN      10734/X
tcp6       0      0 :::22                   :::*                    LISTEN      10313/sshd
tcp6       0      0 ::1:631                 :::*                    LISTEN      10310/cupsd
tcp6       0      0 ::1:25                  :::*                    LISTEN      10547/master
tcp6       0      0 ::1:6010                :::*                    LISTEN      10754/sshd: root@pt
tcp6       0      0 ::1:6011                :::*                    LISTEN      11200/sshd: root@pt
tcp6       0      0 ::1:6012                :::*                    LISTEN      13321/sshd: root@pt

kill

关闭进程

一般是按照软件的正常操作来关闭,但如果出现一些异常导致无法正常关闭的时候可以用kill.

  • kill 进程id 关闭指定进程

  • kill -9 进程id 强制关闭

11.查看资源占用情况

top 查看资源占用情况

可以通过 ctrl+c来结束

free -h 查看内存使用情况

free -h

查看磁盘使用情况

  • lsblk 查看磁盘分区情况

  • df -h 查看磁盘容量占用情况

[root@localhost Lab]# lsblk
NAME            MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
sda               8:0    0   20G  0 disk
├─sda1            8:1    0    1G  0 part /boot
└─sda2            8:2    0   19G  0 part
  ├─centos-root 253:0    0   17G  0 lvm  /
  └─centos-swap 253:1    0    2G  0 lvm  [SWAP]
sr0              11:0    1 1024M  0 rom

[root@localhost Lab]# df -h
文件系统                 容量  已用  可用 已用% 挂载点
/dev/mapper/centos-root   17G  4.8G   13G   29% /
devtmpfs                  16G     0   16G    0% /dev
tmpfs                     16G     0   16G    0% /dev/shm
tmpfs                     16G   13M   16G    1% /run
tmpfs                     16G     0   16G    0% /sys/fs/cgroup
/dev/sda1               1014M  166M  849M   17% /boot
tmpfs                    3.2G   12K  3.2G    1% /run/user/0

12.docker 命令

容器生命周期管理

  • run - 创建并启动一个新的容器。

    • 常用参数说明:

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

      • -it: 交互式运行容器,分配一个伪终端。

      • --name: 给容器指定一个名称。

      • -p: 端口映射,格式为 host_port:container_port

      • -v: 挂载卷,格式为 host_dir:container_dir

      • --rm: 容器停止后自动删除容器。

      • --env-e: 设置环境变量。

      • --network: 指定容器的网络模式。

      • --restart: 容器的重启策略(如 noon-failurealwaysunless-stopped)。

      • -u: 指定用户。

  • start/stop/restart - 这些命令主要用于启动、停止和重启容器。

  • kill - 立即终止一个或多个正在运行的容器

    • OPTIONS说明:

      • -s, --signal: 发送给容器的信号(默认为 SIGKILL)。

    • 常用信号

      • SIGKILL: 强制终止进程(默认信号)。

      • SIGTERM: 请求进程终止。

      • SIGINT: 发送中断信号,通常表示用户请求终止。

      • SIGHUP: 挂起信号,通常表示终端断开。

  • rm - 于删除一个或多个已经停止的容器。

    • OPTIONS说明:

      • -f, --force: 强制删除正在运行的容器(使用 SIGKILL 信号)。

      • -l, --link: 删除指定的连接,而不是容器本身。

      • -v, --volumes: 删除容器挂载的卷。

  • pause/unpause - 暂停和恢复容器中的所有进程。

  • create - 创建一个新的容器,但不会启动它。

    • 常用参数

      • --name: 给容器指定一个名称。

      • -p, --publish: 端口映射,格式为 host_port:container_port

      • -v, --volume: 挂载卷,格式为 host_dir:container_dir

      • -e, --env: 设置环境变量。

      • --network: 指定容器的网络模式。

      • --restart: 容器的重启策略(如 noon-failurealwaysunless-stopped)。

      • -u, --user: 指定用户。

      • --entrypoint: 覆盖容器的默认入口点。

      • --detach: 在后台创建容器。

  • exec - 在运行中的容器内执行一个新的命令。

    • 常用参数

      • -d, --detach: 在后台运行命令。

      • --detach-keys: 覆盖分离容器的键序列。

      • -e, --env: 设置环境变量。

      • --env-file: 从文件中读取环境变量。

      • -i, --interactive: 保持标准输入打开。

      • --privileged: 给这个命令额外的权限。

      • --user, -u: 以指定用户的身份运行命令。

      • --workdir, -w: 指定命令的工作目录。

      • -t, --tty: 分配一个伪终端。

  • rename - 重命名容器。

容器操作

  • ps - 列出 Docker 容器

    • OPTIONS说明:

      • -a, --all: 显示所有容器,包括停止的容器。

      • -q, --quiet: 只显示容器 ID。

      • -l, --latest: 显示最近创建的一个容器,包括所有状态。

      • -n: 显示最近创建的 n 个容器,包括所有状态。

      • --no-trunc: 不截断输出。

      • -s, --size: 显示容器的大小。

      • --filter, -f: 根据条件过滤显示的容器。

      • --format: 格式化输出。

  • inspect - 获取 Docker 对象(容器、镜像、卷、网络等)的详细信息。

    • OPTIONS 说明:

      • -f, --format: 使用 Go 模板语法格式化输出。

      • --type: 返回指定类型的对象信息(可选类型:containerimagenetworkvolume)。

  • top - 显示指定容器中的正在运行的进程。

  • attach - 允许用户附加到正在运行的容器并与其交互。

    • 常用选项

      • --detach-keys: 设置一个在容器中分离的键序列(例如,ctrl-c)。

      • --no-stdin: 不附加标准输入。

      • --sig-proxy: 当键盘中断时,将信号代理到容器(默认为 true)。

  • events - 获取 Docker 守护进程生成的事件。

    • OPTIONS说明:

      • -f, --filter: 根据提供的条件过滤输出。

      • --format: 使用 Go 模板格式化输出。

      • --since: 显示从指定时间开始的事件。

      • --until: 显示直到指定时间的事件。

  • logs - 获取和查看容器的日志输出。

    • 常用选项:

      • -f, --follow: 跟随日志输出(类似于 tail -f)。

      • --since: 从指定时间开始显示日志。

      • -t, --timestamps: 显示日志时间戳。

      • --tail: 仅显示日志的最后部分,例如 --tail 10 显示最后 10 行。

      • --details: 显示提供给日志的额外详细信息。

      • --until: 显示直到指定时间的日志。

  • wait - 允许用户等待容器停止并获取其退出代码。

  • export - 将容器的文件系统导出为 tar 归档文件。

    • -o, --output: 将输出保存到指定文件,而不是输出到标准输出。

  • port - 显示容器的端口映射信息。

  • stats - 实时显示 Docker 容器的资源使用情况。

    • OPTIONS 说明:

      • --all , -a :显示所有的容器,包括未运行的。

      • --format :指定返回值的模板文件。

      • --no-stream :展示当前状态就直接退出了,不再实时更新。

      • --no-trunc :不截断输出。

  • update - 更新 Docker 容器的资源限制,包括内存、CPU 等。

    • 常用选项 OPTIONS:

      • --memory, -m:设置容器的内存限制。

      • --memory-swap:设置容器的内存和交换空间(swap)的总限制。如果设置为 -1,表示不限制交换空间。

      • --cpu-shares:设置容器的 CPU 优先级,相对值。默认为 1024,较大的值表示较高的优先级。

      • --cpus:设置容器使用的 CPU 核心数。这个选项可以限制容器最多使用的 CPU 核心数。

      • --cpu-period:设置 CPU 周期时间。用于配合 --cpu-quota 限制容器的 CPU 使用时间。单位是微秒(默认值:100000 微秒 = 100ms)。

      • --cpu-quota:设置容器在每个周期内可以使用的最大 CPU 时间。单位是微秒。需要与 --cpu-period 配合使用。

      • --blkio-weight:设置块 I/O 权重(范围:101000),表示容器对磁盘 I/O 操作的优先级。默认值为 500

      • --pids-limit:设置容器可以使用的最大进程数

      • --restart:设置容器的重启策略(noon-failurealwaysunless-stopped)。

容器的root文件系统(rootfs)命令

  • commit - 允许用户将容器的当前状态保存为新的 Docker 镜像。

    • OPTIONS说明:

      • -a :提交的镜像作者。

      • -c :使用 Dockerfile 指令来创建镜像。

      • -m :提交时的说明文字。

      • -p :提交镜像前暂停容器(默认为 true)。

  • cp - 用于在容器和宿主机之间复制文件或目录。

  • diff - 显示 Docker 容器文件系统的变更。

镜像仓库

  • login/logout - 管理 Docker 客户端与 Docker 注册表的身份验证。

    • SERVER: Docker 注册表的服务器地址(默认是 Docker Hub)。

    • -u, --username: 登录用户名。

    • -p, --password: 登录密码(不推荐在命令行使用)。

    • --password-stdin: 从标准输入读取密码。

  • pull - 从 Docker 注册表(例如 Docker Hub)中拉取(下载)镜像到本地。

    • 常用选项:

      • --all-tags, -a: 下载指定镜像的所有标签。

      • --disable-content-trust: 跳过镜像签名验证。

  • push - 将本地构建的 Docker 镜像推送(上传)到 Docker 注册表(如 Docker Hub 或私有注册表)。

    • --disable-content-trust :忽略镜像的校验,默认开启

  • search - 用于在 Docker Hub 或其他注册表中搜索镜像。

    • 常用选项:

      • --automated :只列出 automated build类型的镜像;

      • --no-trunc :显示完整的镜像描述;

      • -f <过滤条件>:列出收藏数不小于指定值的镜像。

本地镜像管理

  • images - 列出本地的 Docker 镜像。

    • OPTIONS 说明:

      • -a, --all: 显示所有镜像(包括中间层镜像)。

      • --digests: 显示镜像的摘要信息。

      • -f, --filter: 过滤输出,基于提供的条件。

      • --format: 使用 Go 模板格式化输出。

      • --no-trunc: 显示完整的镜像 ID。

      • -q, --quiet: 只显示镜像 ID。

  • rmi - 删除不再需要的镜像。

    • 常用选项:

      • -a, --all-tags: 指定仓库名称时,删除该仓库下的所有镜像。

      • -f, --force: 强制删除镜像,即使该镜像被容器使用。

      • --help: 打印帮助信息并退出。

      • --no-prune: 不删除悬空的父镜像。

      • -q, --quiet: 安静模式,不显示删除镜像的详细信息。

  • tag - 创建本地镜像的别名(tag)。

  • build - 从 Dockerfile 构建 Docker 镜像。

    • 常用选项:

      • -t, --tag: 为构建的镜像指定名称和标签。

      • -f, --file: 指定 Dockerfile 的路径(默认是 PATH 下的 Dockerfile)。

      • --build-arg: 设置构建参数。

      • --no-cache: 不使用缓存层构建镜像。

      • --rm: 构建成功后删除中间容器(默认开启)。

      • --force-rm: 无论构建成功与否,一律删除中间容器。

      • --pull: 始终尝试从注册表拉取最新的基础镜像。

    • 更多选项

      • --build-arg=[]: 设置构建镜像时的变量。

      • --cpu-shares: 设置 CPU 使用权重。

      • --cpu-period: 限制 CPU CFS 周期。

      • --cpu-quota: 限制 CPU CFS 配额。

      • --cpuset-cpus: 指定可使用的 CPU ID。

      • --cpuset-mems: 指定可使用的内存节点 ID。

      • --disable-content-trust: 忽略内容信任验证(默认启用)。

      • -f: 指定 Dockerfile 的路径。

      • --force-rm: 强制在构建过程中删除中间容器。

      • --isolation: 使用指定的容器隔离技术。

      • --label=[]: 设置镜像的元数据。

      • -m: 设置内存的最大值。

      • --memory-swap: 设置交换空间的最大值(内存 + 交换空间),-1 表示不限制交换空间。

      • --no-cache: 构建镜像时不使用缓存。

      • --pull: 尝试拉取基础镜像的最新版本。

      • --quiet, -q: 安静模式,构建成功后只输出镜像 ID。

      • --rm: 构建成功后删除中间容器(默认启用)。

      • --shm-size: 设置 /dev/shm 的大小,默认值为 64M。

      • --ulimit: 设置 Ulimit 配置。

      • --squash: 将 Dockerfile 中所有步骤压缩为一层。

      • --tag, -t: 为镜像指定名称和标签,格式为 name:tagname;可以在一次构建中为一个镜像设置多个标签。

      • --network: 在构建期间设置 RUN 指令的网络模式,默认值为 default

  • history - 查看指定镜像的历史层信息。

    • OPTIONS 说明:

      • -H, --human: 以人类可读的格式显示镜像大小(默认启用)。

      • --no-trunc: 显示完整的输出,不截断信息。

      • -q, --quiet: 仅显示镜像 ID。

  • save - 将一个或多个 Docker 镜像保存到一个 tar 归档文件中。

    • -o, --output: 指定输出文件的路径。

  • load - 从由 docker save 命令生成的 tar 文件中加载 Docker 镜像。

    • OPTIONS 说明:

      • -i, --input: 指定输入文件的路径。

      • -q, --quiet: 安静模式,减少输出信息。

  • import - 从一个 tar 文件或 URL 导入容器快照,从而创建一个新的 Docker 镜像。

    • OPTIONS 说明:

      • -c, --change: 在导入过程中应用 Dockerfile 指令,如 CMDENTRYPOINTENV 等。

      • -m, --message: 为导入的镜像添加注释。

info|version

  • info - 显示 Docker 的系统级信息,包括当前的镜像和容器数量。

    • 输出解释

      Client: Docker 客户端的相关信息。

      • Context: 当前 Docker 上下文。

      • Debug Mode: 客户端是否开启调试模式。

      • Plugins: 安装的客户端插件,如 buildxcompose

      Server: Docker 服务端(守护进程)的相关信息。

      • Containers: 容器的总数。

        • Running: 运行中的容器数量。

        • Paused: 暂停中的容器数量。

        • Stopped: 停止的容器数量。

      • Images: 镜像的总数。

      • Server Version: Docker 服务端的版本号。

      • Storage Driver: 使用的存储驱动(如 overlay2)。

      • Backing Filesystem: 后端文件系统类型。

      • Supports d_type: 是否支持 d_type

      • Native Overlay Diff: 是否支持原生 Overlay 文件系统。

      • Logging Driver: 使用的日志驱动(如 json-file)。

      • Cgroup Driver: 使用的 Cgroup 驱动(如 cgroupfs)。

      • Cgroup Version: Cgroup 的版本(如 1)。

      • Plugins: 服务端插件列表,包括卷、网络和日志插件。

      • Swarm: Swarm 模式的状态(如 inactive)。

      • Runtimes: 支持的运行时(如 runc)。

      • Default Runtime: 默认运行时(如 runc)。

      • Init Binary: 初始化二进制文件(如 docker-init)。

      • containerd version: 使用的 containerd 版本。

      • runc version: 使用的 runc 版本。

      • init version: 使用的 init 版本。

      • Security Options: 启用的安全选项(如 seccompselinux)。

      • Kernel Version: 内核版本。

      • Operating System: 操作系统名称。

      • OSType: 操作系统类型(如 linux)。

      • Architecture: 系统架构(如 x86_64)。

      • CPUs: CPU 数量。

      • Total Memory: 总内存。

      • Name: Docker 主机名。

      • ID: Docker 实例 ID。

      • Docker Root Dir: Docker 根目录。

      • Debug Mode: 服务端是否开启调试模式。

        • File Descriptors: 文件描述符数量。

        • Goroutines: Goroutines 数量。

        • System Time: 系统时间。

        • EventsListeners: 事件监听器数量。

      • HTTP Proxy: 配置的 HTTP 代理。

      • HTTPS Proxy: 配置的 HTTPS 代理。

      • No Proxy: 不使用代理的地址列表。

      • Registry: 使用的注册表地址。

      • Labels: 配置的标签。

      • Experimental: 是否启用了实验性功能。

      • Insecure Registries: 配置的不安全注册表列表。

      • Registry Mirrors: 注册表镜像列表。

      • Live Restore Enabled: 是否启用了实时恢复功能。

  • version - 显示 Docker 客户端和服务端的版本信息。

    输出解释

    Client: Docker 客户端的相关信息。

    • Version: 客户端的版本号。

    • API version: API 的版本号。

    • Go version: 编译 Docker 客户端所用的 Go 语言版本。

    • Git commit: 该版本对应的 Git 提交 ID。

    • Built: 构建日期。

    • OS/Arch: 操作系统和架构。

    • Context: 当前 Docker 上下文。

    • Experimental: 是否启用了实验性功能。

    Server: Docker 服务端(守护进程)的相关信息。

    • Engine:

      • Version: 服务端的版本号。

      • API version: API 的版本号(以及支持的最低版本)。

      • Go version: 编译 Docker 服务端所用的 Go 语言版本。

      • Git commit: 该版本对应的 Git 提交 ID。

      • Built: 构建日期。

      • OS/Arch: 操作系统和架构。

      • Experimental: 是否启用了实验性功能。

    • containerd: Docker 使用的 containerd 版本和 Git 提交 ID。

    • runc: Docker 使用的 runc 版本和 Git 提交 ID。

    • docker-init: Docker 使用的 docker-init 版本和 Git 提交 ID。

Docker Compose

  • docker compose run - 启动一个新容器并运行一个特定的应用程序。

    • OPTIONS 选项:

      • --rm:运行后自动删除容器。

      • -d:以分离模式运行容器。

      • -T:禁用伪TTY。

  • docker compose rm - 启动一个新容器并删除一个特定的应用程序。

    • OPTIONS 选项:

      • -f, --force:强制删除容器,而不提示用户确认。

      • -s, --stop:首先停止正在运行的容器,然后删除它们。

      • -v, --volumes:同时删除与容器关联的卷(volume)。

  • docker compose ps - 从 docker compose 检查 docker 容器状态。

    • OPTIONS 选项:

      • -a, --all:列出所有容器,包括已停止的容器。

      • -q, --quiet:仅显示容器 ID,不显示其他信息。

      • --services:仅列出服务名称,不显示容器的详细信息。

      • --filter:根据条件过滤输出结果。例如,可以按照状态过滤容器。

  • docker compose build - 构建 docker compose 文件。

    • OPTIONS 选项:

      • --no-cache:在构建过程中不使用缓存层,强制从头开始构建镜像。

      • --pull:始终尝试从注册表中拉取最新的基础镜像。

      • --build-arg:传递构建时的变量(类似于 Docker 的 --build-arg 选项)。

      • --progress:指定构建的进度样式(autoplaintty),影响显示的输出方式。

      • --parallel:并行构建多个服务镜像以提高速度。

      • --no-rm:构建失败时,保留中间容器(默认在成功或失败后都会删除中间容器)。

  • docker compose up - 运行 docker compose 文件。

    • OPTIONS 选项:

      • -d, --detach:以后台模式运行容器,类似于在 docker run 中使用 -d 选项。

      • --build:在启动之前强制重新构建镜像,即使镜像已存在。

      • --no-build:阻止在启动时构建镜像,即使镜像不存在也不构建。

      • --force-recreate:强制重新创建容器,即使它们已经存在且内容未发生变化。

      • --no-recreate:如果容器已经存在,则不重新创建它们(默认行为是如果配置文件变化则重新创建)。

      • --remove-orphans:移除不再在 Compose 文件中定义的孤立容器。

      • -V, --renew-anon-volumes:重新创建匿名卷(删除旧的卷并创建新的)。

  • docker compose ls - 列出 docker compose 服务。

    • OPTIONS 选项:

      • --all:显示所有项目,包括未启动的项目。

      • --filter:根据条件过滤输出结果。例如,可以按状态过滤。

      • --format:指定输出格式(如 tablejson 等)。

      • --quiet:只显示项目名称,而不显示其他信息。

  • docker compose start - 启动 docker compose 文件创建的容器。

  • docker compose restart - 重启 docker compose 文件创建的容器。

网络命令

  • docker network ls: 列出所有网络。

  • docker network create <network>: 创建一个新的网络。

  • docker network rm <network>: 删除指定的网络。

  • docker network connect <network> <container>: 连接容器到网络。

  • docker network disconnect <network> <container>: 断开容器与网络的连接。

卷命令

  • docker volume ls: 列出所有卷。

  • docker volume create <volume>: 创建一个新的卷。

  • docker volume rm <volume>: 删除指定的卷。

  • docker volume inspect <volume>: 显示卷的详细信息。