【基础篇】Docker 容器操作 FOUR

嘿,小伙伴们!我是小竹笋,一名热爱创作的工程师。在上一篇文章中,我们探讨了 Docker 镜像管理的相关知识。今天,让我们一起深入了解一下 Docker 容器的操作吧!

📦 运行、停止和删除容器

Docker 容器就像是虚拟化的“乐高积木”,你可以轻松地构建、运行和销毁它们。下面我们来看看如何管理这些容器。

  1.  运行容器: 使用 docker run 命令来启动一个容器。

    • • 示例: docker run -d -p 8080:80 nginx (这里 -d 表示后台运行,-p 8080:80 表示将容器内的 80 端口映射到主机的 8080 端口)

    • • 注意事项: 确保端口未被其他服务占用,否则可能会导致端口冲突。

  2. 停止容器: 使用 docker stop 命令来优雅地停止一个容器。

    • • 示例: docker stop mynginxcontainer

    • • 注意事项: 如果容器长时间不响应,可能需要使用 docker kill 强制停止。

  3. 强制停止容器: 如果容器没有响应,可以使用 docker kill 命令强行终止。

    • • 示例: docker kill mynginxcontainer

    • • 注意事项: 强制停止可能会导致数据丢失,谨慎使用。

  4. 删除容器: 使用 docker rm 命令来移除一个已停止的容器。

    • • 示例: docker rm mynginxcontainer

    • • 注意事项: 如果容器仍在运行,需要先停止再删除。

  5. 查看容器: 使用 docker ps 或 docker container ls 命令来查看正在运行的容器。

    • • 示例: docker ps

    • • 注意事项: 也可以使用 docker ps -a 查看所有容器(包括已停止的)

图片

📡 容器网络配置

在 Docker 中,容器默认在一个隔离的网络环境中运行,但我们可以配置它们之间的网络连接。

  1. 查看网络: 使用 docker network ls 命令来查看所有可用的网络。

    • • 示例: docker network ls

  2.  创建网络: 使用 docker network create 命令来创建一个自定义网络。

    • • 示例: docker network create mynetwork

    • • 注意事项: 可以为网络指定不同的驱动,例如 bridge、overlay 或 host 等。

  3. 连接网络: 使用 --network 或 -net 选项在运行容器时指定网络。

    • • 示例: docker run -d --name mywebserver --network mynetwork nginx

    • • 注意事项: 确保容器使用正确的网络配置。

  4. 查看容器网络信息: 使用 docker inspect 命令来查看容器的详细网络信息。

    • • 示例: docker inspect mywebserver

    • • 注意事项: 注意检查容器的 IP 地址和网关信息。

  5. 连接容器: 使用 --link 选项将两个容器连接起来。

    • • 示例: docker run -d --name mydb --link mywebserver:webserver mysql

    • • 注意事项: 使用 --link 选项时,容器之间可以通过容器名进行通信。

💾 数据持久化与数据卷

Docker 容器是无状态的,这意味着一旦容器被删除,其中的数据也会丢失。为了实现数据的持久化,我们需要使用数据卷。

  1. 创建数据卷: 使用 docker volume create 命令来创建一个数据卷。

    • • 示例: docker volume create myvolume

    • • 注意事项: 数据卷默认存储在宿主机上,可以选择自定义存储位置。

  2. 挂载数据卷: 使用 -v 或 --mount 选项在运行容器时挂载数据卷。

    • • 示例: docker run -d -v myvolume:/var/www/html nginx

    • • 注意事项: 确保数据卷的路径正确无误。

  3. 查看数据卷: 使用 docker volume ls 命令来查看所有数据卷。

    • • 示例: docker volume ls

  4. 管理数据卷: 使用 docker volume rm 命令来删除一个数据卷。

    • • 示例: docker volume rm myvolume

    • • 注意事项: 删除数据卷前确保数据已备份。

  5. 数据卷容器: 使用数据卷容器来实现数据的持久化。数据卷容器是一个专门用于提供数据卷的容器。

    • • 示例:

      docker run -d --name datavolumecontainer -v /datavolume mybaseimage true
      docker run -d --name someothercontainer --volumes-from datavolumecontainer myotherimage
📈 日志管理和健康检查

容器的日志可以帮助我们追踪容器的运行情况,而健康检查则确保容器处于正常运行状态。

  1. 查看容器日志: 使用 docker logs 命令来查看容器的日志。

    • • 示例: docker logs mynginxcontainer

    • • 注意事项: 可以使用 -f 选项实时跟踪日志输出。

  2. 配置日志驱动: 可以使用 --log-driver 选项来指定日志驱动程序。

    • • 示例: docker run --log-driver=json-file --log-opt max-size=1m nginx

    • • 注意事项: 不同的日志驱动适用于不同的场景。

  3. 健康检查: 在 Dockerfile 中使用 HEALTHCHECK 指令来定义健康检查命令。

    • • 示例: HEALTHCHECK --interval=30s --timeout=3s CMD curl --fail http://localhost/ || exit 1

    • • 注意事项: 确保健康检查命令能够准确反映容器的状态。

