【基础篇】Docker 容器操作 FOUR

news2024/9/17 9:00:41

嘿,小伙伴们!我是小竹笋,一名热爱创作的工程师。在上一篇文章中,我们探讨了 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://www.coloradmin.cn/o/1962145.html

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

相关文章

归并排序 python C C++ 代码及解析

一&#xff0c;概念及其介绍 归并排序&#xff08;Merge sort&#xff09;是建立在归并操作上的一种有效、稳定的排序算法&#xff0c;该算法是采用分治法(Divide and Conquer&#xff09;的一个非常典型的应用。将已有序的子序列合并&#xff0c;得到完全有序的序列&#xff…

商家转账到零钱开通最快捷径

商家转账到零钱存在一定的捷径&#xff0c;这一捷径将放在文章最后。如果商家希望自行开通&#xff0c;可以按照以下步骤进行申请&#xff1a; 1. 确认主体资格&#xff1a;申请主体必须是公司性质&#xff08;有限公司类型&#xff09;&#xff0c;个体工商户暂不支持申请&…

企业级Linux系统防护

一、企业级Linux系统防护概述 一&#xff09;企业级Linux系统安全威胁 企业级Linux系统安全威胁列表 解决的主要安全威胁安全威胁牵涉到的人员及操作文件系统防护避免有意/无意的文件篡改、越权访问&#xff0c;根用户&#xff08;root&#xff09;权限泛滥企业内部用户误操作、…

【Golang 面试 - 基础题】每日 5 题(九)

✍个人博客&#xff1a;Pandaconda-CSDN博客 &#x1f4e3;专栏地址&#xff1a;http://t.csdnimg.cn/UWz06 &#x1f4da;专栏简介&#xff1a;在这个专栏中&#xff0c;我将会分享 Golang 面试中常见的面试题给大家~ ❤️如果有收获的话&#xff0c;欢迎点赞&#x1f44d;收藏…

Linux虚拟化技术KVM

文章目录 虚拟化基础什么是虚拟化虚拟化优势虚拟机虚拟机的主要特征Hypervisor类型类型1&#xff1a;裸金属型类型2&#xff1a;宿主型 KVM概述KVM体系结构KVM模块载入后的系统运行模式KVM集中管理和控制宿主机环境准备 安装KVM工具包libvirt包功能libvirt结构图安装KVM相关包C…

SEO优化 prerender-spa-plugin工具使用 踩坑记录

