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

news2024/10/6 21:27:13

简介
  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

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

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

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

相关文章

“数字化叙事的革命:人工智能驱动的创意工具的崛起”

近年来,人工智能 (AI) 改变了我们生活的许多方面,数字故事讲述的世界也不例外。随着人工智能驱动的创意工具的出现,广告商、内容创作者和专业人士现在配备了创新的解决方案来简化他们的工作流程,增强他们的创意输出,并…

08.4.grafana自定义图形并直接数据库取值

grafana自定义图形并直接数据库取值 自定义添加油表图形 选择gauge图形,并且配置对应设定值,点击应用 如图所示,可以看到仪表盘上的值是zabbix上取得值 配置grafana直接数据库取值 添加mysql数据源 添加后进行配置,我这…

二分判定+选插冒排序+归并快速堆希尔+计数排序

二分力扣题 一&#xff1a;搜索二维矩阵 74. 搜索二维矩阵 按照题意&#xff1a;直接利用二维数组转换成一维数组进行求解 方法一&#xff1a;普通等于的二分查找 class Solution { public:bool searchMatrix(vector<vector<int>>& matrix, int target) {t…

websevere服务器从零搭建到上线(三)|IO多路复用小总结和服务器的基础框架

文章目录 epollselect和poll的优缺点epoll的原理以及优势epoll 好的网络服务器设计Reactor模型图解Reactor muduo库的Multiple Reactors模型 epoll select和poll的优缺点 1、单个进程能够监视的文件描述符的数量存在最大限制&#xff0c;通常是1024&#xff0c;当然可以更改数…

STM32快速入门(定时器之输入捕获)

STM32快速入门&#xff08;定时器之输入捕获&#xff09; 前言 本节主要讲解STM32利用通用定时器&#xff0c;在输入引脚出现指定电平跳变时&#xff0c;将CNT的值锁存到CCR寄存器当中&#xff0c;从而计算PWM波形的频率、占空比、脉冲间隔、电平持续时间等。其功能的应用有&…

免费思维13招之七:空间型思维

免费思维13招之七:空间型思维 本篇给你带来的是空间型思维。 空间型思维,具体分为内部空间型思维和外部空间型思维。 什么叫内部空间型思维呢? 内部空间型就是充分利用现有空间或资源为社会提供免费服务,积累人气,增加流量,从而带动消费。 为什么你生意不好?为什么你…

ubuntu中的docker记录(5)——如何使用阿里云的镜像加速配置docker镜像加速器

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 文章目录 前言一、镜像加速器介绍1. 什么是docker镜像加速器&#xff1f;2. 为什么要配置镜像加速器&#xff1f; 二、配置镜像加速器1. 注册阿里云账号2. 注册镜像容器服务3…

C++ int 学习

在C语言中 & 是取地址符号&#xff1b; 在C中有 int& 这样的&#xff0c;这里的&不是取地址符号&#xff0c;而是引用符号&#xff1b; 引用是C对C的一个补充&#xff1b; 变量的引用就是变量的别名&#xff0c;讲的通俗一点就是另外一个名字&#xff1b; a的值…

代码随想录算法训练营第二十七天| LeetCode39. 组合总和、LeetCode40.组合总和II、LeetCode131.分割回文串

#LeetCode 39. Combination Sum #LeetCode 39. 视频讲解&#xff1a;带你学透回溯算法-组合总和&#xff08;对应「leetcode」力扣题目&#xff1a;39.组合总和&#xff09;| 回溯法精讲&#xff01;_哔哩哔哩_bilibili 当建立树的结构的时候&#xff0c;target 可以限制树的深…

Spring Boot 调用外部接口的几种方式

Spring Boot 调用外部接口的几种方式 在微服务架构中&#xff0c;服务间的调用是不可或缺的环节。Spring Boot 为开发者提供了多种方式来实现这一任务&#xff0c;这个文章将为你详细介绍这些方式。 一、使用RestTemplate RestTemplate是 Spring Boot 早期版本中常用的 REST 客…

基于 Spring Boot 博客系统开发(八)

