kill
杀死一个或多个正在运行的容器
语法格式
docker kill [OPTIONS] CONTAINER [CONTAINER...]
重点:
docker kill子命令可杀死一个或多个容器
向容器内部的主进程发送SIGKILL 信号(默认),或使用 --signal选项指定的信号
说明
options | 作用 |
---|---|
-s | 发送到什么信号到容器,默认KILL |
例子
根据容器名字杀掉容器
[root@localhost Fancy_Illusion]# docker kill jenkins
根据容器ID杀掉容器
[root@localhost Fancy_Illusion]# docker kill afb882148e5e
rm
删除一个或多个容器
语法格式
docker rm [OPTIONS] CONTAINER [CONTAINER...]
说明
options | 作用 |
---|---|
-f | 通过SIGKILL信号删除一个正在运行的容器 |
-l | 移除容器间的网络,而非容器本身 |
-v | 删除与容器映射的目录 |
例子
强制删除容器
docker rm -f name
删除所有已停止的容器
docker rm$(docker ps -a -q)
删除所有容器
docker rm -f $(docker ps -aq)
docker ps -a -q | xargs docker rm
create
创建一个新的容器但不启动它
语法格式
docker create [OPTIONS] IMAGE [COMMAND] [ARG...]
option | 作用 |
---|---|
--name | 指定容器的名字 |
例子
根据 tomcat 镜像,创建一个 myTomcat 容器
docker create --name=myTomcat tomcat
[root@localhost ~]# systemctl start docker
[root@localhost ~]# docker create --name tomcat8 tomcat:8
[root@localhost ~]# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
tomcat 8 2d2bccf89f53 8 months ago 678MB
[root@localhost ~]# docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
5b011e57c4d7 tomcat:8 "catalina.sh run" About a minute ago Created tomcat8
exec
在正在运行的容器中运行命令
exec
在正在运行的容器中运行命令
options | 作用 |
---|---|
-d | 在后台运行命令 |
-i | 即使没有附加也保持STDIN打开,和-t配合 |
-t | 进入容器的CLI模式 |
-e | 设置环境变量 |
--env-file | 读入环境变量文件 |
-w | 需要执行命令的目录 |
-u | 指定访问容器的用户名 |
例子
执行 tomcat 容器的 startup.sh 脚本
[root@localhost ~]# docker exec -it tomcat8 startup.sh
Using CATALINA_BASE: /usr/local/tomcat
Using CATALINA_HOME: /usr/local/tomcat
Using CATALINA_TMPDIR: /usr/local/tomcat/temp
Using JRE_HOME: /usr/local/openjdk-11
Using CLASSPATH: /usr/local/tomcat/bin/bootstrap.jar:/usr/local/tomcat/bin/tomcat-juli.jar
Using CATALINA_OPTS:
Tomcat started.
进入容器的 CLI 模式(最常用)
[root@localhost ~]# docker exec -it tomcat8 bash
[root@localhost ~]# docker exec -it tomcat8 bash
root@5b011e57c4d7:/usr/local/tomcat#
root@5b011e57c4d7:/usr/local/tomcat# exit
exit
执行普通命令
[root@localhost ~]# docker exec -it tomcat8 pwd
[root@localhost ~]# docker exec -it tomcat8 pwd
/usr/local/tomcat
以 root 用户身份进入容器(重点)
[root@localhost ~]# docker exec -it -uroot jenkins bash
root@afb882148e5e:/#
好处就是,你在容器里敲命令就是 root 用户,畅通无阻,不存在权限不足的问题
pause/unpause
docker pause: 暂停一个或多个容器中的所有进程
docker unpause: 恢复一个或多个容器中的所有进程
语法格式
docker pause CONTAINER [CONTAINER...]
docker unpause CONTAINER [CONTAINER...]
例子
暂停tomcat容器的服务
[root@localhost ~]# docker pause tomcat8
恢复tomcat容器的服务
[root@localhost ~]# docker unpause tomcat8