Docker的常用命令
帮助命令
docker version # docker版本
docker info # 显示docker的系统信息,包括镜像和容器的数量
docker [命令] --help # 查看某个具体的命令
镜像命令
查看下载的所有镜像
# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
mysql 5.6 8de95e6026c3 20 hours ago 302MB
redis latest 36304d3b4540 12 days ago 104MB
mysql latest 30f937e841c8 2 weeks ago 541MB
centos/mysql-57-centos7 latest f83a2938370c 8 months ago 452MB
解释
REPOSITORY 镜像的仓库名
TAG 镜像的标签
IMAGE ID 镜像ID
CREATED 镜像创建时间
SIZE 镜像的大小
可选项
Options:
-a, --all # 列出所有镜像
-q, --quiet # 只显示镜像ID
搜索镜像
# docker search jdk
NAME DESCRIPTION STARS OFFICIAL AUTOMATED
ubuntu Ubuntu is a Debian-based Linux operating sys… 15147 [OK]
websphere-liberty WebSphere Liberty multi-architecture images … 290 [OK]
ubuntu-upstart DEPRECATED, as is Upstart (find other proces… 112 [OK]
neurodebian NeuroDebian provides neuroscience research s… 94 [OK]
ubuntu/nginx Nginx, a high-performance reverse proxy & we… 64
open-liberty Open Liberty multi-architecture images based… 55 [OK]
ubuntu-debootstrap DEPRECATED; use "ubuntu" instead 49 [OK]
# 可选项,通过收藏来过滤
--filter=stars=3000 # 搜索出来的镜像收藏就是大于3000的
下载镜像
# docker pull
[root@CZP ~] # docker pull nginx [:tag]
Using default tag: latest # 如果不写tag 默认使用最新版本
latest: Pulling from library/nginx
8559a31e96f4: Pull complete # 分层下载,docker image核心 联合文件系统
8d69e59170f7: Pull complete
3f9f1ec1d262: Pull complete
d1f5ff4f210d: Pull complete
1e22bfa8652e: Pull complete
Digest: sha256:21f32f6c08406306d822a0e6e8b7dc81f53f336570e852e25fbe1e3e3d0d0133 # 签名
Status: Downloaded newer image for nginx:latest
docker.io/library/nginx:latest # 真实地址
# docker pull nginx 等价于 dicker pull docker.io/library/nginx:latest
#指定版本下载
删除镜像
# docker rmi
# 删除指定的容器
[root@CZP ~]# docker rm -f 8de95e6026c3
# 删除全部的容器
[root@CZP ~]# docker rm -f $(docker -ap)
# 删除包含none的容器
docker rmi $(docker images | grep "none" | awk '{print $3}')
容器命令
说明 : 有了镜像才可以创建容器,
docker pull [image]
新建容器并启动
# docker run [可选参数] image
# 参数说明
--name="" 容器名字 用于区分容器
-d 后台方式运行
-it 使用交互方式运行,进入容器查看内容
-p 指定容器的端口 -p 80:8080 主机端口:容器端口
-P(大写) 随机指定容器的端口
列出所有运行的容器
# docker ps 命令 (不加参数)列出当前正在运行的容器
# 参数说明
-a # 列出当前正在运行的容器+历史运行过的容器
-n=? # 显示最近创建的容器
-q # 只显示容器的编号
[root@CZP ~]# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
[root@CZP ~]# docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
919e58ff5521 redis "docker-entrypoint.s…" 20 hours ago Exited (0) 16 hours ago redis
退出容器
exit # 直接容器停止并退出
ctrl + p + q # 直接退出容器
删除容器
docker rm 容器id # 删除指定容器(可一次删除多个,各id之间用空格隔开)
docker rm -f[递归] $(docker ps -aq) # 递归删除所有的容器
docker ps -a | xargs docker rm # 递归删除所有的容器
启动和停止容器的操作
docker start 容器id # 启动容器
docker restart 容器id # 重启容器
docker stop 容器id # 停止当前正在运行的容器
docker kill 容器id # 强制停止当前容器
常用的其他命令
后台启动容器
# 命令docker run -d 镜像名
# 常见的坑: docker容器后台运行,就必须要有一个前台进程,docker发现没有应用,就会自动停止
#nginx, 容器启动后,发现自己没有提供服务,就会立刻停止,就是没有程序了
查看日志
docker logs -f -t --tail 容器
# 参数说明
-tf # 显示日志
--tail number # 要显示的日志条数
[root@localhost ~]# docker logs -tf --tail 10 centosv1
2021-06-26T01:38:12.739000465Z [root@ef24fc0af36a /]# docker ps
2021-06-26T01:38:12.739180686Z bash: docker: command not found
2021-06-26T01:38:21.504914487Z [root@ef24fc0af36a /]# exit
2021-06-26T01:38:21.504931415Z exit
查看容器中进程信息
docker top 容器id
[root@CZP ~]# docker top 63d4c4115212
UID PI