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
文件类型和权限
第一个字母 代表 文件类型当为 d 则是目录 directory当为 - 则是文件;若是 l 则表示为链接文档(link file);
接下来的字符中,以三个为一组,且均为 rwx 的三个参数的组合。其中, r 代表可读(read)、 w 代表可写(write)、 x 代表可执行(execute)注意的是,这三个权限的位置不会改变,如果没有权限,就会出现减号 - 而已 第一组 :当前用户拥有的权限. 即属主权限. 第二组 :当前文件所在的用户组拥有的权限. 即属组权限. 第三组 :其他人拥有的权限 (非当前用户和同组人)
更改属主和属组 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.
参数-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
: 容器的重启策略(如no
、on-failure
、always
、unless-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
: 容器的重启策略(如no
、on-failure
、always
、unless-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
: 返回指定类型的对象信息(可选类型:container
、image
、network
、volume
)。
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 权重(范围:10
到1000
),表示容器对磁盘 I/O 操作的优先级。默认值为500
。--pids-limit
:设置容器可以使用的最大进程数--restart
:设置容器的重启策略(no
、on-failure
、always
、unless-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:tag
或name
;可以在一次构建中为一个镜像设置多个标签。--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 指令,如CMD
、ENTRYPOINT
、ENV
等。-m, --message
: 为导入的镜像添加注释。
info|version
info - 显示 Docker 的系统级信息,包括当前的镜像和容器数量。
输出解释
Client: Docker 客户端的相关信息。
Context
: 当前 Docker 上下文。Debug Mode
: 客户端是否开启调试模式。Plugins
: 安装的客户端插件,如buildx
和compose
。
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
: 启用的安全选项(如seccomp
和selinux
)。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
:指定构建的进度样式(auto
、plain
、tty
),影响显示的输出方式。--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
:指定输出格式(如table
、json
等)。--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>
: 显示卷的详细信息。