Docker入门指南:Docker容器的使用(三)

🍀 前言

博客地址:

  • CSDN:https://blog.csdn.net/powerbiubiu

👋 简介

在本章节中,将深入探讨 Docker 容器的概念,以及容器的使用。

📖 正文

1 什么是容器

1.1 Docker容器的介绍

Docker 容器是 Docker 平台上运行的轻量级、独立且可移植的软件包,用于打包应用程序及其所有依赖项、配置和运行时环境。容器化技术使得应用程序能够在一个隔离的环境中运行,而不会受到底层操作系统和硬件的影响。容器是从 Docker 镜像创建的实例,类似于对象是从类创建的实例。每个容器都是相互隔离的、独立运行的进程,具有自己的文件系统、进程空间和网络接口。容器之间相互隔离,不会相互干扰,因此可以在同一主机上同时运行多个容器,每个容器都可以承载一个独立的应用程序。

1.2 Docker容器的特点
  • 可移植性:容器可以在任何支持 Docker 的平台上运行,无论是开发环境、测试环境还是生产环境。容器在不同的环境中具有相同的行为,因此可以轻松地将应用程序从一个环境迁移到另一个环境。
  • 隔离性:容器使用 Linux 内核的命名空间和控制组特性来实现进程隔离、文件系统隔离、网络隔离和资源隔离。这使得容器之间相互隔离,不会相互干扰,提高了安全性和可靠性。
  • 可管理性:容器可以通过 Docker CLI 或图形界面工具进行管理。可以方便地创建、启动、停止、重启和删除容器,以及查看和监控容器的状态和日志。
  • 可复制性:容器可以通过 Docker 镜像进行复制和分发,从而实现应用程序的快速部署和交付。镜像定义了容器所需的所有文件和配置,因此可以轻松地创建多个相同的容器实例。

2 启动容器

docker run IMAGE:TAG
参数说明:

  • IMAGE:镜像名称;
  • TAG:标签,镜像版本号。

以启动Jenkins为例
docker run -d -u root -p 8080:8080 -p 50000:50000 -v \e\my_jenkins\jenkins_home:/docker/jenkins --name myJenkins jenkins/jenkins:lts-jdk17
image.png
参数说明:

  • docker run:允许Docker容器命令;
  • -d:在后台运行容器;
  • -u root:以root用户身份运行容器,通常用于确保容器内的进程具有足够的权限执行需要的操作;
  • -p 8080:8080:将容器内部的 8080 端口映射到宿主机的 8080 端口。Jenkins 服务通常在 8080 端口上运行;
  • -p 50000:50000: 将容器内部的 50000 端口映射到宿主机的 50000 端口。这是 Jenkins 使用的用于构建和执行任务的端口。
  • -v \e\my_jenkins\jenkins_home:/docker/jenkins:将宿主机上的目录D:\my_jenkins\jenkins_home挂载到容器内的/docker/jenkins目录,这样可以确保Jenkins数据和配置持久化,即使容器被删除,数据仍然保留在宿主机上,
  • --name myJenkins:给容器指定一个名称
  • jenkins/jenkins:lts-jdk17:指定要运行的 Docker 镜像的名称和版本。在这里,使用的是 Jenkins 的 LTS 版本,内部使用的 JDK 17。

3 查看容器

  • docker ps : 查看正在运行中的容器;
  • docker ps -a : 查看所有容器,包括运行中的、已经停止运行的容器。

通过命令查看,启动的jenkins已经成功了
image.png
字段说明:

  • CONTAINER ID: 容器 ID;
  • IMAGE:创建容器时使用的镜像;
  • COMMAND:容器最后运行的命令;
  • CREATED:容器创建时间;
  • STATUS: 容器状态;
  • PORTS:端口信息;
  • NAMES:容器名:和容器 ID 一样,可以标识容器的唯一性,同一台宿主机上不允许有同名容器存在,否则会冲。

4 进入容器

docker exec -it [container ID or NAMES]
通过容器ID或者容器名称进入
比如,根据容器ID进入mysql的容器docker exec -it 0d9c8040112a /bin/bashmysql -uroot -p登录mysqlimage.png
通过使用exit退出mysql,回到mysql容器后,再通过exit退出mysql容器
image.png

5 停止容器

5.1 正常停止

docker container stop [container ID or NAMES]
简写模式,可省略关键字container
docker stop [container ID or NAMES]

5.2 强制停止

docker container kill [container ID or NAMES]
简写模式,可省略关键字 container )
docker kill [container ID or NAMES]

5.3 运行已停止的容器

docker container strat [container ID or NAMES]
简写模式,可省略关键字 container )
docker strat [container ID or NAMES]

