Docker命令
帮助启动类命令
启动docker
systemctl start docker
停止docker
systemctl stop docker
重启docker
systemctl restart docker
查看docker状态
systemctl status docker
开机启动
systemctl enable docker
查看概要信息
docker info
查看docker总体帮助文档
docker --help
查看docker命令帮助文档
docker 具体命令 --help
镜像命令
docker images 列出本地主机上的镜像
表头参数 说明 REPOSITORY 表示镜像的仓库源 TAG 镜像标签的版本号 IMAGE ID 镜像ID CREATED 镜像创建时间 SIZE 镜像大小 - 说明:同一仓库源可以有多个TAG版本,代表这个仓库源的不同个版本,我们使用REPOSITORY:TAG来定义不同的镜像,如果不指定镜像标签,将默认使用latest镜像
option说明
-a:列出本地所有镜像(包含历史映像层) -q:只显示镜像ID
docker search 镜像名称
- 作用:从docker hub搜索镜像
表头信息 说明 NAME 镜像名称(包含发布包名) DESCRIPTION 镜像说明 STARS 点赞数量 OFFICIAL 是否官方认证 AUTOMATED 是否是自动构建的 options说明
--limit:只列出N个镜像,默认25个 示例:docker search --limit 5 redis
docker pull 镜像名称
- 作用:下载镜像
语法
docker pull 镜像名称[:TAG]
- 说明:没有TAG相当于最新版,等价于docker pull 镜像名称:latest
docker system df
- 作用:查看镜像/容器/数据卷所占空间
docker rmi 镜像名称|镜像ID
- 作用:删除镜像
options
-f:强制删除该镜像
删除多个镜像
docker rmi -f 镜像名1:TAG 镜像名2:TAG ...
删除全部
docker rmi -f $(docker -images -qa) # $()嵌套执行命令将结果传递给外层命令
什么是虚悬镜像?
虚悬镜像是指仓库和标签都未None的镜像,一般为中途构建失败的镜像,建议删除
容器操作命令
docker run [options] image [command] [arg...]
- 作用:新建+启动容器
options:
参数 作用 --name='xxx' 为容器指定一个名称,不指定则为随机名称 -d 后台运行容器,并返回容器ID,既启动守护式容器(后台运行) -i 以交互模式运行容器,通常与-t同时使用 (interactive) -t 为容器重新分配一个伪输入终端,通常与-i同时使用(既启动带有伪终端的交互式容器)(terminal) -P 随机端口映射,大写P -p 指定端口映射,小写p 端口映射示例
-p 主机端口:容器端口 # -p 80:8080 -p 主机IP:主机端口:容器端口 #配置监听地址 -p 192.168.1.2:80:8080
启动交互式容器示例
docker run -it ubuntu /bin/bash #使用镜像ubuntu:latest以交互模式启动容器,在容器内执行/bin/bash命令 exit #退出交互式容器
docker ps [options]
- 作用:列出当前所有正在运行的容器
options说明
参数 作用 -a 列出当前所有正在运行的容器+历史上运行过的 -l 显示最近创建的容器 -n 显示最近创建的n个容器 -q 静默模式,只显示容器编号
exit | ctrl+p+q
- 作用:退出容器
- 说明:在容器内使用exit退出,容器会停止;使用ctrl+p+q退出,容器不停止
docker start 容器ID | 容器名
- 作用:启动已经停止运行的容器
docker restart 容器ID | 容器名
- 作用:重启容器
docker stop 容器ID | 容器名
- 作用:停止容器
docker kill 容器ID | 容器名
- 作用:强制停止容器
docker rm 容器ID
- 作用:删除已停止的容器
- options: -f 强制删除
说明:一次性删除多个容器实例可以使用以下命令
docker rm -f $(docker ps -q -a) docker ps -q -a | xargs docker rm
docker run -d 容器名
- 作用:启动守护式容器(后台服务器),在大部分场景下,我们希望docker服务是在后台运行的,所以可以通过-d指定容器的后台运行模式
示例
docker run -d redis #后台启动redis docker ps -a #查看容器是否在运行
- 注意项:启动守护式容器必须有一个前台阻塞式进程,否则容器会在命令执行完成后自动退出,这是docker的机制问题
docker logs 容器名|容器ID
- 作用:查看容器日志
docker top 容器名|容器ID
- 作用:查看容器内正在运行的进程
docker inspect 容器ID
- 作用:查看容器内部细节
与正在运行的后台容器进行交互
方式1:docker exec -it 容器ID /bin/bash
- 作用:以前台交互的方式进入后台容器
方式2:docker attach 容器ID (已过期)
- 作用:重新进入后台容器
区别:docker exec -it在使用exec退出后容器扔在运行,docker attach运行的容器在使用exec退出后容器会停止运行,所以一般推荐使用exec的方式进入守护式容器
docker cp 容器ID:容器文件路径 目标主机路径
- 作用:将容器内文件拷贝到主机
示例
docker cp 32a88a902c9a:/var/a.txt ./
docker export 容器ID > 文件名.tar
- 作用:导出容器的内容作为一个tar归档文件
示例
docker export 32a88a902c9a > ub.tar
cat 文件名.tar | docker import - 镜像用户/镜像名:镜像版本号
- 作用:从tar包中的内容创建一个新的文件系统再导入为镜像
示例
cat ub.tar | docker import - zss/myubuntu:1.0 docker images REPOSITORY TAG IMAGE ID CREATED SIZE zss/myubuntu 1.0 1541c623b4dc About a minute ago 72.8MB
Docker镜像commit操作
- 说明:docker镜像层都是只读的,容器层是可写的,当容器启动时,一个新的可写层会被加载到镜像的顶部,这一层通常称为容器层,容器层之下的都叫镜像层
- docker commit的作用:提交容器副本使之成为一个新的镜像
语法
docker commit -m="描述信息" -a="作者" 容器ID 镜像名:[标签名]