HKC / Linux · 2024年 4月 2日 0

Linux、docker常用命令

更新软件包列表

apt-get update    yum update
apt upgrade        yumupgrade

查看硬盘UUID

blkid

修改密码:

passwd

查看用户UID、GID

id username

查询域名真是IP:

nslookup domain_name

docker常用命令:

环境变量设置容器内国内时区 TZ:Asia/Shanghai

search常用写法:

搜索centos镜像

docker search centos

搜索centos镜像,只展示5个

docker search –limit 5 centos

搜索热度大于100并且不是自动构建的centos镜像

docker search -f stars=100 -f is-automated=true centos

搜索非官方发布的centos镜像,搜索结果只展示名称和热度,列之间用TAB键隔开

docker search -f is-official=false –format “table{{.Name}}\t{{.StarCount}}” centos

pull:从远程仓库拉取或更新镜像

pull命令可以从远程仓库拉取镜像,如果本地仓库已经存在该镜像,则会更新

pull语法

docker pull [OPTIONS] NAME[:TAG|@DIGEST]

OPTIONS:可选参数

NAME:镜像名称

TAG:镜像版本号,可省略,默认为latest

DIGEST:镜像的摘要,每个镜像都有对应的名称、id、摘要信息,每个摘要信息能唯一代表一个镜像

pull常用写法

从远程仓库拉取centos镜像,不指定版本时默认为latest版本

docker pull centos

使用安静模式从远程仓库拉取版本号为5.11的centos镜像

docker pull -q centos:5.11

使用安静模式从远程仓库拉取所有版本号的centos镜像

docker pull -a -q centos

images:显示所有镜像

images命令可以显示本地存在的所有镜像

docker images

images常用写法

显示本地所有镜像

docker images

显示本地所有镜像,只显示id列并且不截断

docker images -q –no-trunc

显示centos镜像信息

docker images centos

显示列中包含cent关键字的所有镜像

docker images | grep cent

显示本地所有镜像,并显示摘要列

docker images –digests

显示在cengos:latest镜像之后创建的latest版本的所有镜像

docker images -f since=centos:latest -f reference=*:latest

显示所有镜像信息,只显示镜像id、摘要、创建时间3列,列之间用TAB键隔开

docker images –format “table {{.ID}}\t{{.Digest}}\t{{.CreatedAt}}”

显示在centos:5.11镜像之前创建的镜像,只显示镜像仓库路径、版本号、创建时间3列,列之间用TAB键隔开

docker images -f before=centos:5.11 –format “table {{.Repository}}\t{{.Tag}}\t{{.CreatedAt}}”

 

rmi:删除本地镜像

rmi命令可以删除一个或多个本地镜像,通常情况应该用rm表示删除命令,但是在doker命令中rm表示删除容器,所以用rmi表示删除镜像,其中的i是image的首字母

rmi语法

docker rmi [OPTIONS] IMAGE [IMAGE…]

OPTIONS:可选参数

IMAGE:镜像id或仓库路径名称

OPTIONS的常用值

-f: 强制删除,如果镜像有对应的容器正在运行,则不允许直接删除镜像,需要强制删除

–no-prune:不删除该镜像的过程镜像,默认是删除的

rmi常用写法

删除centos镜像

docker rmi tomcat

删除centos:5.11镜像

docker rmi centos:5.11

删除id为621ceef7494a的镜像

docker rmi 621ceef7494a

同时删除tomcat、centos和redis镜像

docker rmi tomcat centos redis

强制删除tomcat镜像,就算此时有tomcat容器正在运行,镜像也会被删除

docker rmi -f tomcat

run常用写法

创建一个centos容器,并运行

docker run centos

创建一个centos容器,并以交互模式运行

docker run -it centos

创建一个centos容器,并后台模式运行

docker run -d centos

创建一个centos容器,重命名为my-centos,并以交互模式运行,并在容器中运行bash命令

docker run -it –name my-centos centos /bin/bash

创建一个spring-boot容器并以交互模式运行,容器重命名为my-boot,并把主机的80端口映射到容器的8080端口,此时访问主机ip+80端口即可访问容器中的sping-boot项目

docker run -it –name my-boot -p 80:8080 spring-boot

创建一个spring-boot容器并以交互模式运行,容器重命名为my-boot,并把主机/logs/my-boot/的目录绑定到容器的/logs目录,此时my-boot项目的日志可以在主机的/logs/my-boot目录中查看

docker run -it –name my-boot -v /logs/my-boot/:/logs/ spring-boot

创建一个spring-boot容器并以交互模式运行,容器重命名为my-boot;把主机的80端口映射到容器的8080端口;把主机/logs/my-boot/的路径绑定到容器的/logs目录;给容器分配最大500M的内存;指定spring-boot的配置文件为test

docker run -it –name my-boot -p 80:8080 -v /logs/my-boot/:/logs/ -m 500M spring-boot –spring.profiles.active=test

start:启动容器

