当前位置:   article > 正文

【Docker】Docker常用命令(包含Dockerfile指令)_dockerfile 删除镜像里面文件

dockerfile 删除镜像里面文件

一.Docker常用命令

1.帮助命令

# docker version       //查看docker版本号
# docker info          //查看docker的系统信息,包含镜像和容器的数量
# docker 命令 --help   //帮助命令
  • 1
  • 2
  • 3

2.镜像命令

  • 显示镜像
# docker images        //显示所有本地主机上的镜像
# docker images -a     //显示所有镜像
# docker images -q     //只显示镜像id
  • 1
  • 2
  • 3

在这里插入图片描述

  • 搜索镜像
# docker search 镜像名                         //搜索镜像
# docker search mysql                         //搜索mysql镜像
# docker search mysql -filter=STARS=2000      //搜索mysql收藏大于2000的镜像
  • 1
  • 2
  • 3

在这里插入图片描述

  • 下载镜像
  • 注意:版本号不能乱写,要在dockerhup搜索上面有的版本。
# docker pull 镜像名                         //下载最新版本镜像
# docker pull 镜像名:版本号                   //指定版本下载
  • 1
  • 2

  • 删除镜像

注意:有的镜像不能直接删除,因为有通过他创建的容器,要先删除容器

# docker rmi 镜像id或镜像仓库名                         //删除指定镜像
# docker rmi 镜像id或镜像仓库名 $(docker images -aq)    //删除全部镜像
  • 1
  • 2

  • 构建镜像

注意:必须在你的 Dockerfile 文件目录下执行该命令,不在的话就加 -f

# docker build [可选参数]        //下载最新版本镜像
  • 1
可选参数功能
-f指定Dockerfile文件路径
-t指定构建的镜像名和tag ,例:# docker build -t 镜像名:tag

3.镜像导出和导入命令

  • 镜像导出
//根据容器导出镜像,相对来说文件较小,不能多个镜像合成一个文件
docker export 容器id或容器名字 > image.tar

//根据镜像导出镜像,相对文件较大
docker save 镜像id或镜像名字 > image.tar

//多个镜像导出成一个文件
docker save -o image.tar 镜像1 镜像2
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 镜像导入
//镜像导入,可以对镜像重命名
docker import 自定义镜像名字 < image.tar

镜像导入,不能重命名
docker load < image.tar
  • 1
  • 2
  • 3
  • 4
  • 5

docker export 的应用场景: 主要用来制作基础镜像,比如我们从一个 ubuntu 镜像启动一个容器,然后安装一些软件和进行一些设置后,使用 docker export 保存为一个基础镜像。然后,把这个镜像分发给其他人使用,比如作为基础的开发环境。
docker save 的应用场景: 如果我们的应用是使用 docker-compose.yml 编排的多个镜像组合,但我们要部署的客户服务器并不能连外网。这时就可以使用 docker save 将用到的镜像打个包,然后拷贝到客户服务器上使用 docker load 载入。

4.容器命令

前提:有镜像才可以创建容器(同时也要注意命令的顺序 - -name尽量在最后)

  • 创建并启动容器
# docker run [可选参数] 镜像名           //创建并启动容器
# docker run -it 镜像名 /bin/bash     	//启动并进入容器
  • 1
  • 2
可选参数作用
 - -name自定义容器名字 例:- -name 定义的容器名字
-d以后台方式启动
-it使用交互方式启动,进入容器查看内容
-p指定容器端口,例:-p 8090:8080(8090是对外端口,8080是容器端口)
-P随机端口
-v挂载目录,双向绑定。
docker容器内的卷,没有指定主机目录情况下都在 /var/lib/docker/volume/xxx/-data
指定路径挂载:-v 主机目录 容器目录 (例如:/var/log/:/var/log/)
匿名挂载:-v 容器目录
具名挂载:-v 自定卷名:容器卷
 - -mac-address=自定义的mac地址指定mac地址启动
  • 容器卷的挂载
# docker volume ls               //查看所有的挂载卷(匿名挂载是一串乱码,而具名挂载是你自定义的名字)
  • 1

# docker run -d -P --name nginx001 -v /etc/nginx nginx //匿名挂载

在这里插入图片描述


默认是rw(可读可写)

# docker run -d -P --name nginx001 -v ikun:/etc/nginx:ro nginx //具名挂载(ro只针对容器,只可读)
# docker run -d -P --name nginx001 -v ikun:/etc/nginx:rw nginx //具名挂载(rw在容器内既可读又可写)

在这里插入图片描述

# docker volume inspect 卷名 //查看这个卷

在这里插入图片描述



  • 查看容器
# docker ps      //显示正在运行的容器
# docker ps -a   //显示全部的容器
# docker ps -q   //只显示容器id            
  • 1
  • 2
  • 3

  • 退出容器
# exit     	  //容器停止并退出
ctrl + p + q  //退出容器并不停止
  • 1
  • 2

  • 删除容器
# docker rm 容器id      	   //删除指定容器,不能删除正在运行的容器
# docker rm -f 容器id          //强制删除包含正在运行的容器	
# docker rm $(docker ps -aq)   //删除全部容器
  • 1
  • 2
  • 3

  • 启动和停止容器
# docker start 容器id      	   //启动容器
# docker restart 容器id        //重启容器
# docker stop 容器id           //停止当前正在运行的容器
# docker kill 容器id           //强制停止当前容器	
  • 1
  • 2
  • 3
  • 4
  • 容器复制命令
# docker cp 容器id或容器名称:容器路径 宿主机路径    //将容器的文件复制到宿主机
# docker cp 宿主机路径 容器id或容器名称:容器路径    //将宿主机的文件复制到容器
  • 1
  • 2

5.其他常用命令

  • 查看日志
# docker logs 容器id      	   //查看容器日志
  • 1
  • 查看容器进程信息
# docker top 容器id      	   //查看容器进程信息
  • 1
  • 查看容器的元数据
# docker inspect 镜像id      	   //查看容器的元数据
  • 1
  • 进入正在运行的容器
# docker exec -it 容器id /bin/bash      	   //进入正在运行的容器(开启一个新的终端)
# docker attach 容器id            	           //进入正在运行的容器(不开启一个新的终端)
  • 1
  • 2

6.更多更详细命令

https://www.runoob.com/docker/docker-build-command.html

二.Dockerfile常用指令

1.常用指令

 - FROM           //基础镜像
 - MAINTAINER     //镜像的维护者 姓名 + 邮箱
 - RUN            //镜像构建时执行的命令
 - ADD            //将宿主机的文件拷贝进镜像
 - WORKDIR        //设置当前工作目录
 - VOLUME         //设置挂载目录(可以将容器目录挂载到主机上,实现同步)
 - EXPOSE         //指定对外端口
 - CMD            //指定这个容器启动的时候要运行的命令(只有最后一个会生效,可被替代)
 - ENTRYPOINT     //指定这个容器启动的时候要运行的命令(可以追加)
 - COPY           //将我们的文件拷贝到镜像中
 - ENV            //构建的时候设置环境变量
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11

2.CMD 和 ENTRYPOINT 的区别

构建镜像的时候使用 CMD 指令

在这里插入图片描述
在这里插入图片描述


构建镜像的时候使用 ENTRYPPOINT 指令

在这里插入图片描述
在这里插入图片描述

相信你们从上面的图片就能看出差别了。

声明:本文内容由网友自发贡献,转载请注明出处:【wpsshop博客】
推荐阅读
相关标签
  

闽ICP备14008679号