docker 常用命令(二)
# 容器命令
注:有了镜像才可以创建并启动容器:本文在centos7.9下创建centos:latest
下载最新版centos:
docker pull centos
doker run 创建并启动容器
$ docker run [OPTIONS] IMAGE [COMMAND] [ARG...]
可选项,OPTIONS
#参数说明:(此处只解释常用参数官方全部参数请查看此篇文章)
–name=“Name” # 容器名称,如 tomcat01、tomcat02用于区分容器
-d # 后台运行
-it # 使用交互方式运行,如进入容器
-P # 指定容器端口 如:-P 8080:8080
-P 主机IP:主机端口:容器端口
-P 主机端口:容器端口(常用)
-P 容器端口
容器端口-p # 随机指定端口
操作案例:
docker run -it centos /bin/bash
测试创建成功,并查看系统:
[root@c83f944aa84d /]# cat /etc/redhat-release
CentOS Linux release 8.4.2105[root@c83f944aa84d /]# ls
bin dev etc home lib lib64 lost+found media mnt opt proc root run sbin srv sys tmp usr var通过测试我们可看到已经创建成功并进入其中进行交互操作,其中c83f944aa84d为容器ID
退出容器并测试已退出
[root@c83f944aa84d /]# exit
exit # 退出并关闭容器
[root@localhost ~]# ls
anaconda-ks.cfg Desktop Downloads initial-setup-ks.cfg 公共 模板 视频 图片 文档 下载 音乐 桌面若只退出当前交互模式
Mac: control + P + Q win: Ctrl + P + Q
docker ps 列出容器
$ docker ps [OPTIONS]
可选项,OPTIONS
名称,简写 | 默认 | 描述 |
---|---|---|
--all , -a | 显示所有容器(默认显示正在运行) | |
--filter , -f | 根据提供的条件过滤输出 | |
--format | 使用 Go 模板的漂亮打印容器 | |
--last , -n | -1 | 显示 n 个最后创建的容器(包括所有状态) |
--latest , -l | 显示最新创建的容器(包括所有状态) | |
--no-trunc | 不要截断输出 | |
--quiet , -q | 只显示容器 ID | |
--size , -s | 显示总文件大小 |
操作案例:
1、显示全部运行过的容器
docker ps -a
输出:
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
c83f944aa84d centos “/bin/bash” 11 minutes ago Exited (0) 5 minutes ago hardcore_jennings
92be413aabca hello-world “/hello” 36 hours ago Exited (0) 36 hours ago suspicious_hawking
fae891c96daa hello-world “/hello” 36 hours ago Exited (0) 36 hours ago admiring_cohen
dc56b3f9840e hello-world “/hello” 5 days ago Exited (0) 5 days ago elastic_galileo注:不加 -a 只显示当前正在运行的容器
2、显示最近运行过的两个容器
docker ps -a -n=2
输出:
[root@localhost ~]# docker ps -a -n=2
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
c83f944aa84d centos “/bin/bash” 15 minutes ago Exited (0) 9 minutes ago hardcore_jennings
92be413aabca hello-world “/hello” 36 hours ago Exited (0) 36 hours ago suspicious_hawking
3、显示全部运行过的容器的ID
docker ps -a -q 或 docker ps -aq
输出:
[root@localhost ~]# docker ps -aq
c83f944aa84d
92be413aabca
fae891c96daa
dc56b3f9840e
docker rm 删除容器(一个或多个)
$ docker rm [OPTIONS] CONTAINER [CONTAINER...]
可选项,OPTIONS
名称,简写 | 默认 | 描述 |
---|---|---|
--force , -f | 强制移除正在运行的容器(使用 SIGKILL) | |
--link , -l | 删除指定链接 | |
--volumes , -v | 删除与容器关联的匿名卷 |
操作案例:
1、删除指定容器
docker rm -f elastic_galileo 或 docker rm -f dc56b3f9840e
输出:
[root@localhost ~]# docker rm -f elastic_galileo
elastic_galileo注:上面查看所有时以知道全面容器信息
2、删除全部容器
docker rm -f $(docker ps -aq) 或 docker ps -aq | xargs docker rm -f
输出:
注:不加 -f 将无法删除正在运行的容器
[root@localhost ~]# docker rm -f $(docker ps -aq)
7320f5b301b2
c83f944aa84d
92be413aabca
fae891c96daa查看删除效果
[root@localhost ~]# docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
启动、停止、重启、杀掉容器
$ docker start 容器ID/名
$ socker stop 容器ID/名
$ docker restart 容器ID/名
$ docker kill 容器ID/名
操作案例:
1、启动最近的一个容器
docker start $(docker ps -aq -n=1)
输出:
[root@localhost ~]# docker start $(docker ps -aq -n=1)
1dc0fca4bcd8
2、停止刚刚启动的容器
docker stop 1dc0fca4bcd8
输出:
[root@localhost ~]# docker stop 1dc0fca4bcd8
1dc0fca4bcd8
[root@localhost ~]# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
3、重启刚停止的容器
docker restart $(docker ps -aq -n=1)
输出:
[root@localhost ~]# docker restart $(docker ps -aq -n=1)
1dc0fca4bcd8
[root@localhost ~]# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
1dc0fca4bcd8 centos “/bin/bash” 10 minutes ago Up 3 seconds hardcore_roentgen
4、杀死刚启动的容器
docker kill 1dc0fca4bcd8
输出:
[root@localhost ~]# docker kill 1dc0fca4bcd8
1dc0fca4bcd8
[root@localhost ~]# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
[root@localhost ~]# docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
1dc0fca4bcd8 centos “/bin/bash” 12 minutes ago Exited (137) 14 seconds ago hardcore_roentgen