当前位置:首页 > 技术 > 正文内容

Docker 容器化技术核心概念与常用操作指南

访客 技术 2026年9月9日 13

Docker 是一个开源的应用容器引擎,它允许开发者将应用程序及其所有依赖项打包到一个标准化的单元(即容器)中。通过这种方式,应用可以脱离底层基础架构的差异,在任何安装了 Docker 的 Linux 或 Windows 系统上一致地运行。与传统虚拟机相比,Docker 利用沙箱机制实现进程级的隔离,具有更高的资源利用率和更快的启动速度。

Docker 核心组件架构

  • Docker Host(宿主机): 实际运行 Docker 守护进程(Daemon)和容器的物理机或虚拟机。
  • Docker Client(客户端): 用户与 Docker 交互的接口,通过命令行工具向守护进程发送指令。
  • Docker Registry(仓库): 集中存放镜像文件的场所,最常用的是官方的 Docker Hub。
  • Docker Image(镜像): 一个只读的模板,包含了运行应用程序所需的文件系统、代码、库和配置。
  • Docker Container(容器): 镜像运行时的实体。容器可以被创建、启动、停止和删除,每个容器之间相互隔离。

在 CentOS 环境下安装 Docker

在安装之前,需要确保 Linux 内核版本在 3.10 及以上。可以通过以下命令查看:

uname -r

执行以下步骤安装并启动 Docker 服务:

# 使用 yum 安装 docker 软件包
sudo yum install -y docker

# 启动 Docker 服务进程
sudo systemctl start docker

# 设置开机自启动
sudo systemctl enable docker

# 验证安装版本
docker version

镜像管理常用指令

镜像操作是使用 Docker 的第一步,涉及搜索、下载、查看和删除等流程。

1. 搜索远程镜像

# 搜索 Nginx 相关镜像
docker search nginx

2. 拉取镜像到本地

# 下载指定版本的镜像,如果不加 tag 则默认下载 latest
docker pull nginx:stable-alpine

3. 列出本地镜像

docker images

4. 移除本地镜像

# 根据镜像 ID 或名称删除
docker rmi nginx:stable-alpine

容器生命周期管理

容器是基于镜像生成的运行实例,以下是常见的操作命令。

1. 创建并启动容器

# 示例:后台启动一个名为 my-web 的 Nginx 容器,并将宿主机的 8080 端口映射到容器的 80 端口
docker run --name my-web -p 8080:80 -d nginx
  • --name: 为容器指定一个易于识别的名称。
  • -d: 后台模式运行(Detached mode)。
  • -p: 端口映射,格式为 宿主机端口:容器内部端口。

2. 查看容器状态

# 查看当前正在运行的容器
docker ps

# 查看所有容器(包括已停止的)
docker ps -a

3. 停止与启动已存在的容器

# 停止容器
docker stop my-web

# 启动已停止的容器
docker start my-web

4. 移除容器

# 注意:删除容器前通常需要先停止它
docker rm my-web

5. 访问容器日志

# 实时查看容器的输出日志
docker logs -f my-web

相关文章

Linux crontab 详解

1) crontab 是什么cron 是 Linux 的定时任务守护进程;crontab 是用来编辑/查看“按时间周期执行命令”的表(cron table)。常见两类:用户 crontab:每个用户一份(crontab -e 编辑)系统级 crontab / cron.d:可指定执行用户(/etc/crontab、/etc/cron.d/*)2) crontab 时间...

富文本里可以允许的 HTML 属性

一、所有标签默认允许的安全属性(极少)class        (可选)id           (通常建议禁用)title️ 注意:id 容易被滥用做锚点注入,很多系统直接禁用class 允许的话最好只允许固定前缀(如 editor-*)二、a 标签允许属性<a href="" t...

Dom\HTML_NO_DEFAULT_NS 的副作用:自动加闭合标签

在使用Dom\HTMLDocument时,Dom\HTML_NO_DEFAULT_NS 将禁止在解析过程中设置元素的命名空间, 此设置是为了与DOMDocument向后兼容而存在的。当使用它时,已知的一个副作用就是:自动加闭合标签例如 </img> 为什么会这样?当你使用:Dom\HTML_NO_DEFAULT_NS文档会变成 无命名空间模式,此时内部更接近 XML...

Laravel 事件和监听器创建

在 Laravel 中,使用 Artisan 命令创建 Events(事件) 和 Listeners(监听器) 是非常高效的。你可以通过以下几种方式来实现:1. 手动创建单个 Event如果你只想创建一个事件类,可以使用 make:event 命令:Bashphp artisan make:event UserRegistered执行后,文件将生成在 app/Even...

自定义域名解析神器 dnsmasq

什么是 dnsmasq?dnsmasq 是一个轻量级、功能强大的网络服务工具,专为小型和中等规模网络设计。它是一个综合的网络基础设施解决方案[1]。dnsmasq 能做什么?功能说明应用场景DNS 转发与缓存将 DNS 查询转发到上游服务器(ISP、Google DNS 等),并在本地缓存结果加快 DNS 查询速度,减少外部 DNS 流量本地 DNS解析本地网络设备的主机名,无需编辑&n...

PHPStan 有什么用?怎么用?

PHPStan 是一个 PHP 的静态分析工具,在不运行代码的情况下就能帮你发现潜在问题,比如:传错类型(把 string 传给接受 int 的函数)访问不存在的属性 / 方法null 没处理好永远不会执行到的代码数组 key/值类型不一致返回值不符合声明注释和真实类型不匹配它非常适合:想提升代码质量、减少线上 bug、统一团队风格的人(尤其是中大型项目)。一、PHPStan 有什么用(通俗点说)...

发表评论

访客

◎欢迎参与讨论,请在这里发表您的看法和观点。