docker入门_image、container相关命令

镜像仓库服务、镜像仓库、镜像相关概念

镜像仓库服务:docker镜像仓库服务、阿里云镜像服务

镜像仓库:docker镜像仓库服务中会有很多仓库比如 docker官方仓库、个人仓库、微软的镜像仓库

镜像:镜像就是没启动的容器(类似编程中的类、类似vmware中的iso文件) 每个仓库中可以有很多个镜像

image 相关命令

  • 搜索特定镜像

    docker search apline
    ===============================================
    beginner@beginner-virtual-machine:~$ docker search alpine
    NAME DESCRIPTION STARS OFFICIAL AUTOMATED
    alpine A minimal Docker image based on Alpine Linux… 8311 [OK]
    mhart/alpine-node Minimal Node.js built on Alpine Linux 486
    anapsix/alpine-java Oracle Java 8 (and 7) with GLIBC 2.28 over A… 478 [OK]
    frolvlad/alpine-glibc Alpine Docker image with glibc (~12MB) 275 [OK]
    alpine/git A simple git container running in alpine li… 194 [OK]
    gliderlabs/alpine Image based on Alpine Linux will help you wi… 185
    ============================================
    STARTS 星级越高镜像一般会越好
    OFFICIAL 是否为官方 只显示官方镜像
    docker search xxxx --filter "is-official=true"
    显示官方镜像并返回50行结果 最多返回100行
    docker search xxxx --filter "is-official=true" --limit 50
  • 拉取镜像

    docker pull ubuntu:latest  # 从docker镜像服务中拉取镜像(也可以改成阿里云等其他国内的) ubuntu(没有前缀说明是官方仓库):latest(标签表示最新的 但是不一定是真正最新的)
    docker image ls # 查看本地镜像
    ================================================
    beginner@beginner-virtual-machine:~$ docker image ls
    REPOSITORY TAG IMAGE ID CREATED SIZE
    python3.8_zyh 3.0 21451ed8e840 16 hours ago 812MB
    python3.8_zyh latest c8ee23b16690 17 hours ago 422MB
    python3.8_zyh 1.0 a7abd70e6690 25 hours ago 180MB
    redis 6.2.6 7614ae9453d1 2 weeks ago 113MB
    python 3.8-slim-buster 5cc8cb0c433a 2 weeks ago 114MB
    ubuntu latest ba6acccedd29 2 months ago 72.8MB
    redis latest 7faaec683238 2 months ago 113MB
    elasticsearch 7.7.0 7ec4f35ab452 20 months ago 757MB
    mobz/elasticsearch-head 5 b19a5c98e43b 5 years ago 824MB
    ================================================
  • 字段解释

    • REPOSITORY:TAG 就是unbuntu:latest 之后可以通过这个组合进行容器的启动
    • IMAGE ID 每个镜像独有的id 也可以通过id进行容器的启动 例如docker run -it ba6 id不用拼完只需要前几位是独有的即可
    • CREATED 创建时间
    • SIZE 镜像大小
  • 删除镜像

    docker image rm 镜像id or(镜像名:标签)# 如果报错可能是因为容器正在使用中 就算容器已停止但是没删除 也会无法让你删除镜像
    ================================================
    beginner@beginner-virtual-machine:~$ docker image rm ubuntu:latest
    Error response from daemon: conflict: unable to remove repository reference "ubuntu:latest" (must force) - container 2480cdd3277d is using its referenced image ba6acccedd29
    ================================================ # 所以必须先删除容器才能删除镜像
    docker container stop 2480cdd3277d
    docker container rm 2480cdd3277d
    # 接下来就可以删除镜像了
  • 镜像详细信息

    docker image inspect ubuntu:latest
    ===============================================
    beginner@beginner-virtual-machine:~$ docker image inspect ubuntu:latest
    [
    {
    "Id": "sha256:ba6acccedd2923aee4c2acc6a23780b14ed4b8a5fa4e14e252a23b846df9b6c1",
    "RepoTags": [
    "ubuntu:latest"
    ],
    "RepoDigests": [
    "ubuntu@sha256:626ffe58f6e7566e00254b638eb7e0f3b11d4da9675088f4781a50ae288f3322"
    ],
    "Parent": "",
    "Comment": "",
    "Created": "2021-10-16T00:37:47.578710012Z",
    "Container": "249e88be79ad9986a479c71c15a056946ae26b0c54c1f634f115be6d5f9ba1c8",
    "ContainerConfig": {
    "Hostname": "249e88be79ad",
    "Domainname": "",
    "User": "",
    "AttachStdin": false,
    "AttachStdout": false,
    "AttachStderr": false,
    "Tty": false,
    "OpenStdin": false,
    "StdinOnce": false,
    "Env": [
    "PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin"
    ],
    "Cmd": [
    "/bin/sh",
    "-c",
    "#(nop) ",
    "CMD [\"bash\"]"
    ],
    "Image": "sha256:6c18a628d47eacf574eb93da2324293a0e6c845084cca2ea13efaa3cee4d0799",
    "Volumes": null,
    "WorkingDir": "",
    "Entrypoint": null,
    ..........
    ===============================================
    以上是image的详细信息创建时间 运行的容器 还有 image会有多少层数(之后会有一篇随笔专门讲解现在只做了解 docker镜像是分层的)

容器相关命令

  • 运行容器

    docker run -it ubuntu:latest  # -it是返回一个终端交互窗口  -d是后台运行
    docker run -it id
    # ctrl+P+Q 同时按可以从容器终端返回主机终端 如果直接exit 容器也会推出
    docker run -it -name hello -p 6379:6379 -v 挂载卷 容器id
    # -name是给容器起一个名字 容器名叫hello -p是映射端口 主机的端口号:docker容器的端口号
    # -v是挂载卷 可以方便修改配置文件以及可持久化存储 之后再详细写出
  • 查看容器

    docker ps 与 docker container ls # 效果相同都可以列出正在运行的容器 个人倾向使用后者
    docker container ls -a # 列出所有容器包括已暂停的
    docker container ls -aq # 列出所有容器的id
    ===============================================
    beginner@beginner-virtual-machine:~$ docker container ls -aq
    2480cdd3277d
    beginner@beginner-virtual-machine:~$ docker container ls -a
    CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
    2480cdd3277d ubuntu:latest "bash" 2 hours ago Exited (1) 58 minutes ago boring_dirac ===============================================
  • 连接容器

    docker  exec -it 容器id bash  # 连接容器时新开一个终端进程
    docker exec -it boring_dirac bash # 用容器名称连接 这里连不上的因为容器停止了 只是举个例子
    docker attach #attach到一个已经运行的容器的stdin,然后进行命令执行的动作。但是需要注意的是,如果从这个stdin中exit,会导致容器的停止
  • 将容器打包成镜像

    docker commit (容器id or name)   test:latest    #将当前容器打包成一个叫test 标签为latest的镜像
  • 停止容器

    docker container stop 容器id or 容器名 #停止容器
    docker container start 容器id or 容器名 #启动容器 当你停止之前给容器创建了一些文件,你停止之后再次启动 文件是不会消失的
  • 删除容器

    docker container stop 容器id or 容器名
    docker container rm 容器id or 容器名 #注意应该先停止后移除 虽然可以直接rm 但是给docker一些反应时间总归是好的 下面两条命令是删除全部容器
    docker container stop $(container ls -aq)
    docker container rm $(container ls -aq)
  • 容器生命周期

    容器内有进程容器就不会停止,如果没有进程容器就会终止
    docker run -it ubuntu:latest 此时容器内有一个bash进程 如果exit 容器终止
    docker ctrl +q+p 切换回主机终端 容器bash进程在后台运行
    docker exec -it 容器id bash 现在容器内有两个进程 都是bash 如果当前使用exit 容器不会终止因为还有一个bash进程 如果是docker attach 还是连接原来的那个进程 注意退出的时候要ctrl+p+q 因为只有一个进程 如果直接exit 容器也会停止
  • 容器重启策略

    重启策略包括 always、unless-stopped、on-field三种

    doceker container run --restart always sleep 10

    • always

      除非明确stop  否则一直存在
      当在bash中exit后容器停止 但因为是always 容器马上后台重启
      当docker重启时 即使之前stop过 容器也会启动
    • unless-stopped

      与always最大的区别是当docker重启时 之前stop过的容器不会启动
    • on-field

      容器异常退出时(返回值不是0) 重启容器
      在docker重启时容器也会重启

docker入门_image、container相关命令的更多相关文章

  1. Docker容器化【Docker镜像与容器相关命令】

    # Docker 学习目标: 掌握Docker基础知识,能够理解Docker镜像与容器的概念 完成Docker安装与启动 掌握Docker镜像与容器相关命令 掌握Tomcat Nginx 等软件的常用 ...

  2. docker入门1-docker container

    image和container介绍 一个image是一个可被docker执行的包,它包括程序运行的所有东西,包括代码,运行时,库,环境变量和配置文件. 一个container是image在内存中的运行 ...

  3. docker入门资料及常用命令

      Docker17中文开发手册 :https://www.php.cn/manual/view/36147.html   Linux部署Docker及常用命令: https://www.cnblog ...

  4. Docker入门03——Container

    1 启动容器 1.1 新建并启动 1.2 启动已终止容器 2 后台运行 3 终止 4 进入容器 5 导入和导出 5.1 导出 5.2 导入 6 删除 1 启动容器 1.1 新建并启动 docker r ...

  5. Docker入门系列4:命令行小结

    百度Baidu App Engine(BAE)平台也是以Docker作为其PaaS云基础. 目的就是为了解决以下问题: 1) 环境管理复杂: 从各种OS到各种中间件再到各种App,一款产品能够成功发布 ...

  6. Docker入门之container篇

    启动 启动容器有两种方式,一种是基于镜像新建一个容器并启动,另外一个是将在终止状态(stopped)的容 器重新启动. 因为 Docker 的容器实在太轻量级了,很多时候用户都是随时删除和新创建容器. ...

  7. 『现学现忘』Docker基础 — 30、Docker中数据卷相关命令

    目录 1.Volume命令说明 2.Volume命令的使用 (1)创建数据卷 (2)查看本地数据卷列表 (3)打印myVolume数据卷的详细信息 (4)删除数据卷 (5)删除所有未使用的数据卷 3. ...

  8. docker学习笔记-容器相关命令

    新建并启动容器 docker pull centos (先下载镜像,如果没有直接使用docker run 命令会根据本地情况进行下载) # docker run [可选参数] image # 参数说明 ...

  9. docker入门3-docker swarm

    swarm介绍 想要将应用部署在一个集群并运行在多台机器上? 通过将多台机器链接到"Dockerized"集群以实现应用程序运行在多容器,多机器的技术被称为swarm. 一个swa ...

随机推荐

  1. JavaScript01 js基础语法,数据类型

    JavaScript的概述: 1.组成 三部分组成 ecmaScript 基础语法 (es5) dom document object model 文档对象模型 (操作html文档内容) bom bo ...

  2. 为什么JVM要用到压缩指针?Java对象要求8字节的整数倍?

    前言 前两天在一个帖子中看到一道面试题: 堆内存超过32G时,为什么压缩指针失效? 之前没有了解过这方面的知识,于是开始google起来,但当我翻看了不下一页的帖子,我都仍然没有搞懂,因为好多答案给我 ...

  3. 用腾讯云Gogs搭建私有git服务器

    前言 经常有需要写不能公开代码的项目,所以只好自己搭建一个私人的git服务器 Gogs的好处在于比Gitlib轻量化了好多,而且是国人写的,官方主页也是中文的 Gogs首页 腾讯云服务器配置: Ubu ...

  4. SpringBoot的 Actuator 是做什么的?

    本质上,Actuator 通过启用 production-ready 功能使得 SpringBoot 应用程序变得更有生命力.这些功能允许我们对生产环境中的应用程序进行监视和管理. 集成 Spring ...

  5. 在 Java 中,如何跳出当前的多重嵌套循环?

    在最外层循环前加一个标记如 A,然后用 break A;可以跳出多重循环.(Java 中 支持带标签的 break 和 continue 语句,作用有点类似于 C 和 C++中的 goto 语 句,但 ...

  6. ACM - 图论 - P3385 负环

    P3385 负环 题目描述 给定一个 \(n\) 个点的有向图,请求出图中是否存在从顶点 \(1\) 出发能到达的负环. 负环的定义是:一条边权之和为负数的回路. 输入格式 本题单测试点有多组测试数据 ...

  7. 遇到的错误之“Cannot find module 'XXX’的错误”

    一.问题: 在进行webpack打包的时候,会出现Cannot find module 'XXX'的错误,找不到某个模块的错误 二.解决方法: (1)方法1: 直接进行npm install重新打包: ...

  8. 解决SVG animation 在IE中不起作用

    问题描述 CSS animation没办法解决SVG路径运动的问题,下图路径运动的过程,通过查资料发现所有的IE的版本都不支持SVG animation.在IE中没有水流动的效果. 主要代码 < ...

  9. Linux 0.11源码阅读笔记-中断过程

    Linux 0.11源码阅读笔记-中断过程 是什么中断 中断发生时,计算机会停止当前运行的程序,转而执行中断处理程序,然后再返回原被中断的程序继续运行.中断包括硬件中断和软件中断,硬中断是由外设自动产 ...

  10. python-班级人员信息统计

    输入a,b班的名单,并进行如下统计. 输入格式: 第1行::a班名单,一串字符串,每个字符代表一个学生,无空格,可能有重复字符.第2行::b班名单,一串字符串,每个学生名称以1个或多个空格分隔,可能有 ...