AI 摘要

Linux---Ubuntu常用指令(自用) pwd:显示当前工作目录。 cd:改变当前工作目录的命令且0进入到指定目录。 ls:显示工作目录下内容。 cp:复制命令。 scp:远程文件拷贝命令。 mv:改名、移动文件命令。 mkdir:创建目录。 rm:删除命令。 cat:打印(文本)文件内容命令。 top:显示进程信息。 kill:杀死、中止运行中的程序命令。 vi/vim:编辑指令。 以上是Ubuntu系统中常用的一些命令,用于操作文件、目录和进程等。这些指令可以让用户更方便地管理系统,并进行各种操作和编辑工作。

一般操作

  • pwd //显示当前工作目录
  • cd //改变当前工作目录的命令且0进入到指定目录
    • 指定绝对目录(完整目录):cd /a/b
      说明:此条命令为进入根(/)目录下名为b的文件夹内。
    • 指定相对目录:cd c/d
      说明:此条命令为进入当前目录下名为c的文件夹内,且最终进入d文件夹内。
    • cd ./c //进入当前目录下名为c的文件夹内。
    • cd ../e //进入上一级目录中名为e的文件夹内。
    • cd ~ //进入主目录,一般为/home
    • 符号说明:
      • . 表示当前目录。
      • .. 表示上一级目录。
      • ~ 表示主目录home
  • ls //显示工作目录下内容
    • ls -a //显示当前目录下所有内容,包括隐藏内容。
    • ls -l //显示文件和目录信息,包括权限、所有者、大小、创建时间和对应文件。
  • cp //复制命令
    • cp /a /c //将根目录下的a文件复制到根目录下的c文件夹内。
    • cp -r /a /c/b //将根目录下的a文件夹(或压缩包)复制到根目录下的c文件夹内并改名为b
      其中-r参数用于复制目录及其所有的子目录和文件或者用作复制.zip
  • scp //远程文件拷贝命令
    username是登录到远端时的用户名,若有密码在输入完指令后需要输入密码。
    • scp root@username:/a /b //将远程端根目录下的a文件拷贝到本地根目录下的b文件夹内。
    • scp /b root@username:/a //把上一个反过来,将本地根目录下的b文件拷贝到远程端根目录下的a文件内。
    • scp -r root@username:/a /b //这里-r参数功能与cp的相同,不再赘述。
    • scp -P 1234 root@username:/a /b //参数-P(注意是大写)是连接远程端使用指定端口号,为1234
  • mv //改名、移动文件命令
    • mv a.txt b.txt //只重命名,将当前目录下的a.txt重命名为b.txt
    • mv c.txt ./d //只移动,将当前目录下的c.txt移动到当前目录下的d文件夹内。
    • mv /e.txt /f/g.txt //移动+重命名,将根目录下的e.txt移动到当前目录下的/f/目录内并重命名为g.txt
  • mkdir //创建目录
    • mkdir dirName //在当前目录下创建一个名为dirName的目录(文件夹)。
    • mkdir -p /a/dirName //在根目录下的a内创建名为dirName的目录,参数-p检测adirName是否存在,若不存在则创建一个。
  • rm //删除命令
    • rm filename //删除名为filename文件,需要输入y确认。
    • rm -f filename //删除filename文件,需要需要输入y确认。
    • rm -rf filename/ //删除filename目录所有内容,且不需要确认。
    • rm -rf * //删除当前目录所有内容。*为选中所有。
  • cat //打印(文本)文件内容命令
    • cat a.txt //打印文本文件a.txt的内容。
  • top //显示进程信息
    第一列PID是进程号,最后一列COMMAND是进程名。因为是实时刷新的,所以要通过Ctrl+c组合键中断查看。
  • kill //杀死、中止运行中的程序命令
    • kill PID //PID是程序进程号,例如上图中若是想结束systemd程序则输入指令kill 1

