Docker的常用命令

2023-05-16

文章目录

目录

文章目录

前言

一、帮助命令

二、镜像命令

1.查看镜像

2.搜索镜像 

3.下载镜像 

4.删除镜像 

三、容器命令 

 1.启动容器

2.查看容器 

3.退出容器 

4.删除容器 

5.启动和停止容器 

四、常用的其它命令 

后台运行

查看日志 

查看容器中进程的信息

 查看镜像的元数据

进入当前正在运行的容器 

容器拷贝文件到主机 

总结



前言


一、帮助命令

systemctl start docker 启动服务

docker version        # 显示docker的版本信息
docker info              # 显示docker的系统信息,包括镜像和容器的数量
docker 命令 --help         # 帮助命令

帮助文档的地址:Reference documentation | Docker Documentation

二、镜像命令

1.查看镜像

查看所有本地的主机上的镜像

docker images

# 解释
REPOSITORY    镜像的仓库源
TAG            镜像的标签
IMAGE ID    镜像的id
CREATED        镜像的创建时间
SIZE        镜像的大小
# 命令参数可选项
 -a, --all         # 显示所有镜像 (docker images -a)
 -q, --quiet       # 仅显示镜像id (docker images -q)

 

2.搜索镜像 

# 解释
# 命令参数可选项 (通过搜索来过滤)
--filter=STARS=3000     # 搜索出来的镜像就是stars大于3000的
 docker search mysql --filter=STARS=3000 

 

3.下载镜像 

下载镜像:docker pull 镜像名[:tag]
# 两个命令是等价的
docker pull mysql
docker pull docker.io/library/mysql:latest
# 指定版本下载
docker pull mysql:5.7

4.删除镜像 

docker rmi -f 镜像id                    # 删除指定的镜像
 docker rmi -f 镜像id 镜像id 镜像id    # 删除多个镜像(空格分隔)
 docker rmi -f $(docker images -aq)    # 删除全部的镜像

三、容器命令 

下载一个centos 镜像来测试学习。

docker pull centos

 1.启动容器

docker run [可选参数] image
# 参数说明
--name="name"        容器名字:用来区分容器
-d                    后台方式运行:相当于nohup
-it                    使用交互式运行:进入容器查看内容
-p                    指定容器的端口(四种方式)小写字母p
    -p ip:主机端口:容器端口
    -p 主机端口:容器端口
    -p 容器端口
    容器端口
-P                     随机指定端口(大写字母P)
# 测试:启动并进入容器
docker run -it centos /bin/bash
 ls        # 查看容器内的centos(基础版本,很多命令都是不完善的)
bin  dev  etc  home  lib  lib64  lost+found  media  mnt  opt  proc  root  run  sbin  srv  sys  tmp  usr  var
# 从容器中退回到主机
 exit 

2.查看容器 

docker ps    # 列出当前正在运行的容器
# 命令参数可选项
-a        # 列出当前正在运行的容器+历史运行过的容器
-n=?    # 显示最近创建的容器(可以指定显示几条,比如-n=1)
-q        # 只显示容器的编号
 

 

3.退出容器 

exit        # 容器直接停止,并退出
ctrl+P+Q    # 容器不停止,退出
 

4.删除容器 

docker rm 容器id                    # 删除容器(不能删除正在运行的容器)如果要强制删除:docker rm -f 容器id
docker rm -f $(docker ps -aq)        # 删除全部容器
docker ps -a -q|xargs docker rm        # 删除所有容器

5.启动和停止容器 

docker start 容器id        # 启动容器
docker restart 容器id    # 重启容器
docker stop 容器id        # 停止当前正在运行的容器
docker kill 容器id        # 强制停止当前容器

四、常用的其它命令 

后台运行

# 命令docker run -d 镜像名
 docker run -d centos
# 问题:docker ps发现centos停止了
# 常见的坑:docker容器使用后台运行,就必须要有要一个前台进程,docker发现没有应用,就会自动停止。
# 比如:nginx,容器启动后,发现自己没有提供服务,就会立刻停止,就是没有程序了

建议使用交互模式的启动命令

docker run -it centos /bin/bash

然后ctrl+P+Q    # 容器不停止,退出

查看日志 