6 重启容器

docker restart [container ID or NAMES]
不管容器是否启动,直接重启
参数:

  • -t:表示限时多少秒关闭容器,然后重启,如:docker restart 330635813b68

7 导出导入容器

7.1 导出容器

docker export
比如导出Jenkins容器,docker export 330635813b68 > jenkins.tar
image.png

7.2 导入容器

docker import
将导出的Jenkins容器,通过cat jenkins.tar | docker import - test/jenkins:v1.0进行导入image.png

8 删除容器

docker container rm [container ID or NAMES]
简写模式,可省略关键字 container
docker rm [container ID or NAMES]
如果需要删除所有已经停止的容器,可以通过
docker container prune进行删除

✏ 总结

Docker 容器是现代应用程序交付和部署的一种重要方式。它们提供了更高效、可移植和可扩展的应用程序运行环境,使得开发者能够更快速地构建、交付和运行应用程序,同时简化了应用程序的依赖管理和环境配置。

💖 欢迎我的关注公众号

在这里插入图片描述

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

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

相关文章

使用Gin编写Web API项目并自动化文档

最近需要使用Go写一个Web API项目,可以使用Beego与Gin来写此类项目,前文使用Beego创建API项目并自动化文档介绍了使用Beego来创建的Web API项目并自动化文档的方法。本文就介绍一下使用Gin来编写Web API项目并自动化文档。 一、创建项目 在创建Beego项…

栈与队列OJ题【括号适配问题】【用队列实现栈】【用栈实现队列】【设计循环队列】

一.有效的括号 ​​​OJ链接 这一道题我们就可以用栈来解决: 不了解栈的可以看我的上一篇博客。 typedef char STDataType; //用数组来实现栈 typedef struct stack {STDataType* a;int capacity;int top; }ST; void STInit(ST* pst) {assert(pst);pst->a NU…

基于SSM的理发店会员管理系统的设计和实现(有报告)。Javaee项目。ssm项目。

演示视频: 基于SSM的理发店会员管理系统的设计和实现(有报告)。Javaee项目。ssm项目。 项目介绍: 采用M(model)V(view)C(controller)三层体系结构&#xff0…

泛微E9开发 添加多个多选框,实现单选框的效果

利用多个多选框实现单选框的效果 1、功能背景2、展示效果3、实现效果 1、功能背景 如下图所示,在表单中新增四个“选择框-复选框”类型的字段,并且设置其中的选项,每个多选框都只有一个选项,通过代码块实现单选框的效果 1.显示模…

ICode国际青少年编程竞赛- Python-5级训练场-综合练习7

ICode国际青少年编程竞赛- Python-5级训练场-综合练习7 1、 for i in range(6):while not Flyer[i].disappear():wait()Spaceship.step(2 2 * i)Spaceship.turnRight()2、 def get(a, b, c, d):for i in (a, b, c, d):Dev.step(i)if i ! 0:Dev.turnRight() get(3, 3, 5, -4)…

【CSP CCF记录】202206-2 寻宝!大冒险!

题目 过程 思路 1.绿化图坐标边界太大,不能直接用矩阵表示,可以用一个二维数组存储有树坐标的x,y值。 定义两个数组:绿化图arr[1005][2]、宝藏图数组b[55][55] 2. 依据条件,从绿化图中第一棵树的坐标开始区域遍历。统计绿化图…

spring cloud微服务example 入门第一个例子

新建Maven工程 删除src目录&#xff0c;修改poml.xml <modelVersion>4.0.0</modelVersion><groupId>org.example</groupId> <artifactId>SpringCloud_example</artifactId> <version>1.0-SNAPSHOT</version> <packaging&g…

物联网五层架构分析

物联网五层架构分析 随着科技的迅速发展&#xff0c;物联网&#xff08;IoT&#xff09;作为日常生活中不可或缺的一部分&#xff0c;已融入人们的生活和工作中。物联网五层架构&#xff0c;包括感知层、网络层、数据层、应用层和业务层&#xff0c;扮演着关键的角色。 感知层 …

WIFI模块的AT指令联网数据交互--第十天

1.1.蓝牙&#xff0c;ESP-01s&#xff0c;Zigbee, NB-Iot等通信模块都是基于AT指令的设计 初始配置和验证 ESP-01s出厂波特率正常是115200, 注意&#xff1a;AT指令&#xff0c;控制类都要加回车&#xff0c;数据传输时不加回车 1.2.上电后&#xff0c;通过串口输出一串系统…

【运维】如何安装ubuntu-24.04? 如何分区?

