Docker:docker在项目中常用的一些命令

简介
  Docker 是一个开源的容器化平台,它允许开发者将应用程序及其依赖项打包到一个可移植的容器中,并发布到任何安装了 Docker 引擎的机器上。这些容器是轻量级的,包含了应用程序运行所需的所有东西,如代码、系统库、系统工具、运行时环境等,以确保应用程序在不同环境中都能一致地运行。
  这使得应用程序可以在几乎任何环境中轻松部署,并且能够快速扩展和管理。Docker极大地简化了应用程序的交付和部署流程,同时提高了资源利用率和可移植性。因此,Docker被广泛应用于DevOps、持续集成/持续部署以及云计算等领域。

Docker的应用场景

1.面向开发人员的Web应用自动化打包和发布
  在没有Docker之前,开发、测试、生产环境可能不同,这可能导致文件配置上的不一致。然而,使用Docker,在容器内的程序端口都是一致的,而容器对外暴露的端口可能不同,但不影响程序的交付和运行,从而保证了开发环境与生产环境的一致性,并实现了快速部署。
Docker还可以为应用程序提供稳定的运行环境,使开发人员可以轻松在不同的系统上测试和运行软件,而无需考虑与操作系统或其他应用程序的冲突。

2.面向运维人员的运维成本降低
  部署程序时搭建运行环境是很费时间的工作,同时还要解决环境的各种依赖。而Docker通过镜像机制,将需要部署运行的代码和环境直接打包成镜像,上传到容器即可启动,节约了部署各种软件的时间。
Docker可以帮助管理员自动化应用程序的部署和操作,也可以轻松地横向扩展和缩小服务器,以便根据需要扩展或减少服务。

3.面向企业的PaaS层实现
  使用Docker,在一台物理机上就可以部署多个轻量化的容器,运行效率上会有很大的提升。

4.DevOps和持续集成/持续部署(CI/CD):
  Docker支持DevOps流程,通过容器化应用程序,实现了在不同环境中一致的构建、测试和部署。CI/CD工具(如Jenkins、GitLab CI)能够更高效地与Docker集成,实现自动化的构建和部署流程。

5.微服务架构
  Docker为构建和管理微服务提供了理想的解决方案。每个微服务可以被打包成一个独立的容器,方便部署、扩展和管理。容器的隔离性保证了微服务之间的相互独立运行。

6.大数据和分布式系统
  Docker也可以用于大数据和分布式系统的部署和管理,因为它可以轻松地扩展和缩小资源,以满足大数据处理的需求。

7.云计算和容器服务
  Docker可以作为云计算平台的基础架构,例如Kubernetes、Mesos或Docker Swarm,提供高度扩展、可靠性和安全性。

8.多租户应用程序的隔离
  Docker可以为多租户应用程序提供隔离的容器,从而不同租户之间的应用程序和数据可以彼此隔离,提高了安全性。

掌握项目中一些常用命令

查看容器信息

docker ps -a-a:显示所有的容器,包括正在运行和已经停止的容器。-q:仅显示容器的ID,而不显示其他信息。--filter:根据指定的条件过滤要显示的容器,例如根据状态、标签等。--format:指定输出的格式,可以自定义输出的信息。-l:显示最近创建的容器,包括已经停止的容器。-n:显示最近创建的N个容器,N为数字。

在这里插入图片描述
查看镜像信息

docker images
-a: 列出本地所有的镜像(含中间映像层,默认情况下,过滤掉中间映像层);
--digests: 显示镜像的摘要信息;
-f: 显示满足条件的镜像;
--format: 指定返回值的模板文件;
--no-trunc: 显示完整的镜像信息;
-q: 只显示镜像ID
runoob@runoob:~$ docker images
REPOSITORY              TAG                 IMAGE ID            CREATED             SIZE
mymysql                 v1                  37af1236adef        5 minutes ago       329 MB
redis                   latest              4465e4bcad80        3 weeks ago         185.7 MB
python                  3.5                 045767ddf24a        3 weeks ago         684.1 MB

重启容器

docker restart  容器id/容器名称

启动容器

docker start 容器id

停止容器

docker stop  容器id

删除容器

docker rm  容器id

停止所有容器

docker stop $(docker ps -a -q)

删除所有容器

docker rm $(docker ps -a -q)

删除所有镜像

docker rmi $(docker images -q)

如何进入容器中

1.首先使用下面的命令,查看容器ID(CONTAINER ID):

docker ps -a

2.然后用下面的命令进入容器,就可以使用bash命令浏览容器里的文件:

docker exec -it [CONTAINER ID] bash有的镜像没有bash命令,可以用对应的shell,比如sh
docker exec -it [CONTAINER ID] sh

如何进行跟踪查看日志

1.首先使用下面的命令,查看容器ID(CONTAINER ID):

docker ps -a

2.查看日志

docker logs -f CONTAINER_ID
-f: 跟踪日志输出
--since: 显示某个开始时间的所有日志
-t: 显示时间戳
--tail: 仅列出最新N条容器日志
查看日志,只显示最后200行
docker logs --tail 200 CONTAINER_ID查看最近30分钟的日志
docker logs --since 30m CONTAINER_ID查看某时间之后的日志
dockere logs -t --since "2020-10-25T14:06:30" CONTAINER_ID

docker 删除镜像

1.先查看镜像是否有对应的容器

docker ps -a

2.有容器的话,先删除容器,不然会删除失败

docker rm 容器id

3.再删除镜像文件

docker rmi 镜像id

运行容器

