栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

Docker镜像&容器

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Docker镜像&容器

目录

镜像

Docker镜像常用命令

pull命令

 images命令

save命令

load命令

search命令

history命令

rmi命令

清理镜像

容器

Docker容器常用命令

 run

查看容器日志

 删除容器

列出容器

         容器的状态分类

进入容器


镜像

基本概念

我们可以简单地将镜像理解为类(Class),是一个应用程序。我们可以从镜像仓库服务中拉取镜像。常见的镜像仓库服务是 Docker Hub,但是也存在其他镜像仓库服务(如私有化部署的Habor等)。除了从镜像仓库中获取镜像我们也可以基于容器/Dockerfile的方式构建镜像。镜像由多个层组成,每层叠加之后,从外部看来就如一个独立的对象。镜像内部是一个精简的操作系统(OS),同时还包含应用运行所必须的文件和依赖包。镜像可以理解为一种构建时(build-time)结构,而容器可以理解为一种运行时(runtime)结构,如下图所示。

Docker镜像常用命令

pull命令

        下载镜像的命令。镜像从远程镜像仓库服务的仓库中下载。默认情况下,镜像会从 Docker Hub 的仓库中拉取。 通过命令执行的输出可以看到,一个镜像一般是由多个层组成,像f7e2b70d04ae 这样的串表示层的 唯一 ID。Docker 在下载之前会去检测本地是否会有同样 ID 的层,如果本地已经存在则直接使用本地的。

        eg:docker pull redis:7.0.0

 images命令         eg:docker images /docker image ls可以列出本机已有的镜像:
  •         REPOSITORY:表示镜像的仓库源
  •         TAG:镜像的标签
  •         IMAGE ID:镜像ID
  •         CREATED:镜像创建时间
  •         SIZE:镜像大小

save命令

        save命令用于将已有的本地镜像打成一个压缩包

        eg:docker save redis:7.0.0 -o redis7.tar

load命令

        load命令用于导入压缩包中的镜像

        eg:docker load -i redis7.tar

search命令

        从镜像仓库中查找相关镜像信息

        eg: docker search redis

        常用参数:

        --limit int :指定搜索内容展示个数 ;         --no - index : 不截断输出内容;         --no - trunc :不截断输出内容;         -f, -- filter filter : 过滤输出的内容; inspect 命令                  获取镜像的详细信息,其中,包括创建者,各层的数字摘要等。                  eg:docker inspect redis:7.0.0

history命令         列出各个层的创建信息                  eg:docker history redis:7.0.0

rmi命令

        删除镜像

        eg:docker rmi redis:7.0.0

        注意:推荐通过image的名称删除镜像,image的ID在终端长度未完全显示,ID值可能会出现重复。例如使用tag命令标记本地镜像

清理镜像

        我们在使用 Docker 一段时间后,系统一般都会残存一些临时的、没有被使用的镜像文件,可以通过以下命令进行清理。执行完命令后,还是告诉我们释放了多少存储空间!

        eg:docker image prune

        常用参数         -a, -- all : 删除所有没有用的镜像,而不仅仅是临时文件;         -f, -- force :强制删除镜像文件,无需弹出提示确认;

容器

        容器是镜像的运行时实例。正如从虚拟机模板上启动 VM 一样,用户也同样可以从单个镜像上启动一个或多个容器。虚拟机和容器最大的区别是容器更快并且更轻量级——与虚拟机运行在完整的操作系统之上相比,容器会共享其所在主机的操作系统/内核。下图为使用单个 Docker镜像启动多个容器的示意图。

        Docker容器类似于一个轻量级的沙箱,Docker利用容器来运行和隔离应用。容器是镜像的一个运行实例。可以将其启动、开始、停止、删除,而这些容器都是彼此相互隔离的、互不可见的。可以把容器看做是一个简易版的Linux系统环境(包括root用户权限、进程空间、用户空间和网络空间等)以及运行在其中的应用程序打包而成的盒子。容器是基于镜像启动起来的,容 器中可以运行一个或多个进程。镜像是Docker生命周期中的构建或打包阶段,而容器则是启动或执行阶段。镜像自身是只读的。容器从镜像启动的时候,会在镜像的最上层创建一个可写层。

Docker容器常用命令

        run

        eg:docker run -it --rm -p 8080:8080 --name="tomcat" tomcat:9.0.20-jre8-alpine

        常用参数

  1. -d, --detach=false: 后台运行容器,并返回容器ID
  2. -i, --interactive=false: 以交互模式运行容器,通常与 -t 同时使用
  3. -P, --publish-all=false: 随机端口映射,容器内部端口随机映射到主机的端口
  4. -p, --publish=[]: 指定端口映射,格式为:主机(宿主)端口:容器端口,推荐各位小伙伴们使用
  5. -t, --tty=false: 为容器重新分配一个伪输入终端,通常与 -i 同时使用
  6. --name="nginx-lb": 为容器指定一个名称
  7. -h , --hostname="laosiji": 指定容器的hostname
  8. -e , --env=[]: 设置环境变量,容器中可以使用该环境变量
  9. --net="bridge": 指定容器的网络连接类型,支持 bridge/host/none/container: 四种类型
  10. --link=[]: 添加链接到另一个容器;不推荐各位小伙伴使用该参数
  11. -v, --volume : 绑定一个卷
  12. --privileged=false: 指定容器是否为特权容器,特权容器拥有所有的capabilities
  13. --restart=no:指定容器停止后的重启策略(no:容器退出时不重启,on-failure:容器故障退出(返回值非零)时重启,always:容器退出时总是重启)
  14. --rm=false: 指定容器停止后自动删除容器,不能以docker run -d启动的容器

查看容器日志

        eg:docker logs -f tomcat

 删除容器

        eg:docker rm romcat

        常用参数

        -f :通过 SIGKILL 信号强制删除一个运行中的容器。         -l :移除容器间的网络连接,而非容器本身。         -v :删除与容器关联的卷。

列出容器

        eg:docker ps (列出运行中的容器,如需查看所有则要在后面加上 -a)

容器的状态分类

        容器的状态有7种:

  1. created(已创建)
  2. restarting(重启中)
  3. running(运行中)
  4. removing(迁移中)
  5. paused(暂停)
  6. exited(停止)
  7. dead(死亡)

进入容器

        docker exec :在运行的容器中执行命令。早期有attach命令,对于阻塞命令会等待,所以不方便。在 Docker 1.3.0后提供了exec 可以在容器内直接执行任意命令

        eg:docker exec -it tomcat /bin/bash 

        注意:具体使用那种shell脚本进入容器尽量提前在dockerhub中提前查阅对应容器推荐的脚本类型。

        常用参数

        -i :即使没有附加也保持STDIN 打开

        -t :分配一个伪终端

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/884919.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号