🛠️ 实战演练:创建一个简单的 Nginx 容器
# 创建一个自定义网络
docker network create mynetwork# 启动一个 Nginx 容器,并连接到自定义网络
docker run -d --name mynginx --network mynetwork nginx# 查看容器的网络配置
docker inspect mynginx# 启动另一个容器,并连接到同一个网络
docker run -d --name myapp --network mynetwork -p 8080:80 alpine tail -f /dev/null# 通过容器名获取 IP 地址
docker inspect --format '{{range.NetworkSettings.Networks}}{{.IPAddress}}{{end}}' mynginx# 使用 Nginx 的 IP 地址访问它
curl http://<nginx-ip>:80


接下来的一篇文章里,我们将深入探讨 Docker网络。敬请期待

【基础篇】Docker网络 FIVE 

下期预告:

  • 网络模式:桥接、主机、无网络和自定义网络

  • 网络隔离与通信

  • DNS 解析与端口映射

  • Docker Compose 用于多容器网络


参考资料:

  • Docker 官方网站:

  • https://www.docker.com/

  • Docker 官方文档 GitHub 仓库:

  • https://github.com/docker/docker.github.io

  • Docker 中文社区翻译项目:

  • https://github.com/docker-cn/docker-cn


📢 读者互动: 你是否已经在工作中使用了 Docker?欢迎在评论区分享你的使用体验或遇到的问题!

如果你觉得这篇文章对你有所帮助,请给我点个赞或者转发给你的朋友吧!👍


推荐阅读:

  • • Kubernetes 中文官网:

  •          https://kubernetes.p2hp.com/#google_vignette           


往期回顾:

• 【基础篇】Docker 概览 ONE

• 【基础篇】Docker 架构与组件 TWO

•   🌟 微信扫码关注JAVA和人工智能。一起学习更多有趣的技术知识吧!

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

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

相关文章

一个私有化的中文笔记工具个人知识库,极空间Docker部署中文版『Trilium Notes』

一个私有化的中文笔记工具&个人知识库&#xff0c;极空间Docker部署中文版『Trilium Notes』 哈喽小伙伴们好&#xff0c;我是Stark-C~ 最近被很多小伙伴问到NAS上的笔记工具&#xff0c;虽说之前也出过Memos&#xff0c;刚开始用起来还不错&#xff0c;但是用了一段时间…

【JKI SMO】框架讲解(六)

接JKI SMO 框架讲解&#xff08;五&#xff09;&#xff0c;现在对代码进行一个扩展&#xff0c;当前代码仅有一路电压采集&#xff0c;现在需要扩展一路电流采集通道。 下面是对应的步骤&#xff1a; 1.打开项目&#xff0c;在工具里打开SMO Editor。 2.之前创建的SMO会自动加…

快速收集地图商户信息_百度|高德|腾讯|google

数字化营销中企业名录和商家电话号码的采集已成为营销人员日常工作的首要一环。地图平台以其海量的商家信息和实时更新的特性&#xff0c;成为我们获取数据的宝贵渠道。如何快速利用百度、高德、腾讯这三大地图平台高效采集商家联系方式是每个营销人员的必备技能。 我们整理了…

记录某次“有趣的“挖矿木马排查

挖矿木马是什么&#xff1f; 挖矿木马是一种恶意软件&#xff0c;它在用户不知情或未经同意的情况下&#xff0c;利用受害者的计算机资源进行加密货币挖矿。这类软件通过执行大量运算来挖掘数字货币&#xff0c;如比特币或门罗币等。挖矿木马通常通过漏洞利用、弱口令爆破或非…

微软蓝屏事件:全球网络安全与系统稳定性的警示

文章目录 每日一句正能量前言探讨软件更新流程中的风险管理和质量控制机制软件更新的风险风险管理策略质量控制措施测试流程缺陷识别实施质量控制结论 提供预防类似大规模故障的最佳方案或应急响应对策设计冗余系统实施灾难恢复计划建立高可用架构应急响应对策利用自动化工具和…

豆瓣9.9分!大名鼎鼎的深度学习入门书“鱼书”更新第二版了!带你深刻理解神经网络!

大家应该都知道这本非常有名的著作吧&#xff1a;《深度学习入门&#xff0c;基于python的理论与实现》。 这是更新的第二版&#xff0c;是由日本作者斋藤康毅所著的一本关于深度学习的书籍。这本书的出版社是人民邮电出版社&#xff0c;出品方是图灵教育。这本书的原名是“ゼロ…

vue给数组对象赋值改变对象里面的数据,数据没有更新this.$set

替换数组startTime的值&#xff1a; 原数据 this.serviceTimeList.push({serviceTimeName: 服务时间段,startTime: this.startTime,endTime: this.endTime,currentDateStart: this.currentDate,currentDateEnd: this.currentDate}) this.$set(this.array, index, newValue); …

Day12--Servlet实现前后端交互(案例:学生信息管理系统登录页面)

