【Docker】Docker常用命令总结
文章目录
- 一、帮助命令
- 二、镜像命令
- 三、容器命令
- 四、常用的其他命令
在开发过程中,经常涉及到 docker 的相关操作,本文对常用的指令进行汇总。
一、帮助命令
docker version # 显示docker版本信息
docker info # 显示docker系统信息,包括镜像和容器数量
docker 命令 --help # 帮助信息
帮助文档:
https://docs.docker.com/engine/reference/commandline/docker/
二、镜像命令
帮助文档:https://docs.docker.com/engine/reference/commandline/image/
docker images 查看所有本地的主机上的镜像
[root@jiangwang /]# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
hello-world latest d1165f221234 3 days ago 13.3kB# 解释
REPOSITORY 镜像的仓库源
TAG 镜像的标签
IMAGE ID 镜像的id
CREATED 镜像的创建时间
SIZE 镜像的大小# 可选项-a, --all # 列出所有的镜像-q, --quiet # 只显示id[root@jiangwang /]# docker images -a
REPOSITORY TAG IMAGE ID CREATED SIZE
hello-world latest d1165f221234 3 days ago 13.3kB
[root@jiangwang /]# docker images -q
d1165f221234
[root@jiangwang /]# docker images -aq
d1165f221234
[root@jiangwang /]#
docker search 搜索镜像
[root@jiangwang /]# docker search mysql
NAME DESCRIPTION STARS OFFICIAL AUTOMATED
mysql MySQL is a widely used, open-source relation… 10589 [OK]
mariadb MariaDB Server is a high performing open sou… 3963 [OK] # 可选项,通过镜像来过滤-f, --filter=STARS=3000 # 搜索出来的镜像就是STARS大于3000的 [root@jiangwang /]# docker search mysql --filter=STARS=3000
NAME DESCRIPTION STARS OFFICIAL AUTOMATED
mysql MySQL is a widely used, open-source relation… 10589 [OK]
mariadb MariaDB Server is a high performing open sou… 3963 [OK]
[root@jiangwang /]# docker search mysql --filter=STARS=5000
NAME DESCRIPTION STARS OFFICIAL AUTOMATED
mysql MySQL is a widely used, open-source relation… 10589 [OK]
[root@jiangwang /]#
docker pull 下载镜像
docker pull image_name# 下载一个mysql的镜像,默认下载最新的镜像
[root@jiangwang /]# docker pull mysql# 下载指定版本的镜像
[root@jiangwang /]# docker pull mysql:5.7# 查看一下下载的所有镜像
[root@jiangwang /]# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
hello-world latest d1165f221234 3 days ago 13.3kB
mysql 5.7 a70d36bc331a 7 weeks ago 449MB
mysql latest c8562eaf9d81 7 weeks ago 546MB
删除镜像
# 根据id删除镜像 docker rmi -f a70d36bc331a
[root@jiangwang /]# docker rmi -f a70d36bc331a
Untagged: mysql:5.7
Untagged: mysql@sha256:b3d1eff023f698cd433695c9506171f0d08a8f92a0c8063c1a4d9db9a55808df
Deleted: sha256:a70d36bc331a13d297f882d3d63137d24b804f29fa67158c40ad91d5050c39c5
Deleted: sha256:50c77bf7bcddd1f1d97789d80ac2404eec22c860c104e858620d2a2e321f0ef7
Deleted: sha256:14244329b83dfc8982398ee4104a548385652d2bffb957798ff86a419013efd6
Deleted: sha256:6d990477f90af28473eb601a9bca22253f6381e053c5a8edda0a4f027e124a3c
Deleted: sha256:ee0449796df204071589162fc16f8d65586312a40c68d1ba156c93c56f5e5ce8
[root@jiangwang /]# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
hello-world latest d1165f221234 3 days ago 13.3kB
mysql latest c8562eaf9d81 7 weeks ago 546MB
[root@jiangwang /]# ## 删除所有镜像
[root@jiangwang /]# docker rmi -f $(docker images -aq)
[root@jiangwang /]# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
[root@jiangwang /]# # 删除多个镜像
docker rmi -f 镜像id 镜像id 镜像id
三、容器命令
说明:有了镜像才能创建容器,Linux,下载一个centos镜像
[root@jiangwang /]# docker pull centos
Using default tag: latest
latest: Pulling from library/centos
7a0437f04f83: Pull complete
Digest: sha256:5528e8b1b1719d34604c87e11dcd1c0a20bedf46e83b5632cdeac91b8c04efc1
Status: Downloaded newer image for centos:latest
docker.io/library/centos:latest
[root@jiangwang /]#
新建容器并启动
docker run [可选参数] image# 参数说明
--name="Name" 容器名字 tomcat01 tomcat02,用来区分容器
-d 后台方式运行
-it 使用交互方式运行,进入容器查看内容
-p 指定容器端口 -p 8080:8080-p ip:主机端口:容器端口-p 主机端口:容器端口 (常用)-p 容器端口容器端口-P 随机指定端口# 测试,启动并进入容器
[root@jiangwang /]# docker run -it centos /bin/bash
[root@685c34c813d5 /]# ls # 查看容器内的centos
bin etc lib lost+found mnt proc run srv tmp var
dev home lib64 media opt root sbin sys usr# 从容器中退回主机
[root@685c34c813d5 /]# exit
exit
[root@jiangwang /]# ls
bin dev home lib lost+found mnt patch root sbin sys usr www
boot etc install.sh lib64 media opt proc run srv tmp var
查看当前有哪些容器正在运行
# docker ps 显示正常运行的容器
-a # 显示当前正在运行的容器 + 历史运行过的容器
-n=? # 显示最近创建的容器
-q # 只显示容器的编号
[root@jiangwang /]# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
[root@jiangwang /]# docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
685c34c813d5 centos "/bin/bash" 3 minutes ago Exited (0) About a minute ago pensive_shaw
db8909cfa9cc d1165f221234 "/hello" 4 hours ago Exited (0) 4 hours ago adoring_shockley
[root@jiangwang /]# docker ps -n=1
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
685c34c813d5 centos "/bin/bash" 7 minutes ago Exited (0) 5 minutes ago pensive_shaw
[root@jiangwang /]# docker ps -aq
685c34c813d5
db8909cfa9cc
[root@jiangwang /]#
退出容器
exit # 直接退出容器并停止
Ctrl + P + Q # 退出容器但是容器不停止[root@jiangwang /]# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
[root@jiangwang /]# docker run -it centos /bin/bash
[root@589fa10f7998 /]# [root@jiangwang /]# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
589fa10f7998 centos "/bin/bash" 31 seconds ago Up 29 seconds magical_noether
[root@jiangwang /]#
启动、停止、重启容器命令
docker start container_name/container_id # 启动容器
docker stop container_name/container_id # 停止当前正在运行的容器
docker restart container_name/container_id # 重启容器
docker kill container_name/container_id # 强制停止当前容器
后台启动一个容器后,如果想进入到这个容器,可以使用attach命令
docker attach container_name/container_id
删除容器的命令
docker rm container_name/container_id # 不能删除正在运行的容器
删除所有停止的容器
docker rm -f $(docker ps -a -q)
查看当前系统Docker信息
docker info
从Docker hub上下载某个镜像
docker pull centos:latest
查找ocker Hub上的nginx镜像
docker search nginx
四、常用的其他命令
后台启动容器
# docker run -d 镜像名
[root@jiangwang /]# docker run -d centos
dd83c9017b8b6cb2ed07d1943e0db8421b7ad0864ab291e7d470a6af76a8a6a9
[root@jiangwang /]# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
[root@jiangwang /]# # 问题docker ps ,发现 centos 停止了
# 常见的坑:docker 容器使用后台运行,就必须要有一个前台进程,docker发现没有应用,就自动停止
# nginx,容器启动后,发现袭击没有提供服务,就立刻停止,就是没有程序了
查看日志
docker logs -f -t --tail 容器
查看容器中的进程信息 ps
# 命令 docker top 容器id
[root@jiangwang /]# docker top fbff5b668c3a
UID PID PPID C STIME TTY TIME CMD
root 4345 4324 0 16:59 pts/0 00:00:00 /bin/bash
查看镜像中的元数据
# docker inspect 容器id
# 测试
[root@jiangwang /]# docker inspect 容器id
进入当前正在运行的容器
# 命令 docker exec -it 容器id /bin/bash# 测试
[root@jiangwang /]# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
fbff5b668c3a centos "/bin/bash" 16 minutes ago Up 16 minutes blissful
[root@jiangwang /]# docker exec -it fbff5b668c3a /bin/bash
[root@fbff5b668c3a /]# ls
bin etc lib lost+found mnt proc run srv tmp var
dev home lib64 media opt root sbin sys usr
[root@fbff5b668c3a /]# ps -ef
UID PID PPID C STIME TTY TIME CMD
root 1 0 0 08:59 pts/0 00:00:00 /bin/bash
root 16 0 0 09:16 pts/1 00:00:00 /bin/bash
root 32 16 0 09:17 pts/1 00:00:00 ps -ef# 方式二、docker attach 容器id
[root@jiangwang /]# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
fbff5b668c3a centos "/bin/bash" 20 minutes ago Up 20 minutes blissful_tu
[root@jiangwang /]# docker attach fbff5b668c3a
[root@fbff5b668c3a /]# ls
bin etc lib lost+found mnt proc run srv tmp var
dev home lib64 media opt root sbin sys usr
[root@fbff5b668c3a /]#
从容器内拷贝文件到主机上
# 命令 docker cp 容器id:容器内路径 目的的主机路径
# 进入容器
[root@jiangwang /]# docker attach fbff5b668c3a
[root@fbff5b668c3a /]# ls
bin etc lib lost+found mnt proc run srv tmp var
dev home lib64 media opt root sbin sys usr
[root@fbff5b668c3a /]# cd home/# 在容器内 home 路径下新建一个test.java文件
[root@fbff5b668c3a home]# touch test.java
[root@fbff5b668c3a home]# ls
test.java
[root@fbff5b668c3a home]# exit
exit
[root@jiangwang /]# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
# 将容器内的test.java文件拷贝到linux主机上
[root@jiangwang /]# docker cp fbff5b668c3a:/home/test.java /home
[root@jiangwang /]# cd home/
# 成功拷贝到/home目录下
[root@jiangwang home]# ls
f2 f3 jiangwang test.java www
相关文章:
【Docker】Docker常用命令总结
文章目录 一、帮助命令二、镜像命令三、容器命令四、常用的其他命令 在开发过程中,经常涉及到 docker 的相关操作,本文对常用的指令进行汇总。 一、帮助命令 docker version # 显示docker版本信息 docker info # 显示docker系统信息ÿ…...
React 对比class与Effect Hook优化响应式数据更新监听,感受useEffect真正的强大
还是之前写过的一个组件 import React from "react"export default class index extends React.Component{constructor(props){super(props);this.state {name: "小猫猫"}}componentDidMount ()>{document.title this.state.name;}componentDidUpda…...
AWS Lambda 介绍
计算服务的演进 EC2------Container-------Lambda 虚拟机---容器--------------serverless无服务器架构 什么是AWS Lambda? AWS lambda的核心是事件驱动,驱动可能来自,Alexa,SNS,DynamoDB,S3,Kinesis等&…...
linux之权限管理
目录 1.一.基本小语句 2.文件权限操作chmod 1.一.基本小语句 ls - a 查看此文件夹所有和隐藏内容 ls - l 查看此文件夹权限 chown 改变文所有者 2.文件权限操作chmod chmod 参数 文件名 文件的权限主要针对三类对象进行定义 owner 属主, u:针对前三个部分的权限修改 …...
【设计模式与范式:行为型】61 | 策略模式(下):如何实现一个支持给不同大小文件排序的小程序?
上一节课,我们主要介绍了策略模式的原理和实现,以及如何利用策略模式来移除 if-else 或者 switch-case 分支判断逻辑。今天,我们结合“给文件排序”这样一个具体的例子,来详细讲一讲策略模式的设计意图和应用场景。 除此之外&…...
【C++】auto_ptr为何被唾弃?以及其他智能指针的学习
搭配异常可以让异常的代码更简洁 文章目录 智能指针 内存泄漏的危害 1.auto_ptr(非常不建议使用) 2.unique_ptr 3.shared_ptr 4.weak_ptr总结 智能指针 C中为什么会需要智能指针呢?下面我们看一下样例: int div() {int a, b;cin >&g…...
数据结构练习题1:基本概念
练习题1:基本概念 1 抽象数据类型概念分析2. 逻辑结构与存储结构概念分析3.综合选择题4.综合判断题5.时间复杂度相关习题6 时间复杂度计算方法(一、二、三层循环) 1 抽象数据类型概念分析 1.可以用(抽象数据类型)定义…...
如何消除Msxml2.XMLHTTP组件的缓存
之前使用这个组件,是每隔十分钟取数据,没有遇到这个缓存问题, 这次使用它是频繁访问接口,就出现了一直不变的问题。觉得是缓存没有清除的问题。 网上搜了一些方案。最好的方案就是给url地址末尾给一个随机参数。用于让组件觉得是…...
深入理解Java虚拟机jvm-运行时数据区域(基于OpenJDK12)
运行时数据区域 运行时数据区域程序计数器Java虚拟机栈本地方法栈Java堆方法区运行时常量池直接内存 运行时数据区域 Java虚拟机在执行Java程序的过程中会把它所管理的内存划分为若干个不同的数据区域。这些区域有各自的用途,以及创建和销毁的时间,有的…...
(OpenCV) 基础demo
文章目录 前言Demo图片录制播放人脸识别 END 前言 OpenCV - Open Computer Vision Library OpenCV的名声想必不用多说了。 本文介绍4个基础使用demo。分别为,显示图片,录制视频,播放视频和一个基于开源算法库的人脸识别小demo。 只要环境…...
using 的使用
作者: 苏丙榅 链接: https://subingwen.cn/cpp/using/ 在 C 中 using 用于声明命名空间,使用命名空间也可以防止命名冲突。在程序中声明了命名空间之后,就可以直接使用命名空间中的定义的类了。在 C11 中赋予了 using 新的功能,让C变得更年轻…...
Websocket、Socket、HTTP之间的关系
Websocket、Socket、HTTP之间的关系 ★ Websocket是什么?★ Websocket的原理★ websocket具有以下特点:★ webSocket可以用来做什么?★ websocket与socket区别:★ WebSocket与HTTP区别 ★ Websocket是什么? ● Websocket是HTML5下…...
hustoj LiveCD版系统在局域网虚拟机安装和配置
root权限 打开terminal命令行输入sudo su输入初始密码freeproblemsetmysql数据库的密码的位置,如何登陆数据库 数据库账号密码存放在两个配置文件中: /home/judge/etc/judge.conf/home/judge/src/web/include/db_info.inc.php 新版本中,快…...
读书-代码整洁之道10-14
类 类的三大特性:封装、继承、多态;类应该短小;单一权责原则认为,类或模块应有且只有一条加以修改的理由;当类丧失了内聚性,就拆分它;隔离修改 系统 构造和使用是非常不一样的过程。每个应用…...
UDP 广播/组播
广播UDP与单播UDP的区别就是IP地址不同,广播使用广播地址xxx.xxx.xxx.255,将消息发送到在同一广播网络上的每个主机,广播/组播只能用udp进行实现 函数:int setsockopt(int sockfd, int level, int optname, const void *optval, socklen_topt…...
高效创作助手:ChatGPT最新版实现批量撰写聚合文章的全新水平
随着人工智能技术的不断发展,ChatGPT最新版作为一款智能创作助手,实现了批量撰写聚合文章的全新水平。它能够在短时间内生成高质量的文章,极大地提高了创作效率。本文将从随机8-20个方面对ChatGPT最新版进行详细的阐述,让我们一起…...
Python中的包是什么,如何创建和使用包?
在Python中,包是一种将相关模块分组在一起的方式。它可以让我们更好地组织和重用代码。 一个Python包实际上是一个文件夹,其中包含该包的Python模块和其他资源文件(例如配置文件、数据文件等)。包的根目录通常包含一个名为__init…...
Spring Cloud Alibaba Seata(二)
目录 一、Seata 1、Seata-AT模式 1.1、具体案例 1.2、通过Seata的AT模式解决分布式事务 2、Seata-XA模式 3、Seata-TCC模式 4、Seata-SAGA模式 一、Seata 1、Seata-AT模式 概念:AT模式是一种无侵入的分布式事务解决方案,在 AT 模式下,…...
如何在 MySQL 中使用 COALESCE 函数
1. 简介 在 MySQL 中,COALESCE 函数可以用来返回参数列表中的第一个非空值。如果所有参数都为空,则返回 NULL。本文将介绍 COALESCE 函数的语法和用法,并通过示例演示其效果。 2. 语法 COALESCE 函数的语法如下所示: COALESCE(…...
Python爬虫之Scrapy框架系列(22)——初识分布式爬虫scrapy_redis
目录: 分布式爬虫(Scrapy\_redis):1.简单介绍:2.Scrapy_redis的安装:分布式爬虫(Scrapy_redis): 官方文档:https://scrapy-redis.readthedocs.io/en/stable/1.简单介绍: scrapy_redis是一个基于Redis的Scrapy组件,用于scrapy项目的分布式部署和开发。 特点: 分布…...
接口测试中缓存处理策略
在接口测试中,缓存处理策略是一个关键环节,直接影响测试结果的准确性和可靠性。合理的缓存处理策略能够确保测试环境的一致性,避免因缓存数据导致的测试偏差。以下是接口测试中常见的缓存处理策略及其详细说明: 一、缓存处理的核…...
第19节 Node.js Express 框架
Express 是一个为Node.js设计的web开发框架,它基于nodejs平台。 Express 简介 Express是一个简洁而灵活的node.js Web应用框架, 提供了一系列强大特性帮助你创建各种Web应用,和丰富的HTTP工具。 使用Express可以快速地搭建一个完整功能的网站。 Expre…...
Flask RESTful 示例
目录 1. 环境准备2. 安装依赖3. 修改main.py4. 运行应用5. API使用示例获取所有任务获取单个任务创建新任务更新任务删除任务 中文乱码问题: 下面创建一个简单的Flask RESTful API示例。首先,我们需要创建环境,安装必要的依赖,然后…...
React第五十七节 Router中RouterProvider使用详解及注意事项
前言 在 React Router v6.4 中,RouterProvider 是一个核心组件,用于提供基于数据路由(data routers)的新型路由方案。 它替代了传统的 <BrowserRouter>,支持更强大的数据加载和操作功能(如 loader 和…...
智慧工地云平台源码,基于微服务架构+Java+Spring Cloud +UniApp +MySql
智慧工地管理云平台系统,智慧工地全套源码,java版智慧工地源码,支持PC端、大屏端、移动端。 智慧工地聚焦建筑行业的市场需求,提供“平台网络终端”的整体解决方案,提供劳务管理、视频管理、智能监测、绿色施工、安全管…...
uni-app学习笔记二十二---使用vite.config.js全局导入常用依赖
在前面的练习中,每个页面需要使用ref,onShow等生命周期钩子函数时都需要像下面这样导入 import {onMounted, ref} from "vue" 如果不想每个页面都导入,需要使用node.js命令npm安装unplugin-auto-import npm install unplugin-au…...
CentOS下的分布式内存计算Spark环境部署
一、Spark 核心架构与应用场景 1.1 分布式计算引擎的核心优势 Spark 是基于内存的分布式计算框架,相比 MapReduce 具有以下核心优势: 内存计算:数据可常驻内存,迭代计算性能提升 10-100 倍(文档段落:3-79…...
HBuilderX安装(uni-app和小程序开发)
下载HBuilderX 访问官方网站:https://www.dcloud.io/hbuilderx.html 根据您的操作系统选择合适版本: Windows版(推荐下载标准版) Windows系统安装步骤 运行安装程序: 双击下载的.exe安装文件 如果出现安全提示&…...
实现弹窗随键盘上移居中
实现弹窗随键盘上移的核心思路 在Android中,可以通过监听键盘的显示和隐藏事件,动态调整弹窗的位置。关键点在于获取键盘高度,并计算剩余屏幕空间以重新定位弹窗。 // 在Activity或Fragment中设置键盘监听 val rootView findViewById<V…...
#Uniapp篇:chrome调试unapp适配
chrome调试设备----使用Android模拟机开发调试移动端页面 Chrome://inspect/#devices MuMu模拟器Edge浏览器:Android原生APP嵌入的H5页面元素定位 chrome://inspect/#devices uniapp单位适配 根路径下 postcss.config.js 需要装这些插件 “postcss”: “^8.5.…...
