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 run

docker 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,密码为root

docker create --name mysql3308 -e MYSQL_ROOT_PASSWORD=root -p 3308:3306 mysql:5.7

4.操作容器,连接mysql

启动容器
docker start mysql3308

进入到容器
docker exec -it mysql3308 bash

mysql连接
mysql -uroot –p

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

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

SpringBoot集成Redis环境搭建及配置详解

前言 Redis作为当前最火的NoSQL数据库,支持很多语言客户端操作Redis。 而SpringBoot作为java当前最火的开发框架,提供了Spring-data-redis框架实现对Redis的各种操作。 在springboot1.5.x版本的默认的Redis客户端都是Jedis实现的,springboot…

大模型时代下两种few shot高效文本分类方法

介绍近年(2022、2024)大语言模型盛行下的两篇文本分类相关的论文,适用场景为few shot。两种方法分别是setfit和fastfit,都提供了python的包使用方便。 论文1:Efficient Few-Shot Learning Without Prompts 题目:无需提示的高效少…

浪潮信息企业级存储逆势增长 市场份额位列中国前二

2023年,中国企业级存储市场竞争激烈,在挑战重重之下,浪潮信息仍然实现逆势增长,销售额增幅达4.7%,市场份额相比2022年扩大0.6%,位列中国前二。另外,在高端和全闪存阵列细分市场,浪潮…

Vue3实战Easy云盘(三):文件删除+文件移动+目录导航+上传优化/文件过滤/搜索

一、文件删除 &#xff08;1&#xff09;选中了之后才可以删除&#xff0c;没有选中时就显示暗调删除按钮 &#xff08;2&#xff09;实现选中高亮功能 &#xff08;3&#xff09;单个删除 &#xff08;4&#xff09;批量删除 Main.vue中 <!-- 按钮3 --><!-- 如果sel…

鸿蒙内核源码分析(用户态锁篇) | 如何使用快锁Futex(上)

快锁上下篇 鸿蒙内核实现了Futex&#xff0c;系列篇将用两篇来介绍快锁&#xff0c;主要两个原因: 网上介绍Futex的文章很少&#xff0c;全面深入内核介绍的就更少&#xff0c;所以来一次详细整理和挖透。涉及用户态和内核态打配合&#xff0c;共同作用&#xff0c;既要说用户…

【Linux】文件描述符和重定向

目录 一、回顾C文件 二、系统文件I/O 2.1 系统调用 open 2.2 标志位传参 2.3 系统调用 write 2.4 文件描述符fd 2.5 struct file 2.6 fd的分配规则 2.7 重定向 2.7.1 基本原理&#xff1a; 2.7.2 系统调用 dup2 2.8 标准错误 一、回顾C文件 文件 内容 属性 对…

3分钟,学会一个 Lambda 小知识之【流API】

之前给大家介绍的 Lambda 小知识还记得吗&#xff1f;今天再来给大家介绍&#xff0c; 流API 的相关知识要点。 流API Stream是Java8中处理集合的关键抽象概念&#xff0c;它可以指定你对集合的&#xff0c;可以执行查找、过滤和映射等数据操作。 Stream 使用一种类似用 SQ…

资料如何打印更省钱

在日常工作和学习中&#xff0c;我们经常需要打印各种资料。然而&#xff0c;随着打印成本的不断提高&#xff0c;如何更省钱地打印资料成为了大家关注的焦点。今天&#xff0c;就为大家分享一些资料打印的省钱技巧&#xff0c;并推荐一个省钱又省心的打印平台。 首先&#xff…

冥想的时候怎么专注自己

冥想的时候怎么专注自己&#xff1f;我国传统的打坐养生功法&#xff0c;实际最早可追溯到五千年前的黄帝时代。   每天投资两个半小时的打坐&#xff0c;有上千年之久的功效。因为当你们打坐进入永恒时&#xff0c;时间停止了。这不只是两个半小时&#xff0c;而是百千万亿年…

深入探讨黑盒测试:等价类划分与边界值分析