如何安装ubuntu-24.04&#xff1f;如何分区 经过一系列折腾&#xff0c;我总结了这几点&#xff1a; &#xff08;1&#xff09;在BIOS启动设置里&#xff0c;如果是GPT的硬盘格式&#xff0c;那么对应的就是UEFI的启动方式&#xff1b;如果是MBR的硬盘格式&#xff0c;那么对…

【Spring】GoF 之代理模式

一、代理模式 在 Java 程序中的代理模式的作用&#xff1a; 当一个对象需要受到保护的时候&#xff0c;可以考虑使用代理对象去完成某个行为 需要给某个对象的功能进行功能增强的时候&#xff0c;可以考虑找一个代理进行增强 A 对象无法和 B 对象直接交互时&#xff0c;也可以…

C# 使用Queue高效检索树行数据符合条件的数据,并返回完整树形数据示例

最近有项目需要加载大型树数据&#xff0c;数据大概3W条 后端使用C# NET6 前端使用Vue3 elementuiplus 虚拟tree 》解决大型树数据加载 遇到的问题是后端在检索数据时&#xff0c;要返回匹配数据的完整树目录 1.因为单条数据没有存放完整路径&#xff0c;需要通过父级ID逐…

【ARM Cortex-M 系列 2.1 -- Cortex-M7 Debug system registers】

请阅读【嵌入式开发学习必备专栏】 文章目录 Debug system registers中断控制状态寄存器&#xff08;ICSR&#xff09;Debug Halting Control and Status Register, DHCSR Debug 寄存器DCRSR与DCRDRCPU 寄存器读操作CPU 寄存器写操作CPU 寄存器选择CPU 寄存器读写示例 调试故障…

Ubuntu安装VScode

Ubuntu安装VScode 前言&#xff1a; 1、Ubuntu安装VScode比较方便 2、我更喜欢source insight 1、获取到linux版本的VScode安装包 VSCode 下载地址是&#xff1a;https://code.visualstudio.com/ 2、得到安装包 3、复制到ubuntu中&#xff0c;使用命令安装 sudo dpkg -i cod…

安卓短视频一键搬运软件_V1.5.2 高级版

短视频一键搬运app是一款非常实用的视频处理软件&#xff0c;拥有各种各样的视频处理功能&#xff0c;可以帮助用户进行视频的多项处理&#xff0c;首先用户可以在这里为视频去除水印&#xff0c;打开视频文件过后&#xff0c;再把视频里面的水印内容框选出来&#xff0c;这样就…

第三课,python基础语法(二),基本算术运算符、3种数据类型、变量命名规则

一&#xff0c;基本算术运算 数学中&#xff1a;&#xff0c;-&#xff0c;&#xff0c; *小练习 请在程序中&#xff0c;定义如下变量&#xff1a; 钱包余额(变量名&#xff1a;money)&#xff0c;初始余额50 请通过程序计算&#xff0c;再购买了&#xff1a; 冰淇淋10元可…

【C语言/数据结构】栈:从概念到两种存储结构的实现

目录 一、栈的概念 二、栈的两种实现方式 1.顺序表实现栈 2.链表实现栈 三、栈的顺序存储结构及其实现 1.栈的声明 2.栈的初始化 3.栈的销毁 4.栈的压栈 5.栈的弹栈 6.栈的判空 7.返回栈顶元素 8.返回栈的长度 四、栈的链式存储结构及其实现 1.栈的声明 2.栈的…

[C++核心编程-03]----C++函数提高学习

目录 引言 正文 01-函数提升简介 02-函数默认参数 03-函数占位参数 04-函数重载 05-函数重载的注意事项 总结 引言 函数在C编程中扮演着至关重要的角色&#xff0c;通过合理使用函数&#xff0c;可以提高程序的结构性、灵活性、可读性和维护性。因此&…

汇昌联信:拼多多入驻条件是哪些?

在电商领域&#xff0c;拼多多以其独特的团购模式迅速崛起&#xff0c;吸引了众多商家的目光。想要在拼多多上开店&#xff0c;了解其入驻条件是必不可少的第一步。下面将详细解读拼多多的入驻条件&#xff0c;帮助有意加入的商家们做好准备。 一、企业资质要求 想要成功入驻拼…

STM32(GPIO)

GPIO简介 GPIO&#xff08;General Purpose Input Output&#xff09;通用输入输出口 引脚电平&#xff1a;0V~3.3V&#xff0c;部分引脚可容忍5V 输出模式下可控制端口输出高低电平&#xff0c;用以驱动LED、控制蜂鸣器、模拟通信协议输出时序等 输入模式下可读取端口的高低电…