编辑指令

  • vi/vim 指令
    1. vi filename.toml //进入filename.toml文件,或其它格式的可编辑文件。

    2. 输入vi filename.toml便进入了命令模式,以下是常用命令:
      • i -- 切换到输入模式,在光标当前位置开始输入文本。
      • x -- 删除当前光标所在处的字符。
      • : -- 切换到底线命令模式,以在最底一行输入命令。
      • a -- 进入插入模式,在光标下一个位置开始输入文本。
      • o:在当前行的下方插入一个新行,并进入插入模式。
      • O -- 在当前行的上方插入一个新行,并进入插入模式。
      • dd -- 删除当前行。
      • yy -- 复制当前行。
      • p(小写) -- 粘贴剪贴板内容到光标下方。
      • P(大写)-- 粘贴剪贴板内容到光标上方。
      • u -- 撤销上一次操作。
      • Ctrl + r -- 重做上一次撤销的操作。
    3. 命令模式下按i键进入输入模式
      • HOME/END -- 移动光标到行首/行尾
      • Page Up/Page Down -- 上/下翻页
      • Insert -- 切换光标为输入/替换模式,光标将变成竖线/下划线
      • ESC -- 退出输入模式,切换到命令模式
    4. 命令模式下按:键进入底线命令模式
      • w -- 保存文件。
      • q -- 退出 Vim 编辑器。
      • q! -- 强制退出Vim 编辑器,不保存修改。
      • wq -- 保存且退出 Vim 编辑器。
      • 双击ESC退出底线命令模式
  • gedit

打包压缩指令

  • tar
    • tar -cf test.tar filename.toml -- 将filename.toml文件打包成一个名为test.tar的包。
      tar -xf test.tar -- 解包test.tar
    • tar -czf test.tar.gz filename.toml -- 在上一例中再用 gzip 压缩为 test.tar.gz
      tar -xzf test.tar.gz -- 解压缩test.tar.gz
    • 参数说明:
      • -c -- create 建立新的包。
      • -f <备份文件> -- file 指定包的文件名。
      • -v -- verbose 显示指令执行过程。
      • -x -- extract 从备份文件中还原文件。
      • -z -- 通过gzip指令处理备份文件。
      • -t -- list 列出包中的内容,
        tar -tf test.tar -- 列出test.tar中的文件。
      • -r -- append 新增文件到已存在的包的结尾部分。
        tar -rf test.tar *.toml -- 把所有的toml格式文件增加到test.tar包内。
      • -u -- update 仅置换较包内的文件更新的文件。
        tar -uf test.tar filename.toml -- 更新test.tar包内的filename.toml文件。
      • --exclude=<范本样式> -- 排除符合范本样式的文件。
        tar --exclude=abc/filename.toml -zcvf test.tar.gz abc -- 将文件abc压缩时排除filename.toml文件。
  • rar/unrar
    • rar a test.rar *.toml -- 将所有toml格式文件压缩成名为test.rar的压缩包
    • unrar e test.rar -- 解压缩test.rar
    • a -- 添加文件到压缩文件
      e -- 解压压缩文件到当前目录
  • zip/unzip
    • zip -qr /home/z/abc.zip /home/a -- 将/home/目录下的a文件递归处理压缩成abc.zip且放在/home/z/目录下。
    • unzip /home/z/abc.zip -d /home/b -- 将/home/z/内的abc.zip解压到/home/b内。
      注意:-d<目录>unzip指令中意义是指定文件解压缩后所要存储的目录。而在zip指令中是delete删除压缩包内指定的文件,如zip -d abc.zip a.txt意为删除abc.zip压缩包内的a.txt文件。
    • 参数说明:
      1. zip
        • -q -- 不显示指令执行过程。
        • -r -- 递归处理,将指定目录下的所有文件和子目录一并处理。
      2. unzip
        • -d<目录> -- 指定文件解压缩后所要存储的目录。

