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