start命令可以启动一个或多个已经停止的容器

start语法

docker start [OPTIONS] CONTAINER [CONTAINER…]

OPTIONS:可选参数

CONTAINER:容器

OPTIONS的常用值

-a: 将容器的标准输出或标准错误附加到终端

-i: 为容器附加一个标准输入终端

start常用写法

启动已经停止的tomcat容器

docker start tomcat

启动已经停止的tomcat和centos容器

docker start tomcat centos

启动已经停止的my-spring-boot容器,并输出日志

docker start -a my-spring-boot

启动已经停止centos容器,并附加一个输入终端

docker start -i centos

restart:重启容器

restart可以对一个或多个容器进行重启。如果容器是未启动的则会启动,如果是正在运行中的,则会重启

restart语法

docker restart [OPTIONS] CONTAINER [CONTAINER…]

OPTIONS:可选参数

CONTAINER:容器

OPTIONS的常用值

-t int: 在重启之前等待几秒,默认10秒

restart常用写法

重启centos容器

docker restart centos

20秒之后重启centos和tomcat容器

docker restart -t 20 centos tomcat

stop:停止容器

stop命令可以停止一个或多个正在运行的容器

kill命令也可以用来停止容器

不同的是stop命令允许容器在停止之前有一定的时间来进行额外操作,如释放链接、关闭请求等

kill命令则会直接强制杀死容器

stop语法

docker stop [OPTIONS] CONTAINER [CONTAINER…]

OPTIONS:可选参数

CONTAINER:容器

OPTIONS的常用值

-t int: 等待n秒后如果还没停止,直接杀死,默认10秒

stop常用写法

停止tomcat容器

docker stop tomcat

停止tomcat和centos容器

docker stop tomcat centos

停止tomcat容器,如果5秒内还未停止则直接杀死

docker stop -t 5 tomcat

restart:重启容器

restart命令可以重启一个或多个容器,不管容器是运行或停止

restart语法

docker restart [OPTIONS] CONTAINER [CONTAINER…]

OPTIONS:可选参数

CONTAINER:容器

OPTIONS的常用值

-t int: 如果重启的容器正在运行,等待n秒还没停止,直接杀死然后重启,默认10秒

restart常用写法

重启tomcat容器

docker restart tomcat

重启tomcat和centos容器

docker restart tomcat centos

重启正在运行的tomcat容器,如果5秒内还未停止则直接杀死然后重启

docker restart -t 5 tomcat

kill:杀死容器

kill命令可以杀死一个或多个正在运行的容器

kill语法

docker kill [OPTIONS] CONTAINER [CONTAINER…]

OPTIONS:可选参数

CONTAINER:容器

OPTIONS的常用值

-s string: 给容器发送一个信号,信号编号和linux原生命令kill的信号编号一致,默认值9,下文列出一些常用值

-s参数信号编号常用值

1:杀死并重新加载,也可用HUP表示

9:强制杀死,也可用KILL表示,默认值

15:正常停止,也可用TERM表示

kill常用写法

杀死tomcat容器

docker kill tomcat

强制杀死tomcat容器

docker kill -s 9 tomcat

强制杀死tomcat容器

docker kill -s KILL tomcat

杀死tomcat和centos容器

docker kill tomcat centos

rm:删除容器

rm命令可以删除一个或多个容器

如果容器正在运行,则需要通过-f参数强制删除

rm语法

docker rm [OPTIONS] CONTAINER [CONTAINER…]

OPTIONS:可选参数

CONTAINER:容器

OPTIONS的常用值

-f:强制删除,即使容器正在运行也可以删除

-l:删除容器之间的网络关系,而不是容器本身

-v: 删除容器和它挂载的卷

rm常用写法

删除centos容器

docker rm centos

强制删除centos容器,即使容器正在运行也会被删除

docker rm -f centos

删除centos容器,并删除它挂载的卷

docker rm -f centos

删除所有已经停止的容器

docker rm $(docker ps -a -q)

移除容器my-nginx对容器my-db的连接,连接名db

docker rm -l db

pause:暂停容器

pause命令可以暂停一个或多个正在运行的容器

pause语法

docker pause CONTAINER [CONTAINER…]

CONTAINER:容器

pause常用写法

暂停正在运行的centos容器

docker pause centos

暂停正在运行的centos和tomcat容器

docker pause centos tomcat

unpause:取消暂停容器

unpause命令可以对一个或多个暂停的容器取消暂停

pause语法

docker unpause CONTAINER [CONTAINER…]

CONTAINER:容器

unpause常用写法

取消暂停的centos容器

docker unpause centos

取消暂停centos和tomcat容器

docker unpause centos tomcat

create:创建一个容器

create命令可以创建一个容器,但不运行它,在需要的时候可以使用start命令启动

和run命令的用法几乎一致,都会创建一个容器,如果容器依赖的镜像不存在都会从远程仓库拉取

run命令创建容器后会运行容器

create命令只是创建容器,不运行

create语法

