• Docker 的常用指令学习以及使用


    一、如何去学习命令

    我们应该如何去学习 docker 的命令,这是一个老生常谈的话题了,作为一个知识类博主,我想告诉各位的是学习的方法真的很重要,学习一个东西,不只是死记硬背,学习命令也一样,所以接下来这个命令是最重要的,没有之一,要学会如何去使用,以后会帮上你的忙。

    接下来的常用命令,大家都跟着去敲一边,很快你就会记住怎么用了~~

    第一个命令可能学过 linux 的各位也都知道,就是帮助命令。

    docker  命令 --help
    
    • 1

    linux 内有帮助命令,docker 同样也有,如果你有不懂得命令可以直接用这个去查,比如

    docker run --help
    
    • 1

    屏幕上就会显示 run 的参数一类的信息,当然,如果你想看更详细的,可以去 docker 官网查询你想查询的命令,这也是一种方法,各位在需要使用命令的时候建议先去查询一下看一看。

    二、镜像常用命令

    提到这个,就是我们熟悉的增删改查了哈哈哈,接下来我一一介绍

    2.1 查看本地所有镜像

    docker images     #查看本地所有镜像
    
    • 1

    我们直接在 shell 输入这个命令就可以查看本地有多少镜像了

    REPOSITORY:表示镜像的仓库源 TAG:镜像的标签 IMAGE ID:镜像 IDCREATED:镜像创建时间 SIZE:镜像大小

    常用的选项有

    -a #列出本地所有的镜像(含中间映像层,默认情况下,过滤掉中间映像层)
    -q #只显示镜像ID
    
    • 1
    • 2

    2.2 搜索镜像

    docker search 要搜索的镜像名字 #搜索镜像
    常用选项
    -f 基于给定条件过滤输出
    
    • 1
    • 2
    • 3

    用在搜索自己想下载的镜像 比如 docker search mysql

    选项使用示范 docker search -f=STARS=3000 mysql

    过滤收藏在 3000 及以上的镜像。

    2.3 下载镜像

    docker pull 镜像名字 #下载 默认最新
    docker pull 镜像名字[:TAG] #下载特定版本
    docker pull mysql:5.7 下载5.7版本的mysql。
    
    • 1
    • 2
    • 3

    2.4 删除镜像

    docker rmi 镜像id #可以通过id和名字删除 也可以删除多个镜像 空格隔开
    docker rmi -f $(docker images -aq) #全部删除 相当于rm-rf
    
    • 1
    • 2

    2.5 查看系统信息

    docker version   #显示版本信息
    docker info  		 #显示docker系统信息 包括容器镜像数量
    
    • 1
    • 2

    三、容器常用命令

    有了镜像才能创建容器,这里下载一个 centos

    docker pull centos
    
    • 1

    3.1 新建容器启动

    docker run [参数] image #创建 运行
    
    下面的选项一部分我们会在后面讲到,各位有个了解眼熟就好,现在了解-d i t就好
    
    常用选项
    -d: 后台运行容器,并返回容器ID
    
    -i: 以交互模式运行容器,通常与 -t 同时使用
    
    -P: 随机端口映射,容器内部端口随机映射到主机的端口
    
    -p: 指定端口映射,格式为:主机(宿主)端口:容器端口
    
    -t: 为容器重新分配一个伪输入终端,通常与 -i 同时使用
    
    --name="自定义名字": 为容器指定一个名称
    
    --dns 8.8.8.8: 指定容器使用的DNS服务器,默认和宿主一致
    
    -h "mars": 指定容器的hostname
    
    -e username="ritchie": 设置环境变量
    
    --net="bridge": 指定容器的网络连接类型,支持bridge/host/none/container四种类型
    
    --link=[]: 添加链接到另一个容器
    
    --expose=[]: 开放一个端口或一组端口
    
    --volume , -v: 绑定一个卷
    
    
    docker run -it centos /bin/bash 我们交互方式进入centos,使用bash作为shell。
    
    启动并进入容器 此时内部和外部没有半毛钱关系
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34
    • 35

    登录成功之后我们名字会变成这个镜像的 id

    3.2 查看运行的容器

    我们输入 exit 退出刚才进入的 centos。然后使用我们的指令

    docker ps #查看当前运行的容器
    
    常用选项
    -a 当前正在运行的容器+历史运行过的
    
    -n=? 显示最近创建的容器,比如最近的一个 docker ps -a -n=1
    
    -q 只显示id
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8

    第一个是正在运行的 第二个-a 是所有的 第三个是所有镜像的 id

    3.3 退出容器

    exit 直接退出结束
    
    Ctrl+p+q 让容器在后台运行,不停止并且退出
    
    • 1
    • 2
    • 3

    3.4 删除容器

    docker rm 容器id #正在运行的容器不可以删除 
    
    docker rm -f $(docker ps -aq) #全部容器删除
    
    • 1
    • 2
    • 3

    3.5 启动容器

    docker start 容器id
    
    • 1

    3.6 重启容器

    docker restart 容器id
    
    • 1

    3.8 停止容器

    docker stop 容器id
    
    • 1

    3.9 重启强制杀死容器

    docker kill 容器id
    
    • 1

    四、其他常用命令

    4.1 直接后台启动

    docker run -d 容器名或者id
    
    此时我们用 docker run -d centos之后然后ps查看一下,我们会发现centos停止了,docker是容器使用后台运行,如果是后台运行必须有前台进程,如果你没有运行前台进程那么docker发现没有应用就自动停止了
    
    • 1
    • 2
    • 3

    4.2 查看日志

    docker logs #查看日志
    
    常用选项
    -t 是加入时间戳
    -f 跟随最新的日志打印
    --tail 数字 显示最后多少条
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6

    4.3 查看容器进程信息

    docker top 容器id
    
    • 1

    4.4 查看镜像元数据

    docker inspect 容器id     #显示的信息有 主机配置 id 镜像从哪来 网络等信息
    
    • 1

    4.5 进入当前正在运行的容器

    docker exec -it 容器id # shell路径 exec是在容器中打开新的终端,并且启动新的进程
    docker attach 容器id # attach直接进入容器启动命令的终端,不会启动新的进程
    
    • 1
    • 2

    4.6 容器内拷贝文件到主机

    docker cp 容器id:容器内路径 主机路径
    
    • 1

    我们可以进入刚才的 centos home 目录里面创建一个文件,使用 touch 命令,然后 Ctrl+q+p 退出,再使用我们的 docker cp b1f0258395c2:/home/paopao.cpp /home 就可以把刚才在 centos home 目录里面创建的文件复制出来了

    五、命令汇总

  • 相关阅读:
    SpringBoot之Spring核心AOP详解
    【每日力扣】41. 缺失的第一个正数 238. 除自身以外数组的乘积 189. 轮转数组
    .NetCore+Vue2.0前后端分离的个人博客项目
    STM32重要参考资料
    Vue前端打印print设置自定义参数
    【Rust 日报】2022-08-21 surrealdb端到端云原生数据库
    在前端开发领域,如何将AI技术应用于产品开发中?
    数字化转型中的“数字化”
    关于在Java中反转数组的4种详细方法
    C++之模板——初阶
  • 原文地址:https://blog.csdn.net/m0_70748381/article/details/126865513