一、Docker基本命令
-
启动Docker
systemctl start docker -
停止Docker
systemctl stop docker -
重启Docker
systemctl restart docker -
开机启动Docker
systemctl enable docker -
查看Docker概要信息
docker info
-
查看Docker帮助文档
docker --help
-
查看Docker版本信息
docker version
二、Docker镜像常用命令
1. docker images 列出本机所有镜像
REPOSITORY 镜像的仓库源
TAG 镜像的标签(版本)同一个仓库有多个TAG的镜像,多个版本;我们用REPOSITORY:TAG来定义不同的镜像;
IMAGE ID 镜像ID,镜像的唯一标识
CREATE 镜像创建时间
SIZE 镜像大小
OPTIONS 可选参数:
-a 显示所有镜像(包括中间层)
-q 只显示镜像ID
-qa 可以组合
--digests 显示镜像的摘要信息
--no-trunc 显示完整的镜像信息
2. docker search 搜索镜像
和 https://hub.docker.com/ 这里的搜索效果一样;
OPTIONS可选参数:
--no-trunc 显示完整的镜像描述
-s 列出收藏数不小于指定值的镜像
--automated 只列出Docker Hub自动构建类型的镜像
3. docker pull 下载镜像
注意:不加TAG,默认下载最新版本latest,需要三五分钟。
而Tomcat7只下载了三五秒,原因就是Tomcat7共用了Tomcat:latest版本的依赖
4. docker rmi 删除镜像
4.1、删除单个:docker rmi 镜像名称:[TAG]
如果不写TAG,默认删除最新版本latest
有镜像生成的容器再运行时候,会报错,删除失败;
我们需要加 -f 强制删除
所以就需要执行命令强制删除
4.2、删除多个:docker rmi -f 镜像名称1:[TAG] 镜像名称2:[TAG]
中间空格隔开
4.3、删除全部:docker rmi -f $(docker images -qa)
三、Docker容器常用命令
1. Docker创建并启动容器
docker run [OPTIONS] IMAGE [COMMAND] [ARG...]
--name="容器新名字":为容器指定一个名称;
-i:以交互模式运行容器,通常与-t或者-d同时使用;
-t:为容器重新分配一个伪输入终端,通常与-i同时使用;
-d: 后台运行容器,并返回容器ID;
-P: 随机端口映射,容器内部端口随机映射到主机的端口
-p: 指定端口映射,格式为:主机(宿主)端口:容器端口
1.1、启动普通容器: docker run --name 别名 镜像ID
1.2、启动交互式容器: docker run -it --name 别名 镜像ID 来运行一个容器,取别名,交互模式运行,以及分配一个伪终端,并且进入伪终端;
实例:
容器伪终端
容器一创建出来,就相当于有一个行的centos系统,既然是新的,那就可以想干嘛干嘛,可以用来单独部署项目
如果说安装软件出现了问题,那么可以直接将这个容器干掉,再用centos镜像再跑一个新的容器即可,就不用担心软件下载失败重装系统了。创建出来的容器彼此之间互不影响
宿主机终端
1.3、守护式方式创建并启动容器
docker run -di --name 别名 镜像ID
执行完以后依旧在宿主机,但是已经执行。分布式用这个命令多,原因是只想启动项目,不想进入容器,所以用这个命令比较好
2. Docker列出容器
2.1、docker ps 查看正在运行的容器
2.2、docker ps -a 查看所有容器
2.3、docker ps -n 2 显示最近创建的2个容器
2.4、docker ps -f status=exited 查看停止的容器
3. Docker退出容器
3.1、Ctrl+p+q:容器不停止退出
3.2、exit:容器停止退出
4. Docker进入容器
4.1、docker attach 容器ID or 容器名
实例:
不能进入停止的状态的容器
You cannot attach to a stopped container, start it first
4.2、Docker进入容器执行命令(这个命令用的较多)
docker exec -it 容器名称 或者 容器ID 执行命令
实例:
5. Docker启动容器
docker start 容器ID or 容器名
实例:
6. Docker 重启容器
docker restart 容器ID or 容器名
实例:
7. Docker停止容器
7.1、docker stop 容器ID or 容器名
实例:
7.2、暴力删除,直接杀掉进程 (不推荐)
docker kill 容器ID or 容器名
8. Docker删除容器
8.1、docker rm 容器ID
如果删除正在运行的容器,会报错,我们假如需要删除的话,需要强制删除;
强制删除docker rm -f 容器ID
8.2、删除多个容器
docker rm -f 容器ID1 容器ID2 中间空格隔开
实例:
8.3、删除所有容器
docker rm -f $(docker ps -qa)
9. Docker容器日志
$ docker logs [OPTIONS] CONTAINER
Options:
--details 显示更多的信息
-f, --follow 跟踪实时日志
--since string 显示自某个timestamp之后的日志,或相对时间,如42m(即42分钟)
--tail string 从日志末尾显示多少行日志, 默认是all
-t, --timestamps 显示时间戳
--until string 显示自某个timestamp之前的日志,或相对时间,如42m(即42分钟)
(以上了解)
推荐使用直进入docker容器文件中找(/var/lib/docker/containers/)
按照id以及对应对的文件名找就可以了