5. Docker的常用命令
5.1. 容器命令
场景说明:
我们有了镜像才可以创建容器,接下来,我们下载一个centOS镜像来测试学习。
环境准备
使用下面的命令下载一个centOS镜像
docker pull centos
具体使用:
[root@iZ8vb6lqqya4rvreq9ra6gZ ~]# docker pull centos
Using default tag: latest
latest: Pulling from library/centos
a1d0c7532777: Pull complete
Digest: sha256:a27fd8080b517143cbbbab9dfb7c8571c40d67d534bbdee55bd6c473f432b177
Status: Downloaded newer image for centos:latest
docker.io/library/centos:latest
[root@iZ8vb6lqqya4rvreq9ra6gZ ~]#
docker run
docker run [可选参数] image
新建容器并启动
docker run [可选参数] image
# 参数说明
--name="Name" 给容器命名
-d 后台运行
-it 使用交互方式运行,进入容器查看内容
-p 指定容器的端口,例如:-p 8080:8080
-p 宿主机IP:宿主机端口:容器端口(常用)
-p 宿主机端口:容器端口(常用)
-p 容器端口(这种方式是外面不能访问的)
容器端口(不常用)
-P 随机指定容器的端口
--rm 容器一退出(或者一旦停止)就会被删除
具体使用:
# 启动容器,以交互的方式运行,并且进入容器中
[root@iZ8vb6lqqya4rvreq9ra6gZ ~]# docker run -it centos /bin/bash
# ls 用于查看容器中的信息,docker默认下载的centos镜像里面,有些命令是不全的,后续会演示到
[root@26ece72b3bb6 /]# ls
bin dev etc home lib lib64 lost+found media mnt opt proc root run sbin srv sys tmp usr var
[root@26ece72b3bb6 /]#
exit
exit
命令在容器中使用,用于停止容器并退出;如果容器是在后台运行,exit
命令退出时,容器不会停止。
Ctrl+P+Q
用于退出容器(但不停止容器)。
具体使用:
[root@26ece72b3bb6 /]# exit
exit
[root@iZ8vb6lqqya4rvreq9ra6gZ ~]#
可以看到,从容器中退出到宿主机上了。
docker ps
docker ps
查看正在运行的容器
docker ps -a
查看正在运行的容器+历史运行过的容器
docker ps -a -n=?
查看最近创建的几个容器
docker ps -aq
查看正在运行的容器ID+历史运行过的容器ID
具体使用:
# docker ps 查看正在运行的容器
[root@iZ8vb6lqqya4rvreq9ra6gZ ~]# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
# docker ps -a 查看正在运行的容器+历史运行过的容器
[root@iZ8vb6lqqya4rvreq9ra6gZ ~]# docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
26ece72b3bb6 centos "/bin/bash" 4 minutes ago Exited (0) About a minute ago distracted_hopper
7eeaf525e5e2 feb5d9fea6a5 "/hello" 18 hours ago Exited (0) 18 hours ago frosty_satoshi
# docker ps -a -n=1 查看最近创建的1个容器
[root@iZ8vb6lqqya4rvreq9ra6gZ ~]# docker ps -a -n=1
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
26ece72b3bb6 centos "/bin/bash" 10 minutes ago Exited (0) 7 minutes ago distracted_hopper
# docker ps -aq 查看正在运行的容器ID+历史运行过的容器ID
[root@iZ8vb6lqqya4rvreq9ra6gZ ~]# docker ps -aq
26ece72b3bb6
7eeaf525e5e2
[root@iZ8vb6lqqya4rvreq9ra6gZ ~]#
docker rm
docker rm 容器ID
删除指定的docker容器(不能删除掉正在运行的容器)
docker rm -f 容器ID
强制删除指定的docker容器
docker rm $(docker ps -q)
删除所有容器(历史运行过的容器,现在是停止状态)
docker rm -f $(docker ps -aq)
强制删除所有容器(正在运行的容器+历史运行过的容器)
具体使用:
# 查看正在运行的容器
[root@iZ8vb6lqqya4rvreq9ra6gZ ~]# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
f26ee52ab55c centos "/bin/bash" 10 seconds ago Up 9 seconds awesome_franklin
# 查看正在运行的容器+历史运行过的容器
[root@iZ8vb6lqqya4rvreq9ra6gZ ~]# docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
f26ee52ab55c centos "/bin/bash" 28 seconds ago Up 27 seconds awesome_franklin
26ece72b3bb6 centos "/bin/bash" 2 hours ago Exited (0) 2 hours ago distracted_hopper
7eeaf525e5e2 feb5d9fea6a5 "/hello" 20 hours ago Exited (0) 20 hours ago frosty_satoshi
# 强制删除容器ID=26ece72b3bb6的容器
[root@iZ8vb6lqqya4rvreq9ra6gZ ~]# docker rm -f 26ece72b3bb6
26ece72b3bb6
# 强制删除容器ID=f26ee52ab55c的容器
[root@iZ8vb6lqqya4rvreq9ra6gZ ~]# docker rm -f f26ee52ab55c
f26ee52ab55c
[root@iZ8vb6lqqya4rvreq9ra6gZ ~]# docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
7eeaf525e5e2 feb5d9fea6a5 "/hello" 20 hours ago Exited (0) 20 hours ago frosty_satoshi
[root@iZ8vb6lqqya4rvreq9ra6gZ ~]#
docker start
docker start 容器ID
启动容器
docker restart
docker restart 容器ID
重启容器
docker stop
docker stop 容器ID
停止当前正在运行的容器
docker kill
docker kill 容器ID
强制杀掉一个容器