恒美微站 Logo 恒美微站
  • 首页
  • 关于我们
  • 建站服务
  • 主题模板
  • 案例展示
  • 资讯中心
  • 联系我们

Docker 基础应用与介绍

  • 首页
  • 资讯中心
  • /
  • Docker 基础应用与介绍

相关资讯

Fastboot模式下查看安卓分区信息:从驱动安装到命令实战 2026/8/3 11:23:20
AI算力需求与绿色数据中心技术解析 2026/8/3 11:18:20
游戏角色养成计算器:期望伤害计算与资源规划算法详解 2026/8/3 11:18:20

最新资讯

5大核心功能揭秘:GBFR Logs如何成为《碧蓝幻想:Relink》最强DPS分析工具
Stable Diffusion+MidJourney双轨变现法,资深画师私藏的5个高毛利细分赛道(限前200名领取报价模板)
Matlab在数据处理与信号分析中的高效应用
企业级微服务考勤系统架构设计与实践
Python学习避坑指南:从零基础到项目实战的高效路径规划
数据清洗失效?特征泄露频发?AI量化投资方法常见致命错误,90%新手正在踩坑

今日推荐

无线一体式手持三维扫描仪推荐:摆脱电脑束缚的工业检测新选择
3个让你工作效率翻倍的Umi-OCR实战技巧:免费离线文字识别完全指南
[具身智能-181]:PC+服务器+具身机器人:构建具身智能从仿真到量产的闭环迭代混合架构

本周热门

ncmdumpGUI:一键解锁网易云音乐ncm文件的终极解决方案
分布式配置中心选型实战:Nacos与Consul在创业场景下的对比
MoneyPrinterPlus实战指南:AI视频批量生成与自动化发布完整解决方案

本月精选

如何用DamaiHelper实现演唱会门票的智能自动化抢购:完整技术解决方案指南
第4篇:59 倍性能差距的索引瓶颈定位——一次教科书级的全表扫描调优
终极歌词批量下载神器:5分钟解决离线音乐库歌词同步难题

Docker 基础应用与介绍

