# 1.docker基本命令 ## 1.docker images 查看本地images 镜像缓存 docker images 查看本地镜像文件 * REPOSITORY 存储库名称 * Tag 镜像的标签 不写版本号码 默认下载最新latest镜像 * IMAGE ID 镜像id * CREATED 创建时间 * SIZE 大小 docker images -a docker images -q ---只显示镜像的id docker images --digests ---显示镜像的摘要信息 docker images --no-trunc ---显示完整镜像信息 ## 2.docker search ``` docker search mysql docker search -s 30 mysql 列出点赞数超过30以上。 ``` ## 3.docker pull ``` docker pull nginx:latest --默认的情况下,下载最新版本的镜像 ``` ## 4.docker ps ``` docker ps 查看正在运行的容器 docker ps -a 查看运行和已经运行关闭大的容器 ``` ## 5.docker run docker run -i(保持容器一直运行)-t(给容器一个伪终端)-d(后台运行,不直接进入容器) --name=tomcat9.2(给启动容器起名字)-p 8080:8080(宿主:docker容器)tomcat:9.2(启动的容器) 【参数】(加入容器初始化命令) #通过 -it 启动的容器有两个特点 一创建就进入容器 exit退出容器 容器就会停止运行 ---交互式容器 #通过 -id 创建的容器 docker exec -it tomcat9.2(--name起的名称)进入容器 exit退出容器 容器不会停止运行 ---守护式容器 ``` docker stop tomcat8 关闭容器 docker start tomcat8 启动容器 docker rm tomcat8 删除容器 docker inspect tomcat8 查看容器信息 docker exec 参数 进入容器 ``` ## 6.docker rmi 删除镜像:docker rmi tomcat(镜像文件名称) 1. 删除所有容器 ``` docker rm `docker ps -a -q` ``` 2. 删除所有镜像 ``` docker rmi `docker images -q` ``` 3. 按条件删除镜像 ``` docker rmi --force `docker images | grep doss-api | awk '{print $3}'` //其中doss-api为关键字 ``` # 2.docker运行原理 docker run mayikt 每个容器都有自己独立的网络ip信息 ,运行成功就是一个轻量级linux操作系统 ![img](../../照片/clip_image002.jpg) 简单描述:首先会先从本地获取获取mayikt镜像文件,如果本地没有该镜像文件则会去阿里云仓库查找该镜像文件,如果阿里云仓库也没有该镜像文件,则会报错找不到镜像文件。获取到镜像文件之后直接运行。 详细描述: 1. docker在本机缓存中 mayikt镜像文件,如果本地存在该镜像文件,则以该镜像文件作为模板在容器中运行。 2. 如果本地缓存中,没有mayikt镜像文件 则会从dockerhub 或者加速镜像中查找,如果查找不到的话,则返回错误找不到该镜像。如果能够查找到该镜像,则以该镜像作为模板运行。 ![img](../../照片/clip_image004.jpg) docker run 只在第一次运行时使用,将镜像放到容器中,以后再次启动这个容器时,只需要使用命令docker start即可。docker run相当于执行了两步操作:将镜像放入容器中(docker create),然后将容器启动,使之变成运行时容器(docker start)。而dockerstart的作用是,重新启动已存在的镜像。也就是说,如果使用这个命令,我们必须事先知道这个容器的ID,或者这个容器的名字,我们可以使用docker ps找到这个容器的信息。 # 3.docker commit 主要作用:根据当前容器制作为镜像文件 流程: 1. 从docker hub中下载一个tomcat8镜像文件; 2. 运行tomcat8镜像文件 在tomcatwebapps 目录中新增 mayikt文件夹 index.html 3. 将当前容器内容根据模板制作为镜像文件 docker commit提交容器副本使之成为一个新的镜像 命令: ``` docker commit -m=“提交的描述信息” -a=“作者” 容器ID 要创建的目标镜像名:标签名 1.根据当前容器作为模板制作为镜像文件 docker commit -m="mayikt tomcat" -a="mayikt" 3a06b4c779a8 mayikt-tomcat:1.0 2.在以当前自己制作的镜像文件运行 docker run -p 8088:8080 mayikt-tomcat:1.0 ```