docker rundocker run -i(保持容器一直运行)-t(给容器一个伪终端)-d(后台运行,不直接进入容器) --name=tomcat9.2(给启动容器起名字)-p 8080:8080(宿主:docker容器)tomcat:9.2(启动的容器)  通过 -it 启动的容器有两个特点 一创建就进入容器 exit退出容器 容器就会停止运行  ---交互式容器通过 -id 创建的容器 docker exec -it tomcat9.2--name起的名称)进入容器 exit退出容器 容器不会停止运行   ---守护式容器

数据卷添加的方式
  Docker数据卷(Data Volumes)是宿主机中的一个目录或文件,它可以在容器之间共享和重用,使得本地与容器间传递数据更高效。

数据卷–添加两种方式

1.	直接命令形式添加  docker run -it -v 宿主机绝对路径目录:容器内目录 镜像文件名称
2.	Dockerfile方式添加docker run --name nginx81 -d -p 81:80 -v /data/nginx/html:/usr/share/nginx/html nginx-v /data/nginx/html: linux虚拟机目录/usr/share/nginx/html 容器中html目录

项目实践:安装MySQL5.7
1.查询mysql版本

docker search mysql

2.下载MySQL5.7版本

docker pull mysql:5.7  (这里选择的是第一个mysql镜像, :5.7选择的5.7版本)

3.等待下载完成、创建MySQL容器

创建容器名称为mysql3308,密码为rootdocker create --name mysql3308 -e MYSQL_ROOT_PASSWORD=root -p 3308:3306 mysql:5.7

4.操作容器,连接mysql

启动容器
docker start mysql3308进入到容器
docker exec -it mysql3308 bashmysql连接
mysql -uroot –p

以上是项目中一些经常使用的命令。

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

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

两种方法合并3dtiles(分别使用js/java)

目录 前言: 需合并的json目录 aa/tileset.json bb/tileset.json cc/tileset.json dd/tileset.json ee/tileset.json js源码: 运行命令: 生成结果: java源码: Matrix.java ThreeDTilesJoin2.java pom文件…

YOLOv8+CLIP实现图文特征匹配

本文通过结合YOLOv8s的高效物体检测能力与CLIP的先进图像-文本匹配技术,展示了深度学习在处理和分析复杂多模态数据中的潜力。这种技术的应用不仅限于学术研究,还能广泛应用于工业、商业和日常技术产品中,以实现更智能的人机交互和信息处理。…

管仲发动的粮食战争令人惊醒

各种类型的战争,在中国春秋战国时代就已经包罗万象、炉火纯青了,第一仲父管仲无疑是其中最伟大的军事家之一。 时至今日,他留给人们的最大印象,应该是孔子那句话“微管仲,吾其被发左衽矣。” 也就是说,如果…

办公软件_EdrawMax 免安装版教程 (亿图图示综合图形图表设计软件)

前言 万兴亿图图示(Wondershare EdrawMax)是一款综合图形图表设计软件,Visio国产替代.亿图图示中文版(Edraw Max)是一款办公绘图软件的思维导图软件.无需任何绘图功底,即可轻松创建各类思维导图.亿图图示专家,提供大量事例和在线模板,用于创建流程图,信息图,组织结构图,科学教…

滴滴7分钟路程收1414元事件:软件测试工程师的反思与启示

近日,一名上海网友在滴滴小程序发现了一条2017年的未支付信息。订单详情为2公里左右的行程,7分钟的时长,却显示付款1414元。 此次事件在滴滴客服回复“正常,支付就行”后,发酵到了热搜上,对滴滴平台的信誉造…

数字化教学实验室软件系统

实验室作为科研和技术创新的重要基地,数字化教学实验室软件系统为实验教学带来了极大的便利和创新。因此盛元广通数字化实验室软件系统应运而生。不仅支持实验课程的全流程管理,还提供了丰富的功能和工具来支持教师的教学和学生的学习。支持实验课程的预…

最短路径[dijkstra算法]——视频讲解+JAVA实现

dijkstra算法逻辑: 想要理解floyd算法的实现逻辑,最形象的视频讲解是很有必要的。 这里小编极力推荐B站蓝不过海呀这个Up的视频讲解,讲的非常细节, 比自己去看一些什么算法导论效率要高的多,毕竟相较于文字&#xf…

vue 发布项目

You are not allowed to force push code to a protected branch on this project. 分支做了保护,git中设置允许强制推送

第十二讲:指针(4)

第十二讲:指针(4) 1.回调函数1.1什么是回调函数1.2深入理解并使用回调函数1.2.1简单写法1.2.2优化 2.qsort函数详解2.1函数简单介绍2.3qsort函数使用举例2.3.1qsort函数排序整形数据2.3.2qsort函数排序结构数据 3.qsort函数的模拟实现3.1冒泡…

2024最新软件测试面试题及答案【史上最全】

以下是软件测试相关的面试题及答案,欢迎大家参考! 1、你的测试职业发展是什么? 测试经验越多,测试能力越高。所以我的职业发展是需要时间积累的,一步步向着高级测试工程师奔去。而且我也有初步的职业规划,前3年积累测试经验&…

渗透测试工具--AppInfoScanner 的安装与使用(一)

简洁 ApplicationScanner是一个快速稳定的App代码扫描工具,其主要功能是对ipa和apk文件进行扫描,以快速发现存在风险的代码。这款工具基于Python 3.7实现其主要功能,同时apk检测部分需要JDK 11的支持,因此它具备较好的跨平台特性…

Stable Diffusion WebUI 绘画

配置环境介绍​ 目前平台集成了 Stable Diffusion WebUI 的官方镜像,该镜像中整合如下资源: GpuMall智算云 | 省钱、好用、弹性。租GPU就上GpuMall,面向AI开发者的GPU云平台 Stable Diffusion WebUI版本:v1.7.0 Python版本:3.1…