发布时间:2026/8/3 11:23:21
Docker 基础应用与介绍 Docker 基础应用Docker 是一个开源的应用容器引擎基于 Go 语言开发。它允许开发者将应用程序及其所有依赖项如代码、运行时、库、环境变量和配置文件等打包到一个轻量级、可移植的“容器”中。这个容器可以在任何安装了 Docker 引擎的 Linux 或 Windows 机器上运行且保证了环境的高度一致性。Docker 的核心优势环境一致性解决“在我的机器上能运行”的问题Docker 将应用及其依赖打包在一起确保了开发、测试和生产环境的绝对一致极大减少了因环境差异导致的 Bug。轻量级与高效与传统虚拟机VM需要模拟完整的操作系统不同Docker 容器共享宿主机的操作系统内核。因此容器体积更小通常为 MB 级别启动速度极快秒级甚至毫秒级且对 CPU 和内存的资源消耗极低。卓越的可移植性“一次构建到处运行”。无论是在你的本地笔记本、公有云服务器还是本地数据中心只要目标机器安装了 Docker就可以无缝运行相同的容器。快速部署与弹性扩展通过 Dockerfile 可以实现镜像构建的自动化。结合 CI/CD持续集成/持续交付流程和 Kubernetes 等编排工具可以实现应用的快速交付和自动化弹性伸缩。隔离性与安全性每个容器都在独立的命名空间和 cgroups 中运行彼此隔离。一个容器的崩溃或资源耗尽通常不会直接影响宿主机或其他容器。docker 与虚拟机的区别Docker 容器虚拟机共享宿主机内核每台虚拟机有自己的内核隔离的是进程视图虚拟化整台计算机启动通常很快需要启动完整操作系统资源开销较小资源开销较大隔离通常弱于虚拟机隔离通常更强Docker 的安装在线安装Ubuntu和Centosdocker 再安装的时候可以使用离线安装或者是在线安装两种方式如果是在线安装的话推荐使用阿里云开源镜像站的安装方法他里面提供了docker的加速镜像源网址https://developer.aliyun.com/mirror/打开docker-ce 网站里面一共有两种安装方式、一种是Ubuntu一种是centos的。openeuler我这里使用的是openeuler操作系统openEuler 官方源中提供了开箱即用的 Docker 及相关组件。直接使用yum安装即可安装命令如下# 更新当前系统的yum 源[rootlocalhost ~]# yum update# 安装 Docker 引擎及常用组件[rootlocalhost ~]# yum install -y docker docker-compose# 查看当前安装docker的版本号[rootlocalhost ~]# docker versionClient: Version:18.09.0 EulerVersion:18.09.0.351 API version:1.39Go version: go1.21.4 Git commit: 6273e58 Built: Wed Apr818:05:592026OS/Arch: linux/amd64 Experimental:falseServer: Engine: Version:18.09.0 EulerVersion:18.09.0.351 API version:1.39(minimum version1.12)Go version: go1.21.4 Git commit: 6273e58 Built: Wed Apr818:05:332026OS/Arch: linux/amd64 Experimental:false# 查看docker进程 是否运行[rootlocalhost ~]# systemctl status docker● docker.service - Docker Application Container Engine Loaded: loaded(/usr/lib/systemd/system/docker.service;enabled;preset: disabled)Active: active(running)since Sun2026-08-0213:44:57 CST;13min ago Docs: https://docs.docker.com Main PID:25944(dockerd)Tasks:21(limit:31996)Memory:38.3M()CGroup: /system.slice/docker.service ├─25944 /usr/bin/dockerd --live-restore └─25952 containerd--config/var/run/docker/containerd/containerd.toml --log-level infodaemon.json文件调试在 Docker 中daemon.json 是 Docker 守护进程Docker Daemon的核心配置文件。通过修改这个文件可以自定义 Docker 的存储路径、日志大小、镜像加速地址、网络配置等。它的默认路径是/etc/docker/daemon.json[rootlocalhost docker]# cat/etc/docker/daemon.json{insecure-registries:[registry.access.redhat.com,quay.io],registry-mirrors:[https://q2gr04ke.mirror.aliyuncs.com,http://hub-mirror.c.163.com,https://docker.mirrors.ustc.edu.cn],bip:192.168.17.1/24,exec-opts:[native.cgroupdriversystemd],live-restore:false,dns:[114.114.114.114,8.8.8.8]}配置项 (Key)值 (Value)作用说明 (Description)insecure-registries[registry.access.redhat.com, quay.io]配置不安全的镜像仓库允许 Docker 通过 HTTP 而非 HTTPS 访问这些指定的私有仓库。registry-mirrors[https://q2gr04ke.mirror.aliyuncs.com, http://hub-mirror.c.163.com, https://docker.mirrors.ustc.edu.cn]配置国内镜像加速器地址加速从 Docker Hub 拉取镜像的速度包含阿里云、网易、中科大源。bip192.168.17.1/24自定义 Docker 默认网桥docker0的 IP 地址和子网掩码用于避免与宿主机或其他网络发生 IP 冲突。exec-opts[native.cgroupdriversystemd]配置容器运行时的 cgroup 驱动。设置为systemd能与操作系统的 systemd 更好地集成是 CentOS/openEuler 等系统的官方推荐配置。live-restorefalse配置 Docker 守护进程重启或停止时的行为。设为false表示当 Docker 服务停止时其管理的容器也会随之停止。dns[114.114.114.114, 8.8.8.8]为容器配置自定义的 DNS 服务器地址解决容器内部无法解析域名的问题配置了国内 114 DNS 和 Google DNS。其中bip的配置表示当前系统生成的docker0的网卡的IP地址。默认是172.17.0.1/16当该网卡使用的IP地址与宿主机的IP地址重复为一个网段时建议将docker0的IP地址进行修改。否则会导致docker容器无法正常使用。重启服务使daemon.json配置生效[rootlocalhost docker]# systemctl daemon-reload[rootlocalhost docker]# systemctl restart dockerJobfordocker.service failed because the control process exited with error code. Seesystemctl status docker.serviceandjournalctl -xeu docker.servicefordetails.注意这里再启动docker的时候报错我们可以使用journalctl -xeu docker.service来查看一下报错的原因是什么journalctl -xeu docker.service ./docker.log把journalctl 输出的日志保存到当前目录的docker.log 文件中tail -n 200 docker.log查看docker.log中最后200行的日志通过日志描述可以看到时我们配置的daemon.json中的live-restore 与 systemd 启动文件docker.service中的命令行参数发生了冲突两个参数重复使用了那我们把daemon.json中的live-restore删除后重新在家启动即可。修改后的配置{insecure-registries:[registry.access.redhat.com,quay.io],registry-mirrors:[https://q2gr04ke.mirror.aliyuncs.com,http://hub-mirror.c.163.com,https://docker.mirrors.ustc.edu.cn],bip:192.168.17.1/24,exec-opts:[native.cgroupdriversystemd],dns:[114.114.114.114,8.8.8.8]}重启服务并重新加载配置[rootlocalhost docker]# systemctl daemon-reload[rootlocalhost docker]# systemctl restart docker重启完成之后查看docker0的IP地址是否已经修改了与我们配置文件中的一致查看docker的镜像仓库与镜像加速地址是否修改namespace和CgroupNamespace 决定容器“能看见什么”cgroup 决定容器“能使用多少资源”。它们都是 Linux 内核能力并不是 Docker 自己发明的。Docker 负责配置这些能力runc 等 OCI Runtime 负责创建。Linux 宿主机内核容器 A 的进程容器 B 的进程Namespace A进程、网络、挂载等视图Namespace B独立的视图cgroup ACPU 1核、内存 512MBcgroup BCPU 2核、内存 1GBNamespace 用于隔离系统资源的“视图”。容器里的程序看起来像运行在独立系统中但实际上仍是宿主机上的普通 Linux 进程。Linux 内核为不同进程保存不同的资源对象引用。执行系统调用时内核根据当前进程所属的 Namespace访问对应的资源对象。PID Namespace隔离进程编号和进程列表。Network Namespace隔离网络资源包括网卡 IP 地址 路由表 防火墙规则 端口 Socket使用下面的参数会共享宿主机网络docker run --networkhost nginxMount Namespace隔离文件系统挂载视图。容器中挂载或卸载文件系统一般不会影响其他容器。User Namespace隔离用户和 UID/GID。启用 User Namespace 后可以将容器内 rootUID 0 映射为宿主机普通用户例如 UID 100000需要注意普通 Docker 默认配置下容器内 root 不一定自动映射成宿主机普通用户。需要配置 userns-remap或者使用 Rootless Docker。cgroupcgroup 全称是 Control Groups用于统计和限制一组进程能够使用的资源。现代 Linux 通常使用 cgroup v2但核心原理相同。限制内存docker run --memory512m nginx:表示容器最多使用大约 512MB 内存。超过硬限制且无法回收时内核可能触发 OOM并终止容器中的进程。限制 CPUdocker run --cpus1.5 nginx:表示容器最多获得约 1.5 个 CPU 核心的计算能力但不一定固定运行在某个核心上。限制进程数量docker run --pids-limit100 nginx:防止容器创建过多进程例如避免 Fork Bomb 耗尽宿主机 PID。查看资源统计docker stats显示的 CPU、内存、网络和 I/O 数据很多来自 cgroup 统计信息。对比项Namespacecgroup核心作用隔离资源视图统计和限制资源解决的问题容器能看到什么容器能使用多少典型对象PID、网络、挂载、主机名CPU、内存、进程数、I/O是否限制资源一般不负责是是否隐藏资源是一般不负责docker 镜像docker 镜像原理Linux文件系统由bootfs和rootfs两部分组成bootfs包含bootloader引导加载程序和 kernel内核rootfs root文件系统包含的就是典型 Linux 系统中的/dev /proc/bin/etc等标准目录和文件不同的linux发行版bootfs基本一样而rootfs不同如ubuntu centos等docker镜像原理Docker镜像是由特殊的文件系统叠加而成最底端是 bootfs并使用宿主机的bootfs第二层是root文件系统rootfs,称为base image然后再往上可以叠加其他的镜像文件统一文件系统UnionFile System技术能够将不同的 层整合成一个文件系统为这些层提供了一个统一 的视角这样就隐藏了多层的存在在用户的角度看来只存在 一个文件系统一个镜像可以放在另一个镜像的上面。位于下面的镜像称为父镜像最底部的镜像成为基础镜像。当从一个镜像启动容器时Docker会在最顶层加载一个读 写文件系统作为容器docker 镜像相关命令查看docker镜像# 查看镜像: 查看本地所有的镜像[rootlocalhost ~]# docker images镜像名称 版本号 镜像ID 镜像存在时间 镜像大小 REPOSITORY TAG IMAGE ID CREATED SIZE centos latest 5d0da3dc97642years ago 231MB[rootlocalhost ~]# docker images -q #查看所有的镜像ID5d0da3dc9764搜索镜像:从网络中查找需要的镜像dockersearch 镜像名称 NAME:镜像的名称 DESCRIPTION镜像的描述 STARS镜像的大小 OFFICIAL镜像是否是官方维护 如果至位【ok】则代表该镜像是官方维护的镜像 注意如果需要查看镜像的版本号则需要到https://hub.docker.com的docker镜像仓库官方网站中去查看[rootlocalhost ~]# docker search nginxNAME DESCRIPTION STARS OFFICIAL nginx Official build of Nginx.19730[OK]unit Official build of NGINX Unit: Universal Web …25[OK]nginx/nginx-ingress NGINX and NGINX Plus Ingress Controllers fo…89nginxinc/nginx-unprivileged Unprivileged NGINX Dockerfiles144nginx/nginx-prometheus-exporter NGINX Prometheus ExporterforNGINX and NGIN…39nginxinc/nginx-s3-gateway Authenticating and caching gateway based on …6nginx/unit This repository is retired, use the Docker o…64nginx/nginx-ingress-operator NGINX Ingress OperatorforNGINX and NGINX P…2nginxinc/amplify-agent NGINX Amplify Agentdockerrepository1nginx/nginx-quic-qns NGINX QUIC interop1nginxinc/ingress-demo Ingress Demo4nginxproxy/nginx-proxy Automated nginx proxyforDocker containers …132nginxproxy/acme-companion Automated ACME SSL certificate generation fo…131bitnami/nginx Bitnami nginx Docker Image184bitnami/nginx-ingress-controller Bitnami Docker ImageforNGINX Ingress Contr…32ubuntu/nginx Nginx, a high-performance reverse proxywe…112nginxinc/nginmesh_proxy_debug0nginxproxy/docker-gen Generate files fromdockercontainer meta-da…16nginxinc/mra-fakes30kasmweb/nginx An Nginx image based off nginx:alpine and in…7nginxinc/nginmesh_proxy_init0nginxinc/mra_python_base0nginxinc/ngx-rust-tool0rancher/nginx-ingress-controller12拉取镜像:从Docker仓库下载镜像到本地镜像名称格式为名称:版本号如果版本号不指定则是最新的版本。 如果不知道镜像版本可以去docker hub搜索对应镜像查看dockerpull 镜像名称[rootlocalhost ~]# docker pull centosUsing default tag: latest latest: Pulling from library/centos a1d0c7532777: Pull complete Digest: sha256:a27fd8080b517143cbbbab9dfb7c8571c40d67d534bbdee55bd6c473f432b177 Status: Downloaded newer imageforcentos:latest docker.io/library/centos:latest[rootlocalhost ~]# docker imagesREPOSITORY TAG IMAGE ID CREATED SIZE centos latest 5d0da3dc97642years ago 231MB删除镜像dockerrmi 镜像id# 删除指定本地镜像dockerrmidockerimages-q# 删除所有本地镜

关于恒美微站

恒美微站专注于为个体商户、工作室提供极简自助建站服务,让每个人都能轻松拥有专业网站。

快速链接

  • 关于我们
  • 建站服务
  • 主题模板
  • 案例展示
  • 资讯中心

服务项目

  • 可视化建站
  • 拖拽编辑
  • 主题定制
  • SEO 优化
  • 网站托管

联系方式

  • 📍 地址:北京市朝阳区建国路 88 号
  • 📞 电话:400-888-8888
  • ✉️ 邮箱:info@hmyw.cn
  • 🕐 时间:周一至周日 9:00-18:00

© 2024 恒美微站 hmyw.cn 版权所有 | 京 ICP 备 12345678 号