安装prerender-spa-plugin yarn add prerender-spa-plugin 或 npm install prerender-spa-plugin初始配置 后面记录踩的坑 配置路由 const routes [{path: /,redirect: {path: /HomeView},},{path: /home,redirect: {path: /HomeView},},{ path: /HomeView,component: HomeV…

postgresql密码复杂度验证和有效期

前言 为了数据库安全以及应对等保测评等要求&#xff0c;我们需要设置密码复杂度。我们通过passwordcheck模块实现复杂度检测功能。 启用密码复杂度验证 找到自己安装pg库的配置文件目录&#xff0c;修改postgresql.conf vim postgresql.conf修改如下内容 shared_preload_…

2023版IDEA安装通义灵码屡遭挫败:重复尝试,安装依旧失败

目录 背景: 过程: 第一步: 第二步: 第三步: 安装成功: 总结: 通义灵码的优点: 背景: 小编使用的是2023版本IDEA&#xff0c;在安装通义灵码的时候出现了一件很让人头痛的问题&#xff0c;我在IEDA中的插件中心里面去下载&#xff0c;但是当我我安装的进度条加载完成之…

命令行创建git仓库

方法1&#xff1a;初始化自己的仓库 git init创建完成之后可以用ls -a查看是否存在.git文件 如果不想要git仓库&#xff0c;可以使用rm -rf .git删除仓库 方法2&#xff1a;克隆别人的仓库 git clone [http][http]是仓库网址 总体流程 可以看到文件分为四种状态&#xff0c…

windows无法打开添加打印机原因分析及解决方法

在日常办公和生活中&#xff0c;打印机是不可或缺的重要设备。然而&#xff0c;有时在添加打印机的过程中&#xff0c;经常会遇各种问题。今天有个小伙伴问我windows无法打开添加打印机怎么回事&#xff1f;今天就教大家windows无法打开添加打印机原因分析及解决方法。 添加打打…

氧传感器在码头油气回收船岸安全装置中的重要作用

随着全球对环境保护和安全生产要求的日益提升&#xff0c;石化码头的油气回收问题已成为行业关注的焦点。在汽油、航煤、苯、对二甲苯等油品和化学品的装船过程中&#xff0c;大量油气挥发不仅加剧了大气污染&#xff0c;还潜藏着对人体健康的严重威胁。因此&#xff0c;推广和…

芋道以开源之名行下作之事 恬不知耻 标榜自己开源 公开源码+sql 不用再加入知识星球

资源 链接: https://pan.baidu.com/s/1TeuxbAUfLQ5_BqMBF1kniQ?pwdcqud 提 取码: cqud 依次为后端、补充版的sql、前端 此文档内安装部署等一应俱全

天气预报的爬虫内容打印并存储用户操作

系统名称&#xff1a; 基于网络爬虫技术的天气数据查询系统文档作者&#xff1a;清馨创作时间&#xff1a;2024-7-29最新修改时间&#xff1a;2024-7-29最新版本号&#xff1a; 1.0 1.背景描述 该系统将基于目前比较流行的网络爬虫技术&#xff0c;对网站上&#xff08;NowAPI…

数据结构之八大排序(上)

找往期文章包括但不限于本期文章中不懂的知识点&#xff1a; 个人主页&#xff1a;我要学编程(ಥ_ಥ)-CSDN博客 所属专栏&#xff1a;数据结构&#xff08;Java版&#xff09; 目录 排序的相关介绍 直接插入排序 希尔排序&#xff08;缩小增量排序&#xff09; 选择排序 …

Datawhale AI夏令营 AI+逻辑推理 Task2总结

Datawhale AI夏令营 AI逻辑推理 Task2总结 一、大语言模型解题方案介绍 1.1 大模型推理介绍 ​ 推理是建立在训练完成的基础上&#xff0c;将训练好的模型应用于新的、未见过的数据&#xff0c;模型利用先前学到的规律进行预测、分类和生成新内容&#xff0c;使得AI在实际应…

【Linux】3.Linux 指令大揭秘:常见八个指令的妙用(下)

欢迎来到 CILMY23 的博客 &#x1f3c6;本篇主题为&#xff1a;Linux 指令大揭秘&#xff1a;常见八个指令的妙用&#xff08;下&#xff09; &#x1f3c6;个人主页&#xff1a;CILMY23-CSDN博客 &#x1f3c6;系列专栏&#xff1a;Python | C | C语言 | 数据结构与算法 | …

华为机试HJ76尼科彻斯定理

华为机试HJ76尼科彻斯定理 题目&#xff1a; 想法&#xff1a; 从题目可以找到规律&#xff0c;输出的第一个奇数为 ( 当前输入数值 − 1 ) 当前输入数值 1 (当前输入数值-1)当前输入数值1 (当前输入数值−1)当前输入数值1&#xff0c;输出是连续的输入数值个数个奇数&#…

资金管理平台 -SAP创建凭证测试程序及增强!

文章目录 主要程序创建程序程序 代码解析变量定义抬头和项目初始值表头赋值调用BAPI其他的子例程 核心内表增强部分LFACIF5D程序FI_DOCUMENT_CHECK完整程序 BADI增强 主要程序 创建程序 程序 &---------------------------------------------------------------------* *…

2.Redis安装

1.安装需要的依赖 因为是c语言编写的&#xff0c;所以需要gcc依赖。 yum install -y gcc tcl 这一步可能会遇到的问题解决方案参照博文地址&#xff1a; yum 报错&#xff1a;Could not retrieve mirrorlist http://mirrorlist.centos.org_yum install could not retrieve mi…

花几千上万学习Java,真没必要!(三十五)

1、Map&#xff1a; Map接口的基本且常用的操作&#xff0c;用于管理键值对集合。 V put(K key, V value) 作用&#xff1a;向映射中添加一个键值对。 参数&#xff1a;K key 是键的类型&#xff0c;V value 是与键关联的值。 返回值&#xff1a;如果映射以前包含该键的映射关…