Docker的常用命令

news2025/1/13 9:30:36

文章目录

目录

文章目录

前言

一、帮助命令

二、镜像命令

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路径打通)

 

 


总结

待补充

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/178951.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

lego-loam学习笔记(一)

前言: 主要记录配置编译lego-loam源码时遇到的问题和解决的方法。 系统:ubuntu18.04 一、安装gtsam 因为系统是18.04所以不需要作很大的更改,按照官网的doc一步一步的来就行了。 根据官网: GitHub - RobustFieldAutonomyLab…

DlhSoft Gantt Chart Light Library自定义的网格列

DlhSoft Gantt Chart Light Library自定义的网格列 Improved the loading of Microsoft Project XML files and the exporting of images from ScheduleChartDataGrid.Added new TotalResourceEffort and TotalResourceCompletedEffort properties to compute the real effort …

MySQL数据库数据动态监控(canal+Kafka)

参考资料: 参考文章https://gper.club/articles/7e7e7f7ff3g59gc6g6d canal官网 https://github.com/alibaba/canal

JavaWeb项目中添加live2d模型

前言:之前个人博客中配置的live2d模型的API失效了,所以重新折腾了一下,在自己服务器配置了 live2d 的 API,在此记录一下 JavaWeb项目中添加live2d模型 之前在个人博客中使用的 live2d 模型一直用的是网上一个大佬免费提供的 API …

Mybatis 的中高级特性使用

简介: MyBatis 的真正强大在于它的语句映射,这是它的魔力所在。由于它的异常强大,映射器的 XML 文件就显得相对简单。如果拿它跟具有相同功能的 JDBC 代码进行对比,你会立即发现省掉了将近 95% 的代码。MyBatis 致力于减少使用成…

小学生编程一些log

家里孩子也逐渐开始学习编程了,这里是一些经验积累,log下,希望能节省一些大家的探索时间; 方块编程 开始起手是一些scratch类的编程,使用方块类的,网课就可以,我这里尝试的是核桃编程&#xff…

蓝桥杯2020省赛python

蓝桥杯2020省赛Python 第一题:门牌制作 用了一个时间复杂度是n的算法,反正是填空题也不会出现TLE的事,只要别太离谱就行了。 利用python 的count函数 res 0 for i in range(1,2021):i str(i)res i.count(2) print(res)答案是2 第二题&…

【目标检测论文解读复现NO.26】基于改进YOLOv5s网络的实时输液监测

前言 此前出了目标改进算法专栏,但是对于应用于什么场景,需要什么改进方法对应与自己的应用场景有效果,并且多少改进点能发什么水平的文章,为解决大家的困惑,此系列文章旨在给大家解读最新目标检测算法论文&#xff0c…

115、【回溯算法】leetcode ——216.组合总和III:回溯法+剪枝优化(C++版本)

题目描述 原题链接:216.组合总和III 解题思路 整体回溯法思路类似于 77. 组合(回溯法剪枝优化),与之不同的是,需要多一个相加和为n的判定条件,可以让每次传入数的时候进行n - i,直至找到n 0时…

CAPBase理论

一、CAP 理论CAP 理论指出对于一个分布式计算系统来说,不可能同时满足以下三点:一致性:在分布式环境中,一致性是指数据在多个副本之间是否能够保持一致的特性,等同于所有节点访问同一份最新的数据副本。在一致性的需求…

英飞凌TC3xx系列介绍01-GTM系统介绍

本文框架1. 本系列前言2. GTM模块系统介绍2.1 GTM模块常用缩略语3. 系列介绍规划1. 本系列前言 英飞凌TC3xx是英飞凌AURIX 2G系列单片机,该系列单片机是32位微控制器,具有多个TriCore CPU、程序及数据存储器、总线、中断系统、DMA及功能强大的外围设备。…

linux基本功系列之su命令

文章目录一. su命令介绍二. 语法格式及常用选项三. 参考案例3.1 切换到root用户3.2 切换到指定用户3.3 不切换成root,但执行root才能执行的命令总结前言🚀🚀🚀 想要学好Linux,命令是基本功,企业中常用的命令…

【MySQL】第十部分 常用的聚合函数

【MySQL】第十部分 常用的聚合函数 文章目录【MySQL】第十部分 常用的聚合函数10. 常用的聚合函数10.1 MIN和MAX函数10.2 COUNT函数10.3 AVG和SUM函数10.4 GROUP BY10.5 HAVING总结10. 常用的聚合函数 定义: 对一组数据进行汇总的函数,输入的是一组数据的集合&…

英语学习打卡day5

2023.1.25 1.aqua n.水;溶液;浅绿色 The construction of underground aqua storage tank 地下水储罐的建设 2.do sth for dear life 拼命做某事 If you do something for dear life, you do it with as much effort as possible, usually to avoid danger. 3. 4.swoop …

vue-grid-layout数据可视化图表面板优化过程所遇问题汇总

对于drag事件不熟悉的,请先阅读:《drag事件详解:html5鼠标拖动排序及resize实现方案分析及实践》之前老项目grafana面板,如下图所示(GEM添加图表是直接到图表编辑,编辑完成后自动插入到面板最后&#xff09…

Flume集群安装部署、Kafka集群安装部署以及Maxwell安装部署实战

1、Flume集群安装部署 1.1、安装地址 Flume官网地址:http://flume.apache.org/文档查看地址:http://flume.apache.org/FlumeUserGuide.html下载地址:http://archive.apache.org/dist/flume/ 1.2、安装部署 将apache-flume-1.9.0-bin.tar.…

Redis实现笔记点赞排行榜 | 黑马点评-达人探店

一、发布探店笔记 探店笔记类似点评网站的评价,往往是图文结合。对应的表有两个 探店笔记表(主键、商户id、用户id、标题、文字、图片、探店文字描述、点赞数量、评论数量)评价表(笔记的评价)先上传图片请求一次保存…

【Java基础】--Java排序

【Java基础】--Java排序1、选择排序(Select Sort)2、冒泡排序(Bubble Sort)3、插入排序(Insert Sort)4、希尔排序(Shell Sort)5、归并排序(Merge Sort)6、快速排序(Quick Sort)7、堆排序(Heap Sort)小结待排序的元素需要实现 Java 的 Comparable 接口,该接口有 com…

Facebook SEO中参与度的重要性

参与度,也就是大家所说的浏览量,在 Facebook SEO中也叫做页面访问者参与度。一般来说, Facebook的用户在上面停留的时间越长代表着它在用户心目中的形象越好,这也是为什么 Facebook上的访客愿意打开自己的 Facebook页面让好友帮忙…

使用vite构建vue3项目详细介绍(ts+pinia+sass+vue-router+axios+element-plus)

使用vite构建vue3项目详细介绍(tspiniasassvue-routeraxioselement-plus) 1. 创建项目 npm init vitelatest 2. 配置 vite.config.ts path需要安装--npm install types/node --save-dev import vue from vitejs/plugin-vue; import { resolve } from path; import { defineC…