基础命令
docker version docker info docker --help
镜像命令
查看
docker images
其中:
REPOSITORY:表示镜像的仓库源
TAG:镜像的标签(默认的版本标签为 latest,拉镜像时可以指定 TAG)
IMAGE ID:镜像ID
CREATED:镜像创建时间
SIZE:镜像大小
命令的选项有:
- -a:列出本地所有的镜像
- -q:只显示镜像 ID
- --digests:显示镜像的摘要信息
- --no-trunc:显示完整的镜像信息
其中最常用的为
docker images -qa
搜索
docker search [镜像名]
常见的命令选项有:
- --no-trunc:显示完整的镜像描述
- -s:列出星星数不小于指定值的镜像
- --automated:列出所有自动构建的镜像
下载镜像
docker pull [镜像名]
pull 命令类似 git 拉取代码,用于下载镜像,镜像名后可以跟 TAG 用于指定版本 docker pull 镜像名:TAG
,在 docker 中不加 TAG 默认为 latest
删除镜像文件
docker rmi 镜像名ID
可以跟镜像 ID 也可以跟镜像名。可以使用 -f 强制删除,如果需要删除所有镜像可以使用 docker rmi -f $(docker images -qa)
如果删除时提示冲突,可以先删掉记录docker ps -a -q | xargs docker rm
或者 docker rm -f $(docker ps -a -q)
然后再删除即可
容器命令
下载镜像
docker pull centos
新建并运行容器
docker run [OPTIONS] image [COMMAND] [ARG]
常用的选项有:
- --name:给容器指定名字,不指定的话会自动给定一个名字
- -d:后台运行容器,返回容器 ID
- -i 与 -t:-i 表示以交互式方式运行容器,-t 表示为容器分配一个伪终端,通常两者一起使用
- -P:随机端口映射
- -p:指定端口映射关系
- --rm:对于foreground容器,由于其只是在开发调试过程中短期运行,其用户数据并无保留的必要,使用该选项,这样在容器退出时就能够自动清理容器内部的文件系统,但是不能和 -d 同时使用
运行方式:
交互式容器
docker run -it centos /bin/bash
表示:使用镜像 centos:latest 以交互模式启动一个容器,在容器内执行/bin/bash命令。
2. 守护式容器
docker run -d centos
运行以后在进程中看不到对应的容器。因为 Docker 容器后台运行,就必须有一个前台进程。容器运行的命令如果不是那些一直挂起的命令,就会自动退出。
查看正在运行的容器
docker ps [OPTIONS]
常见的选项有
- -a:列出当前所有正在运行的容器+历史上运行过的
- -l:显示最近创建的容器
- -n:显示最近n个创建的容器
- -q:静默模式,只显示容器编号
- --no-trunc:不截断输出
退出容器
停止退出
在容器的交互式终端输入
exit
回车或者使用 "ctrl+D" 即可停止容器并退出容器不停止退出
即容器仍然在后台运行,但是推出交互式终端,使用 "ctrl+P+Q" 即可
启动容器
docker start 容器ID或者容器名
重启容器
docker restart 容器ID或者容器名
停止容器
1. 正常停止
docker stop 容器ID或者容器名
2. 强制停止
docker kill 容器ID或者容器名
删除已经停止的容器
docker rm 容器ID
如果需要一次性删除多个容器,可以使用:
docker rm -f $(docker ps -a -q)
查看日志
docker logs 容器 ID
通常添加如下选项:
- -t:加入时间戳
- -f:跟随最新的日志打印
- --tail 数字:显示最后多少条
查看容器内部
查看容器内部进程
docker top 容器ID
查看容器内部细节
docker inspect 容器ID
进入正在运行的容器
exec 进入
docker exec -it 容器ID /bin/bash
在容器中打开新的终端,并且可以启动新的进程
attach 进入
docker attach 容器ID
直接进入容器启动命令的终端,不会启动新的进程
拷贝
1. 从容器拷贝到宿主机上:
docker cp 容器ID:容器内路径 目标的宿主机目录
2. 从宿主机拷贝到容器:
docker cp 宿主机的目录 容器ID:容器内路径
不管容器是否启动,拷贝都会生效