基于 Spring Boot 博客系统开发&#xff08;八&#xff09; 本系统是简易的个人博客系统开发&#xff0c;为了更加熟练地掌握 SprIng Boot 框架及相关技术的使用。&#x1f33f;&#x1f33f;&#x1f33f; 基于 Spring Boot 博客系统开发&#xff08;七&#xff09;&#x1f…

HCIP-Datacom-ARST自选题库_06_排障【28道题】

一、单选题 1.如果面对复杂的网络故障&#xff0c;并经过评估认为短时间内无法完成排障&#xff0c;而此时用户又急需恢复网络的可用性&#xff0c;那么正确的做法是? 告诉用户这是不可能实现的 不通知客户的情况下&#xff0c;直接搭建替代的网络环境 始终尝试排除故障&a…

【Spring】验证 @ServerEndpoint 的类成员变量线程安全

文章目录 前言猜想来源验证方法Controller 的情况ServerEndpoint 的情况 后记 前言 最近有 websocket 的需求。探索 ServerEndpoint 的类成员变量特点。 这里类比 Controller 讨论 ServerEndpoint 类成员变量是否线程安全。 猜想来源 网上的教程大多数都这么展示程序&#…

5.10.6 用于乳腺癌超声图像分类的Vision Transformer

医学超声&#xff08;US&#xff09;成像由于其易用性、低成本和安全性已成为乳腺癌成像的主要方式。卷积神经网络&#xff08;CNN&#xff09;有限的局部感受野限制了他们学习全局上下文信息的能力。利用 ViT 对使用不同增强策略的乳房 US 图像进行分类。 卷积神经网络&#…

LeetCode题练习与总结:二叉树的中序遍历--94

一、题目描述 给定一个二叉树的根节点 root &#xff0c;返回 它的 中序 遍历 。 示例 1&#xff1a; 输入&#xff1a;root [1,null,2,3] 输出&#xff1a;[1,3,2]示例 2&#xff1a; 输入&#xff1a;root [] 输出&#xff1a;[]示例 3&#xff1a; 输入&#xff1a;roo…

C++八股(面试题、手撕题)自用版

目录 面试题&#xff1a; 1. define inline 在编译的哪个阶段 2. const static 3. 子函数返回结构体有什么问题&#xff0c;返回对象调用了哪些函数 4. volatile关键字 5. 编译器基本原理 6. 预处理、编译、汇编、链接以及他们在操作系统上如何运作的 7. 数组和指针&a…

【HCIP学习】BGP对等体组、聚合、路由反射器、联盟、团体属性

一、大规模BGP网络所遇到的问题 BGP对等体众多&#xff0c;配置繁琐&#xff0c;维护管理难度大 BGP路由表庞大&#xff0c;对设备性能提出挑战 IBGP全连接&#xff0c;应用和管理BGP难度增加&#xff0c;邻居数量过多 路由变化频繁&#xff0c;导致路由更新频繁 二、解决大…

【python量化交易】qteasy使用教程07——创建更加复杂的自定义交易策略

创建更加复杂的自定义交易策略 使用交易策略类&#xff0c;创建更复杂的自定义策略开始前的准备工作本节的目标继承Strategy类&#xff0c;创建一个复杂的多因子选股策略策略和回测参数配置&#xff0c;并开始回测 本节回顾 使用交易策略类&#xff0c;创建更复杂的自定义策略 …

mapreduce | 自定义Partition分区(案例2)

1.需求 统计每个手机号消费总金额&#xff0c;按照消费金额降序排序&#xff0c;最终联通、电信、移动分别写入不同的文件。 130、131、132&#xff08;联通&#xff09; 133&#xff08;电信&#xff09; 135、136、137、138、139 &#xff08;移动&#xff09; 手机号,消费记…

MFC编程之设计美丽的对话框

目录 写在前面&#xff1a; Part 1&#xff1a;美美的设计一下计算器的布局 1.描述文字&#xff1a; ​编辑 2.ID&#xff1a; Part 2&#xff1a;美美熟悉一下计算器的工作流程 Part 3&#xff1a;美美设计一下控件功能 1.edit control&#xff1a; 2.相关变量初始化&…