软件包安装指令

  • rpm包
    • rpm -ivh package_name.rpm 安装一个名为package_name的rpm软件包。指令中可不加.rpm
      -i 安装
      -v 显示指令执行过程。
      -h 在解压包存档时打印散列标记。
    • rpm -qa 显示系统中所有已经安装的rpm包。
      rpm -qi package_name.rpm 显示软件package_name的安装信息。
    • rpm -V package_name.rpm 校验包,包括MD5。
    • rpm -e package_name.rpm 卸载一个名为package_name的rpm软件包。
    • rpm -Uvh package_name.rpm 更新package_name软件包。
  • yum包(CentOS系统)
    • yum install package_name 下载并安装一个rpm包。
    • yum remove package_name 卸载一个rpm包。
    • yum check-update 列出所有可更新的软件清单。
      yum update 更新所有软件。
      yum update package_name 仅更新指定的软件。
    • yum list 列出当前系统中安装的所有包。
      yum info 列出所有已安装包信息。
    • 清除缓存命令
      yum clean packages 清除缓存目录下的软件包。
      yum clean headers 删除所有头文件。
      yum clean all 删除所有缓存的包和头文件。
      yum makecache 生成缓存
    • 配置yum源
      1. 备份/etc/yum.repos.d/CentOS-Base.repo
        mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.bak
      2. 安装下载工具
        yum -y install wget curl
      3. 替换yum源
        下载对应版本 repo 文件, 放入 /etc/yum.repos.d/内,并命名为CentOS-Base.repo注意先做好备份。
        wget -O /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-7.repo
        或者
        curl -o /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-7.repo
        wget和curl指令参数中的-O和-o的意义都是将服务器文件下载并以不同的文件名保存。
        此例中将阿里云服务器的Centos-7.repo下载至本地/etc/yum.repos.d/内并以CentOS-Base.repo 保存,这样就完成了阿里yum源的替换。
      4. 生成缓存
        yum clean all
        yum makecache
  • apt指令安装deb
    • sudo apt-get install package_name 安装/更新一个 deb 包。
    • sudo apt-get remove package_name 从系统卸载一个deb包。
    • sudo apt-get update 升级列表中的软件包。
    • sudo apt-get upgrade 升级所有已安装的软件。
  • dpkg指令安装deb
    • dpkg -i package_name.deb 安装/更新一个 deb 包。
    • dpkg -r package_name 从系统卸载一个 deb 包。
    • dpkg -l 显示系统中所有已经安装的 deb 包。
    • dpkg -s package_name 获得已经安装在系统中一个特殊包的信息。

chmod更改文件权限

图片来自菜鸟教程

一个文件的权限由用户的不同分为三组,即所有者(Owner)、用户组(Group)、其他用户(Other Users)。
前端的 - or d 指文件类型,d指directory目录,- 则说明此文件不是目录。

英文符号语法

