Docker容器日常命令

98 阅读4分钟

持续创作,加速成长!这是我参与「掘金日新计划 · 10 月更文挑战」的第13天,点击查看活动详情

1.Docker容器日常命令

1.1,查看命令帮助信息

语法格式: docker help docker 参数 --help docker help 参数

1.2.运行一个容器(run)

语法格式: docker run 选项 容器名 CMD docker run 命令选项可以多次调用例如-p,-p 80:80 -p 22:22可以用多次 详细参数:www.cnblogs.com/xiaobaiskil… 注意相同的镜像可以运行多次,并且每次的配置文件,容器地址,容器id都是不同的 每启动一个容器都会多一块vethxxx的网卡

[root@192.168.146.112~]# docker ps -a
CONTAINER ID   IMAGE          COMMAND                  CREATED             STATUS          PORTS                               NAMES
1748c22ce925   nginx:latest   "/docker-entrypoint.…"   11 minutes ago      Up 11 minutes   0.0.0.0:81->80/tcp, :::81->80/tcp   nostalgic_agnesi
a9e8cd73690d   nginx          "/docker-entrypoint.…"   About an hour ago   Up 20 minutes   0.0.0.0:80->80/tcp, :::80->80/tcp   magical_kirch

后台启动一个容器
[root@192.168.146.112~]# docker run -d -p 90:80 httpd:2.4
5537982a67c7f205a4bde64a56f27f807bc8c8e1635cca00ad8cc9d5337f970e

-d表示后台启动
-p表示端口映射

进入容器里面
[root@192.168.146.112~]# docker run -it centos:latest
[root@e3a28309e86c /]#
默认以容器的id作为主机名

指定容器的名称
[root@192.168.146.112~]# docker run -it --name centos8 centos:latest

不进入容器内部运行命令
直接在最后跟上命令即可
[root@192.168.146.112~]# docker run -it centos:latest ps -ef
UID         PID   PPID  C STIME TTY          TIME CMD
root          1      0  0 02:52 pts/0    00:00:00 ps -ef

-it分配交互式终端
--name指定容器的名字
ps -ef会覆盖容器的初始命令
docker run==docker crente + docker start

图片.png

1.3.查看容器列表(ps)

只有对镜像进行操作时才会产生容器,默认导入一个镜像是不会产生容器的,所谓的操作比如启动镜像,对镜像进行命令输入等等

语法格式: docker ps 参数: -a :显示所有容器 -l :显示最近启动的一个容器 -q:只打印容器id

两种方式
第一种
只查看运行中的容器
[root@192.168.146.112~]# docker ps
CONTAINER ID   IMAGE           COMMAND                  CREATED          STATUS          P
95335712e3b1   centos:latest   "/bin/bash"              4 minutes ago    Up 45 seconds
e3a28309e86c   centos:latest   "/bin/bash"              17 minutes ago   Up 45 seconds
5fe52595fa1c   httpd:2.4       "httpd-foreground"       23 minutes ago   Up 46 seconds   8
5537982a67c7   httpd:2.4       "httpd-foreground"       28 minutes ago   Up 28 minutes   0
1748c22ce925   nginx:latest    "/docker-entrypoint.…"   41 minutes ago   Up 41 minutes   0
a9e8cd73690d   nginx           "/docker-entrypoint.…"   2 hours ago      Up 50 minutes   0

查看所有容器
[root@192.168.146.112~]# docker ps -a

CONTAINER ID			//容器ID
IMAGE              		//镜像名称
OMMAND             		//运行的命令
CREATED           		//何时开启的容器
STATUS          		//多长时间将容器打开
PORTS          			//端口
NAMES					//容器名称


第二种
只查看运行中的容器
[root@192.168.146.112~]# docker container ls

查看所有容器
[root@192.168.146.112~]# docker container ls -a

1.4.删除一个或多个容器(rm)

语法格式:**

docker container rm 容器名

-f :强制删除

删除容器操作慎用,当容器删除里面的数据也会随着删除

删除之前先停掉,如果不停,强制删除
[root@192.168.146.112~]# docker container rm thirsty_shtern
thirsty_shtern

删除容器时不光可以对根据容器名删除也可以根据容器id删除
[root@192.168.146.112~]# docker container rm 95335712e3b1 5fe52595fa1c 1748c22ce925
95335712e3b1
5fe52595fa1c
1748c22ce925

批量删除所有容器
先停止所有容器,停止container,这样才能够删除其中的images:
[root@192.168.146.112~]# docker stop $(docker ps -a -q)
b4082308dddf
5537982a67c7
a9e8cd73690d
或docker ps -q |xargs docker stop

删除所有容器
[root@192.168.146.112~]# docker ps -a -q | xargs docker rm
b4082308dddf
5537982a67c7
a9e8cd73690d
或docker rm $(docker ps -a -q)

删除所有镜像
docker rmi $(docker images -q)

1.5.关闭、杀死、启动、重启容器(start...)

语法格式:

docker [start|kill|stop|restart] 容器名称

or

docker container [start|kill|stop|restart] 容器名称

关闭
[root@192.168.146.112~]# docker stop nginx
nginx

杀死
[root@192.168.146.112~]# docker kill 35bd0b2ac976
35bd0b2ac976
[root@192.168.146.112~]# docker ps -a
CONTAINER ID   IMAGE          COMMAND                  CREATED         STATUS                       PORTS                               NAMES
35bd0b2ac976   nginx:latest   "/docker-entrypoint.…"   2 minutes ago   Exited (137) 8 seconds ago                                       nginx
杀死的进程在exited()中的值都是非0的值

启动
[root@192.168.146.112~]# docker start nginx
nginx

重启
[root@192.168.146.112~]# docker restart nginx
nginx

如果想进入交互式就有-i参数
[root@192.168.146.112~]# docker start -i nginx