docker的常用命令详解
目录
- 前言
- docker常用命令
- 1 启停类/帮助 命令
- 2镜像命令
- 3 容器命令
- 结语
前言
本篇文章不仅仅是生硬的命令大全,也是我个人对docker学习使用的一步步总结,通过一个个示例来加深各位看官对docker相关命令的理解以及记忆,在有趣的同时穿插知识点,您花费半小时时间,照着我的思路走一遍,一定会有所收获。
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
同一仓库源可以有多个 TAG版本,代表这个仓库源的不同个版本,我们使用 REPOSITORY:TAG 来定义不同的镜像。
如果你不指定一个镜像的版本标签,例如你只使用 ubuntu,docker 将默认使用 ubuntu:latest 镜像
- 搜索镜像: docker search [OPTIONS] 镜像名字
OPTIONS说明:
–limit : 只列出N个镜像,默认25个
如docker search --limit 5 redis
- 下载镜像: docker pull 镜像名称[:TAG] #没有TAG就是最新版
- 查看镜像/容器/数据卷所占的空间: docker system df
- 删除镜像: docker rmi 镜像ID
删除单个
docker rmi -f 镜像ID
删除多个docker rmi -f 镜像名1:TAG 镜像名2:TAG
删除全部
docker rmi -f $(docker images -qa)
面试知识点:什么docker虚悬镜像?
答:仓库名、标签都是
3 容器命令
- 有镜像才能有容器,这里假设已通过
docker pull ubuntu命令下载了ubuntu镜像,后面的命令介绍基于此镜像。 - 新建并启动容器:
docker run [OPTIONS] ***IMAGE*** [COMMAND] [ARG...]
OPTIONS说明(常用):有些是一个减号(短杠),有些是两个减号
–name=“容器新名字” 为容器指定一个名称;
-d: 后台运行容器并返回容器ID,也即启动守护式容器(后台运行);
-i:以交互模式运行容器,通常与 -t 同时使用;
-t:为容器重新分配一个伪输入终端tty,通常与 -i 同时使用;
也即启动交互式容器(前台有伪终端,等待交互);
- 启动交互式容器(前台命令行)
#使用镜像centos:latest以交互模式启动一个容器,在容器内执行/bin/bash命令。
docker run -it centos /bin/bash
说明:/bin/bash:放在镜像名后的是命令,这里我们希望有个交互式 Shell,因此用的是 /bin/bash。
- 列出当前所有正在运行的容器:
docker ps - 退出容器
·两种退出方式
·run进去容器,exit退出,容器停止
·run进去容器,ctrl+p+q退出,容器不停止
- 容器启停
docker start 容器ID或者容器名
docker restart 容器ID或者容器名
docker stop 容器ID或者容器名
- 删除容器
删除已停止的容器
docker rm 容器ID
一次性删除多个容器实例docker rm -f $(docker ps -a -q)
docker ps -a -q | xargs docker rm
- 启动守护式容器(后台服务端运行) docker run -d 容器名
好习惯:每次运行容器之后通过docker ps看一下容器是否启动成功了
问题:docker run -d centos启动centos守护容器,然后docker ps -a 进行查看, 会发现容器已经退出?
说明: 有的Docker容器后台运行,就必须有一个前台进程.容器运行的命令如果不是那些一直挂起的命令(比如运行top,tail),就是会自动退出的。
这个是docker的机制问题,最佳的解决方案是,将你要运行的程序以前台进程的形式运行,常见就是命令行模式,表示我还有交互操作,别中断。
如后台运行nginx命令:
docker run -di --name=nginx -p 80:80 nginx
- 9. 查看容器日志:docker logs 容器ID
查看容器内部细节,返回JSON格式数据:docker inspect 容器ID
- 10. 退出容器后重新进入(进入正在运行的容器并以命令行交互):
docker exec -it 容器ID /bin/bash
docker attach 容器ID 不推荐
上述两个容器进入命令exec和attach的区别:
- attach 直接进入容器启动命令的终端,不会启动新的进程,用exit退出,会导致容器的停止。
- exec 是在容器中打开新的终端,并且可以启动新的进程 用exit退出,不会导致容器的停止。
推荐大家使用 docker exec 命令,因为退出容器终端,不会导致容器的停止。
- 11. 从容器内拷贝文件到主机上: docker cp 容器ID:容器内路径 目的主机路径
- 12. 导入导出容器
- export 导出容器的内容留作为一个tar归档文件[对应import命令]
- import 从tar包中的内容创建一个新的文件系统再导入为镜像[对应export]
案例
docker export 容器ID > 文件名.tar
cat 文件名.tar | docker import - 镜像用户/镜像名:镜像版本号
结语
一个人可以走很快,但是一群人可以走更远,大家一起抱团学习啊。
上一篇:使用Docker-compose部署mysql的简单步骤
栏 目:其它服务器
本文标题:docker的常用命令详解
本文地址:https://zz.feitang.co/server/30536.html
您可能感兴趣的文章
- 12-20Kubernetes中使用临时容器进行故障排查的方法
- 12-20Nginx设置HTTPS的方法步骤
- 12-20二进制方式安装 Kubernetes1.18.3版本实现脚本
- 12-20Nginx工作模式及代理配置的使用细节
- 12-20ZooKeeper分布式协调服务设计核心概念及安装配置
- 12-20Kubernetes部署可视化地图的十个步骤
- 12-20关于docker清理Overlay2占用磁盘空间的问题(亲测有效)
- 12-20Docker compose配置文件写法及命令使用示例
- 12-20openwrt安装docker并启动的操作方法
- 12-20云原生Kubernetes初始化容器Init使用教程


阅读排行
推荐教程
- 12-07一文教你怎么选择Tomcat对应的JDK版本
- 12-07新版Eclipse集成Tomcat时找不到server选项的解决方法
- 12-06IIS7 应用程序池自动回收关闭的解决方案
- 12-05Windows Server 2019安装VMware
- 12-05Windows服务器默认IE浏览器无法下载文件的解决方法
- 12-05Docker安装Jenkins全过程
- 12-19Zabbix SAML SSO 登录绕过漏洞的操作流程
- 12-15Docker-Compose搭建Spark集群的实现方法
- 12-14Docker Desktop无法正常启动解决(failed to start...)
- 12-14k8s 与docker空间使用分析与清理方法