docker logs -tf --tail 容器id
# 自己编写一段shell脚本
docker run -d centos /bin/sh -c "while true;do echo kuangshen;sleep 1;done"
docker logs -tf  容器id
 docker logs -tf --tail 10  容器id
# 显示日志
-tf                        # 显示日志
--tail number    # 要显示的日志条数
 

查看容器中进程的信息

 # 命令 docker top 容器id 
[root@192 ~]# docker top 88d23bcbe1f2
UID                 PID                 PPID                C                   STIME               TTY                 TIME                CMD
root                21212               21193               0                   16:23               ?                   00:00:00            
root                21600               21212               0                   16:29               ?                   00:00:00

 查看镜像的元数据

# 命令

docker inspect 容器id

进入当前正在运行的容器 

# 命令
docker exec -it 容器id /bin/bash
# 我们通常容器都是使用后台方式运行的,需要进入容器,修改一些配置
# 命令
docker exec -it 容器id /bin/bash
# 测试
[root@ ~]# docker ps
CONTAINER ID   IMAGE     COMMAND                  CREATED          STATUS          PORTS     NAMES
88d23bcbe1f2   centos    "/bin/sh -c 'while t…"   13 minutes ago   Up 13 minutes             silly_lichterman
[root@iZbp13qr3mm4ucsjumrlgqZ ~]# docker exec -it 88d23bcbe1f2 /bin/bash
[root@88d23bcbe1f2 /]# ps -ef
UID        PID  PPID  C STIME TTY          TIME CMD
root         1     0  0 08:23 ?        00:00:00 /bin/sh -c while true;do echo kuangshen;sleep 1;done
root       841     0  0 08:37 pts/0    00:00:00 /bin/bash
root       858     1  0 08:37 ?        00:00:00 /usr/bin/coreutils --coreutils-prog-shebang=sleep /usr/bin/sleep 1
root       859   841  0 08:37 pts/0    00:00:00 ps -ef
# 方式二
docker attach 容器id
# 测试
[root@ ~]# docker attach 88d23bcbe1f2
正在执行当前的代码...
# docker exec        # 进入容器后开启一个新的终端,可以再里面操作(常用)
# docker attach        # 进入容器正在执行的终端,不会启动新的进程。

容器拷贝文件到主机 

docker cp 容器id:容器内路径 目的主机的路径
[root@192 home]# ll
total 0
[root@192 home]# docker ps
CONTAINER ID   IMAGE     COMMAND   CREATED   STATUS    PORTS     NAMES
[root@192 home]# docker run -it centos /bin/bash
[root@6eda31ad7987 /]# [root@iZbp13qr3mm4ucsjumrlgqZ home]# docker ps
CONTAINER ID   IMAGE     COMMAND       CREATED          STATUS          PORTS     NAMES
6eda31ad7987   centos    "/bin/bash"   17 seconds ago   Up 16 seconds             stoic_kepler
# 进入到容器内部
[root@192 home]# docker attach 6eda31ad7987
[root@6eda31ad7987 /]# ls
bin  dev  etc  home  lib  lib64  lost+found  media  mnt  opt  proc  root  run  sbin  srv  sys  tmp  usr  var
[root@6eda31ad7987 /]# cd /home/
[root@6eda31ad7987 home]# ls
# 在容器的/home路径下创建test.java文件
[root@6eda31ad7987 home]# touch test.java
[root@6eda31ad7987 home]# ls
test.java
[root@6eda31ad7987 home]# exit
exit
[root@192 home]# docker ps
CONTAINER ID   IMAGE     COMMAND   CREATED   STATUS    PORTS     NAMES
[root@192 home]# docker ps -a
CONTAINER ID   IMAGE     COMMAND       CREATED              STATUS                      PORTS     NAMES
6eda31ad7987   centos    "/bin/bash"   About a minute ago   Exited (0) 28 seconds ago             stoic_kepler
# 将文件拷贝出来到主机上(在主机上执行该命令)
[root@192 home]# docker cp 6eda31ad7987:/home/test.java /home
[root@192 home]# ls
test.java
# 拷贝是一个手动过程,未来我们使用 -v 卷的技术,可以实现,自动同步(容器内的/home路径和主机上的/home路径打通)


总结