&#xff08;在一个完整的项目架构中&#xff0c;servlet的角色和位置&#xff09; Servlet、GenericServlet和HttpServlet三者之间的关系是Java Web开发中的一个重要概念&#xff0c;它们共同构成了基于Java的服务器端程序的基础。以下是具体分析&#xff1a; 1. Servlet接口…

AI技术革命对未来就业的影响

一、引言 AI技术革命带来的就业结构变化是双面的&#xff0c;既存在着挑战也蕴含着机遇。过去的几次技术革命例如工业革命和信息技术革命都对就业结构产生了深刻的影响&#xff0c;使一些工作消失&#xff0c;也催生了许多新的工作类型。当前和未来的AI技术发展也必将推动类似…

【HadoopShuffle原理剖析】基础篇二

Shuffle原理剖析 Shuffle&#xff0c;是指对Map输出结果进行分区、排序、合并等处理并交给Reduce的过程。分为Map端的操作和Reduce端的操作。 Shuffle过程 Map端的Shuffle Map的输出结果首先被缓存到内存&#xff0c;当缓存区容量到达80%&#xff08;缓冲区默认100MB&#xff…

基于FPGA的数字信号处理(20)--半加器和全减器

1、前言 既然有半加器和全加器&#xff0c;那自然也有半减器和全减器了。尽管在电路中减法的实现基本都是 补码 加法 的形式&#xff0c;但是正所谓技多不压身&#xff0c;了解一下半减器和全减器还是有一定作用的&#xff0c;至少能扩宽知识面嘛。 2、半减器 最简单的减法器叫…

RFID分体式天线如何选购?

分体式读写器天线具有可与RFID读写器分离部署&#xff0c;在远距离读写、集成应用等场景下拥有十分广泛的应用。下面我们就跟大家一起来了解一下&#xff0c;分体式天线选购的要点有哪些? 分体式天线的选购要点主要包括以下几个方面&#xff1a; 一、明确使用需求 应用场景…

机器学习(五) -- 无监督学习(2) --降维2

系列文章目录及链接 上篇&#xff1a;机器学习&#xff08;五&#xff09; -- 无监督学习&#xff08;2&#xff09; --降维1 下篇&#xff1a; 前言 tips&#xff1a;标题前有“***”的内容为补充内容&#xff0c;是给好奇心重的宝宝看的&#xff0c;可自行跳过。文章内容被…

仪器内部压力不稳定的原因分析

仪器的液路压力波动可能由多种原因引起&#xff0c;具体分析如下&#xff1a; 气泡的影响&#xff1a; 流动相未平衡或柱箱温度不稳定时&#xff0c;容易在色谱柱内产生气泡。泵作用下&#xff0c;流动相中的空气可能会分离出来&#xff0c;留在泵体内排不出去。使用梯度程序时…

vmware 设置ip

要用xshell连接vmware虚拟机&#xff0c;要指定虚拟机的ip地址。 进入虚拟机&#xff0c;用ifconfig命令&#xff0c;看下ip 试了下连接192.168.122.1 连接不上&#xff0c;需要重新设置一个。 1&#xff0c;查看电脑的IP地址 winr,输入cmd&#xff0c;再输入ipconfig 看下本…

Java刷题: 丑数判断

题目 丑数 就是只包含质因数 2、3 和 5 的正整数。 给你一个整数 n &#xff0c;请你判断 n 是否为 丑数 。如果是&#xff0c;返回 true &#xff1b;否则&#xff0c;返回 false 。 解题思路 我觉得刷题是为了扩宽思考的广度。看到这题的时候&#xff0c;我的大脑是发懵的…

letcode - string

翻转字符串 344. 反转字符串 - 力扣&#xff08;LeetCode&#xff09;https://leetcode.cn/problems/reverse-string/ class Solution { public:void reverseString(vector<char>& s) {reverse(s.begin(),s.end());//直接上逆置接口} }; 函数签名: void reverseStr…

redis的代码开发

redis是什么? 前提:官网地址https://redis.io 1.Redis是一个开源的,key,value格式的,内存型数据结构存储系统;它可用作数据库、缓存和消息中间件。 value支持多种类型的数据结构如strings, hashes, lists, sets, sorted sets with range queries, bitmaps, hyperloglo…

VMware虚拟机安装及虚拟机下安装ubuntu(附安装包)

VMware虚拟机安装及虚拟机下安装ubuntu 0 前期准备1 VMware安装2 VMware虚拟机下安装ubuntu2.1 配置虚拟机2.2 安装虚拟机ubuntu 3 在虚拟机中卸载Ubuntu参考 0 前期准备 1、VMware Wworkstation Pro安装包下载 官网-添加链接描述 百度网盘分享&#xff1a; 链接: VMware 提取…

【实践出真知】使用Docusaurus将md文档组织起来就是一个网站(写API文档,写教程、写日记、写博客的有福了)

文章目录 前言一、Docusaurus 是什么&#xff1f;二、一键生成网站框架并预览1. 系统需求2. 脚手架项目网站&#xff08;一键生成网站框架&#xff09;3. 生成的目录内容4. 网站运行与展示 总结 前言 前段时间&#xff0c;学习Flet&#xff0c;访问到Flet中文网&#xff0c;被…