Docker的常用命令
1. 帮助启动类命令
-
启动docker: systemctl start docker
-
停止docker: systemctl stop docker
-
重启docker: systemctl restart docker
-
查看docker状态: systemctl status docker
-
开机启动: systemctl enable docker
-
查看docker概要信息: docker info
-
查看docker总体帮助文档: docker --help
-
查看docker命令帮助文档: docker 具体命令 --help
2. 镜像命令
-
docker images
- 列出本地所有的镜像
各个选项说明
REPOSITORY:表示镜像的仓库源
TAG:镜像的标签版本号
IMAGE ID:镜像ID
CREATED:镜像创建时间
SIZE:镜像大小- 同一仓库源可以有多个 TAG版本,代表这个仓库源的不同个版本,我们使用 REPOSITORY:TAG 来定义不同的镜像。如果你不指定一个镜像的版本标签,例如你只使用 ubuntu,docker 将默认使用 ubuntu:latest 镜像
- OPTIONS说明:
-
-a :列出本地所有的镜像(含历史映像层)
-
-q :只显示镜像ID。
-
- 列出本地所有的镜像
-
docker search 某个镜像的名字
查找某个镜像
参数 说明 Name 镜像名称 DESCRIPTION 镜像说明 START 点赞数量 OFFICIAL 是否是官方的 AUTOMATED 是否是自动构建的 - 选项说明:
- –limit : 只列出N个镜像,默认25个
- –limit : 只列出N个镜像,默认25个
- 选项说明:
-
docker pull 某个XXX镜像名字
下载镜像docker pull 镜像名字[:TAG]
没有TAG就是最新版。等价于 docker pull 镜像名字:latest
-
docker system df 查看镜像/容器/数据卷所占的空间
-
docker rmi 某个XXX镜像名字ID
- 选项说明:
-
-f :强制删除;
-
–no-prune :不移除该镜像的过程镜像,默认移除;
-
- 删除多个
docker rmi -f 镜像名1:TAG 镜像名2:TAG
- 删除全部
docker rmi -f $(docker images -qa)
- 选项说明:
解释什么是虚悬镜像:
仓库名、标签都是none的镜像,俗称虚悬镜像dangling image
3.容器命令
- 有镜像才能创建容器,这是根本前提
新建+启动容器
docker run [OPTIONS] IMAGE [COMMAND] [ARG...]
如果本地未找到该容器,则默认仓库进行拉取
-
OPTIONS说明(有些是一个减号,有些是两个减号)
- –name=“容器新名字” 为容器指定一个名称;
- -d: 后台运行容器并返回容器ID,也即启动守护式容器(后台运行);
- -i:以交互模式运行容器,通常与 -t 同时使用;
- -t:为容器重新分配一个伪输入终端,通常与 -i 同时使用;也即启动交互式容器(前台有伪终端,等待交互);
- -P: 随机端口映射,大写P
- -p: 指定端口映射,小写p
-
前台交互式启动容器(以Ubuntu为例)
docker run -it ubuntu /bin/bash
(使用镜像centos:latest以交互模式启动一个容器,在容器内执行/bin/bash命令)
参数说明:
-i: 交互式操作。
-t: 终端。
ubuntu : ubuntu 镜像。
/bin/bash:放在镜像名后的是命令,这里我们希望有个交互式 Shell,因此用的是 /bin/bash。
要退出终端,直接输入 exit: -
后台守护式容器(以Redis为例)
- docker run -d redis:6.0.8
- docker run -d redis:6.0.8
-
docker top 容器ID. 查看容器内运行的进程
-
docker inspect 容器ID 查看容器内部细节
列出所有正在运行的容器
-
docker ps [OPTIONS]
-
OPTIONS说明(常用):
- -a :列出当前所有正在运行的容器+历史上运行过的
- -l :显示最近创建的容器。
- -n:显示最近n个创建的容器。
- -q :静默模式,只显示容器编号。
退出容器
- 两种退出方式
- run进去容器,exit退出,容器停止
- run进去容器,ctrl+p+q退出,容器不停止
重启容器
- docker restart 容器ID或者容器名
启动已停止运行的容器
- docker start 容器ID或者容器名
停止容器
- docker stop 容器ID或者容器名
强制停止容器
- docker kill 容器ID或容器名
删除已停止的容器
- docker rm 容器ID
- 一次性删除多个容器实例
docker rm -f $(docker ps -a -q)
docker ps -a -q | xargs docker rm
进入正在运行的容器并以命令行交互
docker exec -it 容器ID bashShell
docker attach 容器ID
两者区别
attach 直接进入容器启动命令的终端,不会启动新的进程 用exit退出,会导致容器的停止。
exec 是在容器中打开新的终端,并且可以启动新的进程 用exit退出,不会导致容器的停止。
推荐大家使用 docker exec 命令,因为退出容器终端,不会导致容器的停止。
容器数据拷贝
- docker cp 容器ID:容器内路径 目的主机路径