待补充

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Docker的常用命令 的相关文章

  • 最新树莓派系统PUTTY用默认用户名和密码登录不上的解决方法

    最近我在树莓派配置深度学习环境 xff0c 然后直接载了别的博主的树莓派镜像 xff0c 发现博主给的用户名 xff0c 密码登不上 xff0c 于是乎 xff0c 就打算自己配置深度学习环境 xff0c 结果我下在了最新版本的树莓派镜像系
  • 关于嵌入式软件工程师的面试题(一)

    ARM是什么 xff1f ARM的分类 xff1f 1 1 是一家公司的名字 gt 专门生产IP核 xff08 内核 CPU xff09 gt 依靠专利授权盈利 1 2 是一系列ARM内核的芯片的代称 ARM7 xff0c ARM9 xff
  • 对比应用层和内核层区别

    1 应用层和内核层是计算机系统中的两个不同的层次 应用层是用户直接与计算机系统交互的层次 xff0c 它包括各种APP和libc xff08 Linux下的ANSI C的函数库 xff09 内核层是计算机系统的核心 xff0c 它提供了各种
  • uc/OS-III移植到stm32f103c8进行多任务实验

    文章目录 一 UCOSIII介绍1 简介2 UCOSIII中的任务 二 将uc OS III移植到stm32f103c81 创建CubeMx工程2 进行uCOS III的移植 三 构建三个任务1 代码添加 四 结果展示五 总结五 参考链接
  • Invalid bound statement (not found)出现原因和解决方法

    Invalid bound statement not found 出现原因和解决方法 出现的原因 xff1a mapper接口和mapper xml文件没有映射起来 解决方法 xff1a 1 mapper xml中的namespace和实
  • 服务器磁盘满了会导致ssl无法正常访问,进而导致网站样式错乱

    服务器磁盘满了会导致ssl无法正常访问 xff0c 进而导致网站样式错乱
  • 基于OpenMV和正点原子开发的自动追球小车(带云台舵机)

    电赛备赛前 xff0c 通过OpenMV加舵机云平台由 xff0c 做了一个追着球跑的小车 xff0c 由于疫情 xff0c 以前录制的视频也删除了 xff0c 最终呈现的效果和B站一位Up主的相似 xff0c 大家可以参考参考 xff0c
  • C语言For循环

    循环结构 xff1a 又称为重复结构 xff0c 在程序中处理问题需要重复处理 for循环语句 xff1a 使用灵活 可用于循环次数已确定或不确定循环次数的情况 for循环的一般结构 xff1a for xff08 表达式1 xff1b 表
  • Jetson tx2 安装jetpack_3.3手动安装cuda9.0,cudnn7.1

    1 刷机前的准备 xff08 写在前面的话 xff09 装有Ubuntu16 04或者Ubuntu18 04的电脑 xff0c 这里说的电脑可以是台式机也可以是笔记本与TX2区分开来 xff08 电脑是16 04或者18 04无所谓 xff
  • 【PX4无人机仿真】构建自己的ROS节点

    本篇文章主要是一个创建自己的ros节点的学习记录 xff0c 在学会创建简单的节点后 xff0c 参考一篇关于目标跟踪工作的博客进行了实践 xff0c 使用自己写的移动小球世界进行小球的跟踪 Demo参考 xff1a 无人机跟踪小车 文章目
  • 用U盘给nuc安装Ubuntu系统

    1 在Windows下载对应Linux的软件 xff08 一般为UNetbootin xff09 2 网上下载所需Ubuntu版本的iso文件 3 准备一个内存大于4g的U盘 4 双击运行第一步下载的软件 5 更改光盘镜像 xff0c 选择
  • keil5下载安装教程(附带兼容keil4方法)

    为了方便stm32和C51学习 xff0c 我收集资料整理了keil5的安装教程 xff0c 同时附带兼容keil4程序的方法 xff0c 避免大家在使用C51的时候再去安装keil4这个麻烦的过程 目录 一 可兼容keil4的keil5版
  • 第十三届蓝桥杯单片机设计与开发

    程序设计 客观题 感想 xff1a 这届单片机还是挺简单的 xff0c 和前几届的赛题有点像 xff0c 哦 xff0c 对 xff0c 就是第12届和第10届来着 大概2个半小时差不多全做完了 xff1b 当然客观题 xff0c 有几道不
  • PX4串口添加传感器—在QGC上添加串口数据显示

    前言 因为项目要求 xff0c xff08 在PX4上添加拉力传感器 xff0c 并把数据显示在QGC的地图上 xff09 xff0c 本人开始了苦皮的生活 从未接触飞控的我 xff0c 一来就是开发 烧脑掉发啊 但人生是无所畏惧的 在学习
  • STM32CubeMX——固件库下载以及安装

    前言 为了方便自己 xff0c 于是方便了大家 一 获取stm32Cube包 1 打开下面的链接 ST官网链接 2 下载stm32标准外设库 我要用STMCubeG413rbt6 xff0c 所以我选择STM32CubeG4系列 点击 点击
  • PX4串口添加传感器—QGC添加自定义mavlik消息

    简介 功能 xff1a 假设我想要飞控传输一个我定义的消息给地面站 xff0c 其地面站必须有一个接收处理的过程以及飞控处理发送的过程 我们传输的方式是mavlink通信方式 想要实现上面的功能 xff0c PX4和QGC就必须要有 1 修
  • 服务器扩容步骤

    第一步 xff1a 云服务器 ECS 云盘 扩容 勾选在线扩容 xff0c 提交订单 xff1b 第二步 xff1a 以此执行以下代码 xff1a 1 运行fdisk l命令查看现有云盘大小 root 64 ecshost fdisk l
  • PX4串口添加传感器—PX4添加自定义mavlik消息

    目录 1 建立 xml并生成mavlink自定义消息文件 1 1 打开终端克隆MAVLINK生成器 1 2 进入克隆目录 执行以下命令 1 3 随手建立储存文件夹 1 4 创建read uart sensor xml文件 1 5 打开MAV
  • 丢失ucrtbased.dll,缺啥补啥

    简介 xff1a 当我打包QGC的debug版本给别人 结果别人编译不了 xff0c 内容显示缺少ucrtbased dll文件 发现一个不错的网站 xff0c 缺少其他文件 xff0c 一样的方法 解决办法 xff1a 打开链接 xff1
  • 打开QGC软件主页没有显示,弹窗白板问题

    目录 问题描述 解决办法 问题描述 正常情况下 xff0c QGC打开是直接就弹出显示页面 但当我打开编译过的debug版本QGC xff0c 会出现一个大约1秒的弹窗 xff0c 之后QGC没有显示 我在旁边的任务栏中查看 xff0c 发