语法: chmod [-cfvR] [ugoa...] [[+-=][rwxX] filename

用户符号说明操作符号说明权限符合说明其它参数
u所有者+增加r-c显示权限更改动作
g文件所有者所在的用户组-去除w-f 不要显示无法更改错误讯息
o其他用户=重置x执行-v权限变更详细资料
a所有用户X特殊执行-R递归变更
  • chmod u+r filename 给文件filename的所有者增加可读权限。
  • chmod g-w filename 文件所有者所在的用户组去除可写权限。
  • chmod -R a+rwx filenamefilename目录的所有用户递归增加可读、写、执行权限。
  • chmod u=rw,go= filenamefilename文件的所有者重新设置可读、可写权限,用户组和其他用户权限重新设置为无任何权限,空格代表无权限。

八进制语法

rwx的三个字母分别用二进制表示,且rwx的顺序不可变动,用1表示打开对应权限(即rwx),用0表示关闭对应权限(即用0表示-)。则rwx对应111,即八进制的7为最高权限,777是所用户的最高权限。

权限符号二进制八进制权限说明
rwx1117读+写+执行
rw-1106读+写
r-x1015读+执行
r--1004
-wx0113写+执行
-w-0102
--x0011执行
---0000无权限
  • chmod 777 filename 对于文件filename赋予所有用户最高权限(读、写和执行)。

    chmod a=rwx filename
  • chmod 755 filename 此权限较为常用,root用户有最高权限,root以外用户只有读+执行权限。

其它指令

1.系统信息

uname

语法:uname [-amnrsv]

参数参数说明
-a显示全部信息
-mmachine显示处理器类型
-nnodename显示主机名
-rrelease显示内核版本号
-ssysname显示操作系统名称
-v显示操作系统的版本
uname -a

使用cat查看系统信息

  • cat /proc/version
  • cat /etc/redhat-release 只适合Redhat系列的Linux系统

使用lsb_release指令

lsb_release -a 显示全部信息,包括LSB、版本号、代号、版本描述信息。

时钟指令

时间查看

  • date 显示系统时间。
    date -s "2023-10-29 12:00:00" 设置时间。
  • clock 显示硬件时间。
    clock --set --date="2023-10-29 12:00:00" 设置硬件时间。
    clock -w 根据当前系统时间设置硬件时钟,即将系统时间同步到硬件。
    :系统时间与硬件时间不是一个,使用date -s后可使用clock -w同步到BIOS时钟或RTC时钟。

ntp时钟服务器

服务端安装

1.安装ntp:
有公网:yum -y install ntp
无公网:下载对应系统ntp的rpm离线安装包后使用rpm指令安装
rpm -ivh ntp-4.2.6p5-29.el7.centos.2.x86_64.rpm

2.修改ntp配置文件
vim /etc/ntp.conf

# For more information about this file, see the man pages
# ntp.conf(5), ntp_acc(5), ntp_auth(5), ntp_clock(5), ntp_misc(5), ntp_mon(5).

driftfile /var/lib/ntp/drift

# Permit time synchronization with our time source, but do not
# permit the source to query or modify the service on this system.
restrict default nomodify notrap nopeer noquery

# Permit all access over the loopback interface.  This could
# be tightened as well, but to do so would effect some of
# the administrative functions.
restrict 127.0.0.1 
restrict ::1

# Hosts on local network are less restricted.
#restrict 192.168.1.0 mask 255.255.255.0 nomodify notrap

# Use public servers from the pool.ntp.org project.
# Please consider joining the pool (http://www.pool.ntp.org/join.html).
server 0.centos.pool.ntp.org iburst
server 1.centos.pool.ntp.org iburst
server 2.centos.pool.ntp.org iburst
server 3.centos.pool.ntp.org iburst

#broadcast 192.168.1.255 autokey	# broadcast server
#broadcastclient			# broadcast client
#broadcast 224.0.1.1 autokey		# multicast server
#multicastclient 224.0.1.1		# multicast client
#manycastserver 239.255.254.254		# manycast server
#manycastclient 239.255.254.254 autokey # manycast client

# Enable public key cryptography.
#crypto

includefile /etc/ntp/crypto/pw

# Key file containing the keys and key identifiers used when operating
# with symmetric key cryptography. 
keys /etc/ntp/keys

# Specify the key identifiers which are trusted.
#trustedkey 4 8 42

# Specify the key identifier to use with the ntpdc utility.
#requestkey 8

# Specify the key identifier to use with the ntpq utility.
#controlkey 8

# Enable writing of statistics records.
#statistics clockstats cryptostats loopstats peerstats

# Disable the monitoring facility to prevent amplification attacks using ntpdc
# monlist command when default restrict does not include the noquery flag. See
# CVE-2013-5211 for more details.
# Note: Monitoring will not be disabled with the limited restriction flag.
disable monitor

进行如下修改:

#先把这几行注释掉
#server 0.centos.pool.ntp.org iburst
#server 1.centos.pool.ntp.org iburst
#server 2.centos.pool.ntp.org iburst
#server 3.centos.pool.ntp.org iburst

#若有公网新增中国国家授时中心服务器地址
server 0.cn.pool.ntp.org iburst
server 1.cn.pool.ntp.org iburst
server 2.cn.pool.ntp.org iburst
server 3.cn.pool.ntp.org iburst
#若有公网还需新增:允许上层时间服务器主动修改本机时间.
restrict 0.cn.pool.ntp.org nomodify notrap noquery
restrict 1.cn.pool.ntp.org nomodify notrap noquery
restrict 2.cn.pool.ntp.org nomodify notrap noquery
restrict 3.cn.pool.ntp.org nomodify notrap noquery

#若无公网则把ntp服务器修改为本机IP,以192.168.10.1为例
server 192.168.10.1

3.设置防火墙
NTP服务器默认使用UDP端口123,需要开放此端口。
在使用Firewalld的系统上,使用以下指令:
sudo firewall-cmd --add-service=ntp --permanent
sudo firewall-cmd --reload
在使用iptables的系统上,使用以下指令:
sudo iptables -A INPUT -p udp --dport 123 -j ACCEPT
sudo service iptables save
sudo service iptables restart

4.设置启动ntp服务
systemctl enable ntpd 开机自启动
systemctl start ntpd 启动ntp
若后续又修改ntp.conf文件,修改后需要重启ntp服务:systemctl restart ntpd

5.查看状态,没有问题则同步至BIOS时钟。
ntpq -p
date
clock -whwclock -w

客户端安装

1.安装ntp:同服务端

2.修改ntp配置文件
vim /etc/ntp.conf

#同服务端先把这几行注释掉
#server 0.centos.pool.ntp.org iburst
#server 1.centos.pool.ntp.org iburst
#server 2.centos.pool.ntp.org iburst
#server 3.centos.pool.ntp.org iburst

#新增已搭建好的ntp服务器
server 192.168.10.1
#新增:允许上层时间服务器主动修改本机时间.
restrict 192.168.10.1 nomodify notrap noquery

3.设置启动ntp服务:同服务端

4.查看状态,没有问题则同步至BIOS时钟。
这里注意ntpq -p指令结果中remote的IP与搭建好的ntp服务器IP的一致与否。

2.系统的关机、重启以及登出

reboot 重启

logout 注销

3.磁盘

挂载U盘

fdisk -l  #列出分区表,会发现一个/dev/sdb的地址,此地址一般为外来U盘的。
mkdir /mnt/usb  #创建挂载文件目录。
mount /dev/sdb /mnt/usb  #挂载U盘至刚才创建的目录。
cd /mnt/usb
ls            #进入此目录会发现U盘的内容都在这里。
umount /mnt/usb  #卸载U盘。

磁盘空间

df -h 系统磁盘使用情况统计,参数-h指转换为人类可读的格式。

df -h a 文件a的情况

4.检索

find指令

  • 语法:find [path] [expression]
    [path]:从此目录路径下开始查找。
    [expression]:参数选项。
  • 常用:find [path] -name filename

grep


语法

grep [option]… [关键词] [file]

option(常用)说明
-i忽略大小写
-n显示匹配的行号
-r递归查找子目录中的所有文件
-l只打印匹配的文件名
-v反向查找,只打印不匹配的行。

简单使用

[root@hecs-362052 b]# cat 1.txt 
a00
b00
c00
d00
e00
f00
g00
  • grep -i A filename.txt 打印文件filename.txt内A所在行的内容,不区分大小写。
  • grep -rin A file/ 递归+不区分大小写+显示行号和内容
  • grep -rli A file/ 递归+只显示文件名+不区分大小写
  • grep -vn a filename.txt 显示a以外的内容

与其它指令组合使用

1.tail -f filename.log | grep [关键词]

2.ps -aux | grep [关键词]

5.网络

ifconfig


ifconfig显示网络设备信息

[root@hecs-362052 etc]# ifconfig
eth0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 192.168.0.12  netmask 255.255.255.0  broadcast 192.168.0.255
        inet6 fe80::f816:3eff:fe5a:b240  prefixlen 64  scopeid 0x20<link>
        ether fa:16:3e:5a:b2:40  txqueuelen 1000  (Ethernet)
        RX packets 1818294  bytes 1338044769 (1.2 GiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 1868644  bytes 3010306379 (2.8 GiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

lo: flags=73<UP,LOOPBACK,RUNNING>  mtu 65536
        inet 127.0.0.1  netmask 255.0.0.0
        inet6 ::1  prefixlen 128  scopeid 0x10<host>
        loop  txqueuelen 1000  (Local Loopback)
        RX packets 33846  bytes 188683233 (179.9 MiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 33846  bytes 188683233 (179.9 MiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

网口的关闭和启用

ifconfig <网口> down
ifconfig <网口> up

重启网络服务

service networking restart
#或
systemctl restart network

修改IP地址

ifconfig <网口> <新的IP地址> netmask <新的子网掩码> broadcast <新的广播地址>

例如将刚才的eth0的IP和broadcast改为192.168.1.12和192.168.1.255

ifconfig eth0 192.168.1.12 netmask 255.255.255.0 192.168.1.255

修改MAC地址

sudo ifconfig <接口名> hw ether <新的MAC地址>

例如将eth0的MAC地址修改为00:11:22:33:44:55

sudo ifconfig eth0 hw ether 00:11:22:33:44:55

上述修改地址的方式只是临时修改,在系统或网络服务重启后会恢复原网络配置文件的设定。下面说明centos7系统修改网络的方法:

[root@hecs-362052 ~]# vim /etc/sysconfig/network-scripts/ifcfg-<网口>
DEVICE=<接口名>
BOOTPROTO=dhcp
ONBOOT=yes
TYPE=Ethernet
PERSISTENT_DHCLIENT=yes

将BOOTPROTO的改为静态static,然后添加新的IP信息。

[root@hecs-362052 ~]# vim /etc/sysconfig/network-scripts/ifcfg-<网口>
DEVICE=<接口名>
BOOTPROTO=static
ONBOOT=yes
TYPE=Ethernet
PERSISTENT_DHCLIENT=yes
IPADDR=192.168.1.100
NETMASK=255.255.255.0
GATEWAY=192.168.1.1
DNS1=8.8.8.8

保存且退出后重启网络服务。

service networking restart

Docker

1.安装

官方文档多个Linux版本的详细安装说明。

2.常用指令

启动与停止

设置开机自启动

sudo systemctl enable docker.service
sudo systemctl enable containerd.service

启动Docker

sudo systemctl start docker 

仓库管理

1.配置私有仓库

vim /etc/docker/daemon.json

2.重启docker

systemctl restart docker

3.登录到私有仓库

docker login <私有仓库地址,域名或IP> -u <用户名> -p <密码>

-u :username 把<用户名>改为实际用户名。
-p :password 把<密码>改为实际密码。

镜像使用

配置私有仓库

vim /etc/docker/daemon.json
{
  "registry-mirror": [
    "https://registry.docker-cn.com"
  ],
  "insecure-registries": [
    "[<私有仓库ip>:]"
  ]

重启docker

systemctl restart docker

登录到私有仓库

docker login <私有仓库地址,域名或IP> -u <用户名> -p <密码>

-u :username 把<用户名>改为实际用户名。
-p :password 把<密码>改为实际密码。

拉取和推送私有仓库镜像

在完成私有仓库的登陆之后进行。

拉取————————————————————————————————————————————

docker pull <私有仓库地址,域名或IP>/<镜像名称>:<标签>

例如从私有仓库example.com拉取镜像myapp的1.2版本,具体命令如下:

docker pull example.com/myapp:1.2

查看本地的镜像

docker images

推送————————————————————————————————————————————

先为镜像打上tag标签,以防与库中的镜像冲突:

docker tag <现有镜像名称> <私有仓库地址>/<新镜像名称>:<新标签>
#例如给myapp新增1.3标签,但不改变镜像名称。
docker tag myapp example.com/myapp:1.3

然后推送到私有仓库:

docker push <私有仓库地址>/<镜像名称>:<标签>
#例如将刚才改好的myapp:1.3推送到仓库example.com
docker push example.com/myapp:1.3

导出、导入、删除镜像

导出————————————————————————————————————————————

docker save > [输出文件压缩包] [镜像名称]:[标签]
#例如把myapp:1.3输出打包成myapp.tar
docker save > myapp.tar myapp:1.3

注:若导出时不添加[标签]会把此镜像的所有版本全部打包。

导入————————————————————————————————————————————

只可以导入用docker save命令导出的镜像包。

docker load > [save导出的镜像包]
#例如把myapp.tar导入
docker load < myapp.tar

删除————————————————————————————————————————————

docker rmi <镜像名称>
#例如删除myapp
docker rmi myapp

清理未被任何容器引用的镜像:

docker image prune

清理所有未被使用的镜像:

docker image prune -a

容器使用

查看容器

查看正在运行的容器:

docker ps

查看所有容器:

docker ps -a

使用镜像创建并运行容器

docker run语法:

docker run [选项] <镜像名称:标签或ID> [命令] [参数]
  • 选项:
    • -d #以后台模式(守护进程模式)运行容器。
    • -p #将容器的端口映射到主机端口。
    • --name #为容器指定一个名称。
    • -e #设置环境变量。
    • -v #将主机目录挂载到容器内部。
  • <镜像名称:标签或ID> #指定要运行的 Docker 镜像的名称或镜像ID,通过docker images获取。若不加标签则默认使用该镜像的latest版本。
  • [命令][参数]是在容器内部运行的命令,可以是容器启动后执行的命令。不常使用。

示例:在后台运行一个镜像名为myapp的容器,将容器端口80映射到主机端口8080。

docker run -dp 8080:80 myapp

启动一个已停止的容器

docker start <容器名称或容器ID>

停止运行中的容器

docker stop <容器名称或容器ID>

删除已停止运行的容器

docker rm <容器名称或容器ID>

注:rm是删除容器,而rmi是删除镜像用的,不要混淆。

容器的导入和导出

导出————————————————————————————————————————————

请注意,docker export 导出的文件系统是一个静态快照,它不包括容器的运行时状态或元数据。这意味着你不能使用 docker import 命令将导出的文件系统还原为容器,因为容器配置信息和元数据丢失了。docker export 通常用于临时备份或导出容器内的文件内容,而不是用于复制整个容器。如果你需要完整的容器备份和还原功能,可以考虑使用 Docker 镜像或 Docker Compose。

语法:

docker export [容器名称或容器ID] > [输出tar归档文件路径]

示例:导出myapp

docker export myapp > myapp.tar

导入————————————————————————————————————————————

语法:

docker import [输入文件] [生成的镜像名称:标签] 

示例:

docker import myapp.tar myapp:1.0