docker create [OPTIONS] IMAGE [COMMAND] [ARG…]

OPTIONS:可选参数

IMAGE:镜像

COMMAND:需要运行的命令

ARG:命令的参数

OPTIONS的常用值

create命令和run命令的可选参数一样

由于可选参数比较多,这里只列出使用频率最高的一些可选值。使用docker create –help可以查看create命令的所有可用参数

-i: 以交互模式运行,通常与-t一起使用

-t: 为容器分配一个伪终端,通常与-i一起使用

-d: 后台模式运行容器,并返回容器id

-p list: 指定端口映射,格式为宿主机端口:容器端口

-P: 随机分配端口映射

–name string: 给容器指定一个名称

-m bytes: 限制容器可以使用的内存大小

-v list: 把宿主机的磁盘路径挂载到容器的某个路径

–volumes-from list: 绑定别的容器某个路径到此容器的某个路径

-w: 指定容器的工作目录,默认是根目录

–rm: 当容器停止运行时自动删除

–hostname string: 指定容器的主机名

create常用写法

创建一个centos容器

docker create centos

创建一个centos容器,start启动时以交互模式运行

docker create -it centos

创建一个centos容器,start启动时后台模式运行

docker create -d centos

创建一个centos容器,重命名为my-centos,start时以交互模式运行,并在容器中运行bash命令

docker create -it –name my-centos centos /bin/bash

创建一个spring-boot容器,重命名为my-boot,并把主机的80端口映射到容器的8080端口,start时以交互模式运行,此时访问主机ip+80端口即可访问容器中的sping-boot项目

docker create -it –name my-boot -p 80:8080 spring-boot

创建一个spring-boot容器,容器重命名为my-boot,并把主机/logs/my-boot/的目录绑定到容器的/logs目录,start时以交互模式运行,此时my-boot项目的日志可以在主机的/logs/my-boot目录中查看

docker create -it –name my-boot -v /logs/my-boot/:/logs/ spring-boot

创建一个spring-boot容器,容器重命名为my-boot;把主机的80端口映射到容器的8080端口;把主机/logs/my-boot/的路径绑定到容器的/logs目录;给容器分配最大500M的内存;指定spring-boot的配置文件为test;start时以交互模式运行

docker create -it –name my-boot -p 80:8080 -v /logs/my-boot/:/logs/ -m 500M spring-boot –spring.profiles.active=test

exec:在容器中执行命令

exce命令可以在一个运行中的容器中执行一个命令

exec语法

docker exec [OPTIONS] CONTAINER COMMAND [ARG…]

OPTIONS:可选参数

CONTAINER:容器

COMMAND:要执行的命令

ARG:命令的参数

OPTIONS的常用值

-d: 命令在后台运行

-i:保持标准输入,通常和-t一起使用

-t: 分配一个伪终端,通常和-i一起使用

-w string: 指定容器的路径

exec常用写法

在centos容器中运行pwd命令

docker exec centos pwd

为centos容器分配一个输入终端

docker exec -it [容器ID或者容器名称] /bin/bash

在centos镜像中的bin目录执行ls命令

docker exec -w /bin centos ls

ps:查看容器列表

ps命令可以列出所有容器的列表,查看容器的基本信息。不加任何参数的情况下,默认只展示正在运行的容器

ps语法

docker ps [OPTIONS]

OPTIONS:可选参数

OPTIONS的常用值

-a: 显示所有容器,默认只显示正在运行的

-f filter: 根据条件过滤容器,过滤条件详见下文

-n int:显示最后创建的n个容器,包含所有状态

-l: 显示最新创建的容器,包含所有状态

-q: 只显示容器id

-s: 显示容器大小,默认不显示该列

–no-trunc:显示内容不截断,默认情况下显示的容器是截断后的信息

-f参数表示根据条件过滤搜索出来的镜像,语法如下

docker ps -f KEY=VALUE

KEY的可选值如下

id: 根据容器id过滤

name: 查看容器名称中包含给定字段的容器

exited: 根据容器退出的错误码进行过滤

status: 根据容器的状态进行过滤,状态可选值有:created、paused、exited、dead、running、restarting、removing

before: 只显示在某个容器之前创建的容器

since: 只显示在某个容器之后创建的容器

volume: 过滤绑定了某个目录的容器,只针对运行中的容器

publish: 根据宿主机端口过滤,只针对运行中的容器

expose: 根据容器端口过滤,只针对运行中的容器

ps常用写法

查看运行中的容器

docker ps

查看所有容器

docker ps -a

查看所有容器,并显示容器大小

docker ps -a -s

查看所有容器,显示内容不截断

docker ps -a –no-trunc

查看容器名称中包含cent的容器

docker ps -f name=cent

查看状态是created的容器

docker ps -f status=created

查看在centos之前创建的容器

docker ps -f before=centos

查看绑定了宿主机80端口并且正在运行的容器

docker ps -f publish=80

赞赏

微信赞赏支付宝赞赏