随机推荐

  • Ubuntu/Linux文件权限修改

    Ubuntu Linux文件权限 文件权限是指不同的用户或用户组对某个文件拥有的权限 xff0c 文件的权限分为三种 xff1a r xff1a 读 w xff1a 写 x xff1a 可执行 文件描述形式如下 xff1a rw rw r
  • RTOS必备基础

    RTOS必备基础 一 ARM基础知识1 ARM架构2 重要寄存器3 汇编指令详解读 xff1a load写 store加 ADD减 SUB出栈 push出栈 xff1a pop 4 栈和堆 xff1a 1 栈2 堆 5 局部变量和全局变量的
  • STM32必备知识点(面试和工作用的到)

    STM32必备知识点 xff08 面试和工作用的到 xff09 文章目录 STM32必备知识点 xff08 面试和工作用的到 xff09 前言嵌入式C基础一 位操作1 不改变其他位的值的状况下 xff0c 对某几个位进行设值2 移位操作提高
  • 嵌入式C语言必备知识(面试和工作都用得到)

    嵌入式C语言必备知识 xff08 面试和工作都用得到 xff09 一 基础部分1 数组与链表的区别 xff1f 2 C语言程序代码优化方法3 堆和栈的的区别 xff1f 4 内联函数的优缺点和适用场景是什么 xff1f 4 下面代码输出是什
  • SBUS协议介绍和标准例程

    SBUS信号例程详解 1 SBUS信号简介1 硬件标准2 软件标准1 串口配置 xff1a 2 协议格式 xff1a 3 数据范围4 间隔问题 2 STM32F4 Sbus xff08 DMA 43 串口 xff09 xff08 1 xff
  • RT-Thread静态线程和动态线程的区别

    RT Thread 内核采用面向对象的设计思想进行设计 xff0c 系统级的基础设施都是一种内核对象 xff0c 例如线程 xff0c 信号量 xff0c 互斥量 xff0c 定时器等 内核对象分为两类 xff1a 静态内核对象和动态内核对
  • UART协议入门

    UART 硬件连接关键词 xff1a 1 UART为串行异步协议2 TTL RS232 RS485是一种逻辑电平表示方式 3 帧格式 xff1a 1位空闲位 xff0c 5 9位的数据位 xff0c 1位校验位 xff0c 1 2位的停止位
  • git操作手册

    初始化一个Git仓库 xff0c 使用git init命令 添加文件到Git仓库 xff0c 分两步 xff1a 使用命令git add lt file gt xff0c 注意 xff0c 可反复多次使用 xff0c 添加多个文件 xff1
  • STM32 开发常见问题汇总

    STM32 开发常见问题汇总 一 xff0c STM32 Usart 串口异常四个错误检测标志 xff1a 十个具有标志位的中断源 xff1a 1 Usart中断事件2 Usart状态寄存器3 Usart问题解决3 1 什么是ORE中断 x
  • Gitee克隆别人的仓库的操作步骤

    1 指定克隆仓库路径 以及克隆到本地项目自定义名称 可以克隆提交者配置的url映射 但是不能克隆提交者的账号 git config git clone https gitee com lisi giteedemo giteedemo 2 配
  • c++八数码难题全家桶(A*算法、双向BFS、BFS、DFS)

    文章目录 系列文章目录前言 目录 系列文章目录 文章目录 前言 一 八数码难题是什么 xff1f 二 算法详解 1 首先利用逆序数来判断是否有解 xff08 奇偶性相同即可达 xff09 2 A 算法 3 双向BFS 4 BFS 5 DFS
  • Horspool (String Matching)

    Description of Horspool Assumation text string the string where we want to locate the pattern string n the length of the
  • C语言课程设计学生成绩管理系统二(含完整代码)

    亲给个打赏吧 1 系统功能 xff08 1 xff09 通过菜单的形式实现人机交互界面 xff08 2 xff09 实现录入学生基本信息和成绩功能 xff08 3 xff09 实现删除指定学生的基本信息和成绩功能 xff08 4 xff09
  • UNIX环境高级编程笔记

    UNIX环境编程 一 UNIX基础知识1 1 Linux 主要特性1 2 Linux 内核1 3 Linux 目录结构1 4 登录1 登录名2 shell 1 5 输入和输出1 文件描述符2 标准输入 标准输出 标准错误3 不带缓冲的IO4
  • 使用TensorFlow Serving进行模型的部署和客户端推理

    目的 xff1a 在一个server端使用TensorFlow框架对模型进行训练和保存模型文件后用TensorFlow Serving进行部署 xff0c 使得能在客户端上传输入数据后得到server端返回的结果 xff0c 实现远程调用的
  • spring boot自动打开浏览器和配置打开首页

    目录 前言 一 配置自动打开浏览器 在启动器同级目录下创建config文件夹来放启动配置类 下面是application properties的配置 二 配置默认首页 总结 前言 如何配置自动打开浏览器 和默认页面设置 一 配置自动打开浏览
  • 使用内网穿透工具natapp

    一 使用准备 1 进入他的官网注册一个账号 NATAPP 内网穿透 基于ngrok的国内高速内网映射工具 注意 这个账号还必须要提交实名认证 2 然后登陆进去 选择 购买隧道 gt 免费隧道 然后最重要的是配置一下免费隧道的协议 选择web
  • 在linux下安装docker

    文章目录 目录 文章目录 前言 一 docker 二 使用步骤 1 环境准备 2 安装 三 配置阿里云镜像加速 四 卸载 总结 前言 一 docker 镜像 xff08 image xff09 xff1a docker镜像就好比是一个模板
  • git分支管理开发

    1 master从来都只是最终合并的分支 xff1b 2 所有的其他分支都从master衍生 xff1b 3 在master分支直接修改 xff0c 有可能会造成所有分支的冲突 4 都是从master建立新分支 xff0c 修改测试通过后合
  • Docker的常用命令

    文章目录 目录 文章目录 前言 一 帮助命令 二 镜像命令 1 查看镜像 2 搜索镜像 3 下载镜像 4 删除镜像 三 容器命令 1 启动容器 2 查看容器 3 退出容器 4 删除容器 5 启动和停止容器 四 常用的其它命令 后台运行 查看