• Docker常用命令



    首先需要有一个已经安装了docker的系统,然后正式开启docker命令的学习
    在这里插入图片描述

    1、帮助命令:【基础信息查询】

    #查看当前docker的版本
    docker version
    #查看当前docker的基础配置信息
    docker info
    #查看docker中所有命令的作用,相当于命令手册
    docker help 
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6

    2、镜像命令

    查看本机镜像

    docker images
    
    • 1
    OPTIONS说明:
    -a :列出本地所有的镜像(含中间映像层)
    -q :只显示镜像ID。
    --digests :显示镜像的摘要信息
    --no-trunc :显示完整的镜像信息
    
    • 1
    • 2
    • 3
    • 4
    • 5

    查询信息说明:
    在这里插入图片描述

    各个选项说明:
    	REPOSITORY:表示镜像的仓库源
    	TAG:镜像的标签
    	IMAGE ID:镜像ID
    	CREATED:镜像创建时间
    	SIZE:镜像大小
     同一仓库源可以有多个 TAG,代表这个仓库源的不同个版本,我们使用 REPOSITORY:TAG 来定义不同的镜像。
    如果你不指定一个镜像的版本标签,例如你只使用 ubuntu,docker 将默认使用 ubuntu:latest 镜像
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8

    搜索镜像库中的镜像

    docker search 某个XXX镜像名字
    
    • 1
    docker search [OPTIONS] 镜像名字
    OPTIONS说明:
    --no-trunc : 显示完整的镜像描述
    -s : 列出收藏数不小于指定值的镜像。
    --automated : 只列出 automated build类型的镜像;
    
    • 1
    • 2
    • 3
    • 4
    • 5

    我们也可以使用浏览器去查找查看

    https://hub.docker.com
    
    • 1

    下载镜像到本机

    docker pull 某个XXX镜像名字
    
    • 1
    docker pull 镜像名字[:TAG]
    
    • 1

    删除本机中镜像

    删除单个

    docker rmi  -f 镜像ID
    
    • 1

    删除多个

    docker rmi -f 镜像名1:TAG 镜像名2:TAG 
    
    • 1

    删除全部

    docker rmi -f $(docker images -qa)
    
    • 1

    3、容器命令

    有镜像才能创建容器,这是根本前提(下载一个CentOS镜像演示)

    新建并启动容器

    docker run [OPTIONS] IMAGE [COMMAND] [ARG...]
    
    • 1
    OPTIONS说明(常用):有些是一个减号,有些是两个减号
     
    --name="容器新名字": 为容器指定一个名称;
    -d: 后台运行容器,并返回容器ID,也即启动守护式容器;
    -i:以交互模式运行容器,通常与 -t 同时使用;
    -t:为容器重新分配一个伪输入终端,通常与 -i 同时使用;
    -P: 随机端口映射;
    -p: 指定端口映射,有以下四种格式
          ip:hostPort:containerPort
          ip::containerPort
          hostPort:containerPort
          containerPort
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12

    启动交互式容器

    #使用镜像centos:latest以交互模式启动一个容器,在容器内执行/bin/bash命令。
    docker run -it centos /bin/bash
    
    • 1
    • 2

    在这里插入图片描述
    启动守护式容器

    docker run -d 容器名
    
    • 1

    注意

    #使用镜像centos:latest以后台模式启动一个容器
    docker run -d centos
     
    问题:然后docker ps -a 进行查看, 会发现容器已经退出
    很重要的要说明的一点: Docker容器后台运行,就必须有一个前台进程.
    容器运行的命令如果不是那些一直挂起的命令(比如运行top,tail),就是会自动退出的。
     
    这个是docker的机制问题,比如你的web容器,我们以nginx为例,正常情况下,我们配置启动服务只需要启动响应的service即可。例如
    service nginx start
    但是,这样做,nginx为后台进程模式运行,就导致docker前台没有运行的应用,这样的容器后台启动后,会立即自杀因为他觉得他没事可做了所以,
    最佳的解决方案是,将你要运行的程序以前台进程的形式运行
    docker run -d -i -t centos /bin/bash
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12

    例如:从Hub上下载tomcat镜像到本地并成功运行

    docker run -d -p 8080:8080 tomcat
    
    • 1

    在这里插入图片描述

    在这里插入图片描述

    列出当前所有正在运行的容器

    docker ps [OPTIONS]
    
    • 1
    OPTIONS说明(常用):
     
    -a :列出当前所有正在运行的容器+历史上运行过的
    -l :显示最近创建的容器。
    -n:显示最近n个创建的容器。   docker ps -n 3
    -q :静默模式,只显示容器编号。
    --no-trunc :不截断输出。
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7

    退出容器

    两种退出方式
    exit命令

    #容器停止退出
    exit
    
    • 1
    • 2

    快捷键Ctrl+P+Q

    容器不停止退出
    Ctrl+P+Q
    
    • 1
    • 2

    启动容器

    docker start 容器ID或者容器名
    
    • 1

    重启容器

    docker restart 容器ID或者容器名
    
    • 1

    停止容器

    docker stop 容器ID或者容器名
    
    • 1

    强制停止容器

    docker kill 容器ID或者容器名
    
    • 1

    删除已停止的容器

    删除单个

    docker rm 容器ID
    
    • 1

    一次性删除多个

    docker rm -f $(docker ps -a -q)
    #或
    docker ps -a -q | xargs docker rm
    
    • 1
    • 2
    • 3

    查看容器日志

    docker logs -f -t --tail 容器ID
    
    • 1
    *   -t 是加入时间戳
    *   -f 跟随最新的日志打印
    *   --tail 数字 显示最后多少条
    
    • 1
    • 2
    • 3

    案例:
    守护式启动一个centos容器,查看其日志

    docker run -d centos /bin/sh -c "while true;do echo hello adun;sleep 2;done"
    
    • 1

    在这里插入图片描述

    查看容器内运行的进程

    docker top 容器ID
    
    • 1

    进入正在运行的容器并以命令行交互

    docker exec -it 容器ID bashShell
    
    • 1

    在这里插入图片描述
    其他使用方式

    #其它:
    docker exec -it 容器ID ls -l /tmp
    
    • 1
    • 2

    注意:

    注意:使用java:8-alpine的java编译的java容器,进入命令:
    docker exec -it 容器ID /bin/sh
    
    • 1
    • 2

    重新进入

    docker attach 容器ID
    
    • 1

    exec 与attach的区别

    attach 直接进入容器启动命令的终端,不会启动新的进程
    
    • 1
    exec 是在容器中打开新的终端,并且可以启动新的进程
    
    • 1
  • 相关阅读:
    21.建造者模式
    在conda构造的虚拟环境中运行MNIST测试用例
    〔020〕Stable Diffusion 之 骨骼姿势 篇
    写一个死锁的例子、写一个单例模式(饿汉式和懒汉式)和双重校验锁
    位运算介绍、图解位运算相关题目【一个数字出现了K次,其他数字出现了M次,M > 1 K < M 找到出现了K次的数】【找到出现奇数次的数】等题目
    漫谈万维网的华丽史诗:Web3.0是技术金矿 还是郁金香泡沫?
    什么是分布式锁,解释分布式锁的实现方式和常见的分布式锁算法
    Java练习题2020-3
    二十三、Redis集群
    卷积神经网络 图像识别,卷积神经网络图像处理
  • 原文地址:https://blog.csdn.net/qq_41816702/article/details/126718628