• Docker(3)常用命令


    帮助启动类

    • 启动: systemctl start docker
    • 停止: systemctl stop docker
    • 重启: systemctl restart docker
    • 查看状态: systemctl status docker
    • 开启启动: systemctl enable docker
    • 查看概要信息: systemctl info
    • 查看docker帮助文档: systemctl --help
    • 查看某个命令帮助文档: systemctl 具体命令 --help

    镜像命令

    docker images

    • 查看本地所有镜像
      • 返回值说明
        • REPOSITORY : 镜像的仓库源
        • TAG : 镜像的标签版本号
        • IMAGE ID : 镜像 ID
        • CREATED : 镜像创建时间
        • SIZE : 镜像大小
      • 常用参数
        • -a 返回所有镜像
        • -q 只显示镜像id

    docker search 镜像名字

    • 查询某个镜像
      • 返回值说明
        • NAME : 镜像名称
        • DESCRIPTION : 镜像说明
        • STARS : 点赞数量
        • OFFICIAL : 是否官方
        • AUTOMATED : 是否自动构建的
      • 常用参数
        • –limit 5 redis 查询redis镜像点赞前五

    docker pull 镜像名字:TAG

    • 下载某个镜像
      • 可以不写 TAG 默认为 :latest
        • docker pull redis:latest # 下载最新的redis
        • docker pull redis # 效果和上方命令相同

    docker rmi ID/REPOSITORY

    • 删除镜像

      • 常用参数
        • -f 强制删除
        • docker rmi -f ID 删除单个
        • docker rmi -f ID:TAG ID:TAG
        • docker rmi -f $(docker images -qa)
    • docker system df 镜像容器所占空间

    容器命令

    run

    docker run [OPTIONS] IMAGE [COMMAND] [ARG]

    • 新建 + 启动容器
      • OPTIONS参数说明
        • –name=“容器新名字” : 为容器指定一个名称
        • -d : 后台运行容器并返回容器ID
        • -i : 以交互模式运行容器,通常与 -t 同时使用 (interactive)
        • -t : 为容器重新分配一个伪输入终端,通常与 -i 同时使用 (tyy)
          • docker run -it --name=myu1 ubuntu bash
            • -i 交互式操作 -t 终端 bash --name 容器名字设为myu1 希望有个交互式的shell
        • -P : 随机端口映射,大写P
        • -p : 指定端口映射,小写p
          • -p 8080(宿主机端口):80(docker映射端口)

    ps

    docker ps [OPTIONS]

    • 查看docker容器状态
      • 参数说明
        • -a 列出当前所有正在运行的容器 + 历史上运行过的
        • -l 显示最近创建的容器
        • -n 显示最近n个创建的容器
          • docker ps -n 5 查看最近的5个容器
        • -q 只显示容器编号

    容器等基础操作

    退出

    • 进入后输入exit 退出后 容器停止
    • ctrl + p + q 容器不停止

    重启

    docker restart 容器ID或者容器名

    停止

    docker stop 容器ID或者容器名

    强制停止容器

    docker kill 容器ID或者容器名

    删除已经停止的容器

    docker rm 容器ID或者容器名

    docker rm -f 容器ID或者容器名 # 当容器未停止时强制删除 + -f

    一次性删除多个容器实例

    docker rm -f $(docker ps -aq) # 删除所有
    docker rm -f $(docker ps -aqn 2) # 删除前俩
    docker ps -aq | xargs docker rm # 将前半部分的结果集,放到xargs中进行删除操作
    
    • 1
    • 2
    • 3

    删除镜像的命令是 docker rmi ID

    rmi 中的i就是 images的意思

    重要命令

    run -d 时会出现的问题

    输入命令: docker run -d ubuntu 后将会返回容器运行流水id

    但输入 docker ps -a 发现容器已经结束

    这是docker的机制问题,比如web容器 nginx为例,正常情况下,我们配置启动服务只需要启动响应的service即可。例如service nginx
    start 但是,这样做nginx为后台进程模式运行,就导致docker前台没有运行的应用,这样的容器后台启动后,会立即自杀,他认为自己无事可做了。

    所以我们都使用 -it 的前端进程形式运行

    当使用redis等前台应用时 我们才会使用-d

    查看容器日志

    docker logs 容器ID或者容器名

    查看容器负载情况

    docker top 容器ID或者容器名

    查看容器内部细节

    docker inspect 容器ID或者容器名

    重新进入容器

    • exec

      • docker exec -it 容器ID或者容器名
      • exec是在容器中打开新的终端,并且可以启动新的进程用exit退出,不会导致容器的停止

    • attach

      • docker attach 容器id或者容器名
      • attach 直接进入容器启动命令的终端,不会启动新的进程用exit退出,会导致容器的停止

    • 推荐使用exec,因为退出容器终端,不会导致容器停止

    容器中内容复制到本机

    docker cp 容器id或者容器名:容器内路径 目的主机路径

    # 复制容器ubuntu 根目录下的a.txt 到本机根目录
    docker cp ubuntu:./a.txt ./
    
    • 1
    • 2

    导出导入容器

    # 导出
    docker export 容器id或者容器名 > xxx.tar
    
    # 导入
    cat xxx.tar | docker import -镜像用户/镜像名:镜像版本号
    
    • 1
    • 2
    • 3
    • 4
    • 5

    测试

    # 导出
    docker export ubuntu > ubuntu.tar
    # 导入
    cat ubuntu.tar | docker import - xxx/ubuntu:1.0.0
    
    • 1
    • 2
    • 3
    • 4

    redis小练习

    # 查看容器状态
    docker ps
    
    # redis 是我启动redis容器时起的名字 可以使用对应的容器ID
    docker exec -it redis bash
    
    # 连接redis
    redis-cli -p 6379
    
    # redis命令
    ping
    set k1 v1
    get k1
    
    # 退出redis连接
    exit
    
    # 退出容器
    exit
    
    # 查看容器状态 容器还在运行
    docker ps 
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
  • 相关阅读:
    一文者懂LLaMA 2(原理、模型、训练)
    路由懒加载
    基于事件驱动的任务分布式调度消费方案
    如何创建集成 LSP 支持多语言的 Web 代码编辑器
    MyBatis与Spring的集成
    Mybatis+Servlet+Mysql 整合的一个小项目:对初学者非常友好,有助于初学者很快的上手Java Web
    SMFL 教程&个人笔记
    Spring系列十:Spring MVC深度学习
    平面图形的面积
    app小程序手机端Python爬虫实战18-通过mitmproxy解析短视频App返回数据
  • 原文地址:https://blog.csdn.net/gtd54789/article/details/126991527