文章目录 概要黑盒测试等价类划分边界值分析 设计测试用例小结 概要 在软件开发领域&#xff0c;测试是确保产品质量的关键步骤之一。而黑盒测试方法作为其中的一种&#xff0c;通过关注输入与输出之间的关系&#xff0c;而不考虑内部实现的细节&#xff0c;被广泛应用于各种软…

使用git系统来更新FreeBSD ports源码

FreeBSD跟其它系统相比一大特色就是ports系统。 The Ports Collection is a set of Makefiles, patches, and description files. Each set of these files is used to compile and install an individual application on FreeBSD, and is called a port. By default, the Po…

5 款免费好用的精品软件推荐!

AI视频生成&#xff1a;小说文案智能分镜智能识别角色和场景批量Ai绘图自动配音添加音乐一键合成视频https://aitools.jurilu.com/ 1.系统优化软件 - Wise Care 365 Wise Care 365 -全球最快的系统优化软件&#xff01;精简系统、管理启动项、清理和优化注册表、清理个人隐私…

基于51单片机的冰箱控制系统设计( proteus仿真+程序+设计报告+原理图+讲解视频)

基于51单片机冰箱控制系统设计( proteus仿真程序设计报告原理图讲解视频&#xff09; 基于51单片机冰箱控制系统设计 1. 主要功能&#xff1a;2. 讲解视频&#xff1a;3. 仿真4. 程序代码5. 设计报告6. 原理图7. 设计资料内容清单&&下载链接资料下载链接&#xff1a; …

Debian mariadb 10.11 XXXX message from server: “Too many connections“

问题表现 报错信息&#xff1a;Caused by: com.mysql.jdbc.exceptions.jdbc4.MySQLNonTransientConnectionException: Data source rejected establishment of connection, message from server: "Too many connections" 处理步骤 1、尝试能不能通过终端登录&…

从头理解transformer,注意力机制(下)

交叉注意力 交叉注意力里面q和KV生成的数据不一样 自注意力机制就是闷头自学 解码器里面的每一层都会拿着编码器结果进行参考&#xff0c;然后比较相互之间的差异。每做一次注意力计算都需要校准一次 编码器和解码器是可以并行进行训练的 训练过程 好久不见输入到编码器&…

SpringBoot中@Value注入失败

首先&#xff0c;不支持static的 解决&#xff1a;使用setter方法进行属性的赋值,并且setter方法不能有static 生成set/get方法就可以了&#xff0c;然后Value 放在set上

《系统架构设计师教程(第2版)》第10章-软件架构的演化和维护-07-软件架构维护

文章目录 1. 软件架构知识管理1.1 概念1.2 架构知识的获取1.3 作用1.4 架构知识管理的现状 2 软件架构修改管理3 软件架构版本管理4. 示例4.1 背景4.2 数据获取4.3 数据计算4.4 结果分析4.4.1 圈复杂度 (CCN)4.4.2 扇入扇出度 (FFC)4.4.3 模块间耦合度 (CBO)4.4.4 模块的响应 (…

x264 场景切换检测算法分析

x264 编码器场景切换 在 x264 编码器中,场景切换(Scene Cut)检测是一个重要的特性,它用于识别视频中不同场景之间的过渡点。这些过渡点通常是视觉上显著不同的帧,比如从一个镜头切换到另一个镜头。在这些点插入关键帧(I帧)可以提高视频的随机访问性和编码效率。 入口函…

vue 百度地图点击marker修改marker图片,其他marker图片不变。

解决思路&#xff0c;就是直接替换对应marker的图片。获取marker对象判断点击的marker替换成新图片&#xff0c;上一个被点击的就替换成老图片。 marker.name tag;marker.id i; //一定要设置id&#xff0c;我这里是设置的循环key值&#xff0c;要唯一性。map.addOverlay(mark…

SSRF(服务器端请求伪造)的学习以及相关例题(上)

目录 一、SSRF的介绍 二、漏洞产生的原因 三、利用SSRF可以实现的效果&#xff08;攻击方式&#xff09; 四、SSRF的利用 五、SSRF中的函数 file_get_content() 、fsockopen() 、curl_exec() 1.file_get_content()&#xff1a; 2.fsockopen(): 3.curl_exec()&#xff1…