Docker工作原理详解(图文全面总结)
mikechen
Docker
Docker 是一个容器化平台,主要:实现应用、与环境的隔离,从而确保应用能够在不同的操作系统上保持一致性。
Docker 容器,它通过:对计算机资源的隔离、与控制,为应用提供一个独立、安全的运行环境。
正因如此,Docker 容器,就像集装箱一样,可以将应用及其依赖打包在一起,并在不同的环境中保持一致。
Docker工作原理
Docker工作原理,如下图所示:
Docker主要包含: Docker 镜像、Docker 容器 、和 Docker 仓库这三大组件。
Docker的这三个组件,共同构成了 Docker 的工作原理流程。
Docker镜像
Docker 镜像是一个独立、可移植的应用程序环境,类似于虚拟机快照。
镜像是容器的构建基础,可以认为是一个“打包好的应用环境”。
Docker 镜像,具有层次结构,每一层代表了一次操作(如:安装软件、复制文件。。。等),并且可以复用,提升了存储和构建效率。
并且,每个镜像基于 Linux 文件系统,包含:一个完整的 ...
编程开发
未读Docker是云原生的基石,也是云计算的核心组成。
Docker容器
在容器技术成为云原生基石的今天,Docker 几乎是所有开发者和运维工程师必须掌握的工具。
Docker 是一个开源的容器化平台,用于构建、部署和运行应用程序的容器。
它通过轻量级虚拟化技术,让开发者可以在任何支持Docker的环境中以一致的方式运行应用。
核心思想是:“一次构建,到处运行”。
Docker工作原理
Docker的运行原理,重点围绕镜像 (Images)、容器 (Containers) 和 仓库 (Registries/Repositories) 这三个核心。
如下图所示:
Docker镜像
Docker镜像是一个轻量级、独立的可执行软件包,包含了运行一个软件所需的所有内容:代码、运行时环境、库、环境变量和配置文件。
你可以把它想象成应用程序及其所有依赖项的一个“静态快照”或者“安装包”。
1DockerImage├──Layer1:FROM ubuntu├──Layer2:RUN apt install nginx├──Layer3:COPY index.html /var/www└─ ...
Docker容器与镜像是Docker的核心组件,掌握好两者对于理解Docker至关重要@mikechen
Docker镜像
Docker镜像是一个只读的模板,包含:运行应用所需的文件系统、库、依赖、配置、和环境变量。
Docker镜像最主要的作用:就是用于创建:Docker容器。
Docker镜像本质上是一个特殊的文件系统,采用分层存储(Union FS)技术,由多层只读文件系统叠加组成。
Docker镜像,包含了:运行应用程序所需的所有文件、库、环境变量和配置。
Docker镜像作为创建Docker容器的基础,镜像通常被储存在Docker仓库中,供用户下载使用。
Docker容器
Docker容器是基于Docker镜像创建的一个运行实例,是一个轻量级、可移植且独立的运行环境。
Docker容器,提供了一个隔离的运行环境,其中包含了应用程序及其所有依赖项。
Docker容器被形象地比喻为“集装箱”,这一比喻源自海运集装箱的标准化和隔离特性。
如下图所示:
就像海运集装箱将各种货物封装在统一规格的箱子里,方便运输且互不干扰。
Docker容器则将应用及其所有依赖打包在一个标准化的运行 ...
收藏级!Docker 运维人必备 7 大类 30+ 命令速查表
摘要:在现代运维工作中,Docker 已经成为必备工具。本文按「容器 → 镜像 → 网络 → 数据卷 → Compose → 系统 → 实用技巧」的顺序,整理了高频命令与场景示例。收藏这一篇,日常 90% 的 Docker 问题都能快速解决。
1️⃣容器管理
功能
命令示例
备注
运行容器
docker run -d --name nginx -p 80:80 nginx
核心选项:-d 后台、-it 交互、--rm 用完即删
查看容器
docker ps -a
-q 仅显示 ID,方便脚本处理
启停容器
docker start/stop/restart 容器名/ID
stop 优雅,kill 强制
进入容器
docker exec -it 容器名 bash
推荐 exec,attach 会占用主进程
删除容器
docker rm -f 容器名/ID
docker container prune 一键清理已停止
查看日志
docker logs -f 容器名
-f 实时,--tail ...
镜像下载龟速?专家支招:铁威马+KSpeeder加速秘籍!引言自从Docker被设置了限制,从去年现在,每次都有人来问熊猫,为什么我镜像都拉不下来,为什么我下载速度非常慢,甚至中间突然断链。讲道理,Docker镜像加速的办法网上已经非常非常多了,不管是通过给NAS上代理的方式,还是直接使用镜像库的方式,相信愿意去折腾NAS的一定都会备有多个镜像加速地址。
这里熊猫直接推荐一个网站:https://status.1panel.top/status/docker,该网站记录了部分加速镜像站的状态,同时,一些站点针对加速设置有限制也会有所说明,例如站点是否有白名单模式、是否限速以及镜像站点归属组织等等。
项目介绍不过即便是有这样方便的网站,很多时候还是会出现突然使用的镜像加速站高延迟或者直接出问题的情况,这时候我们只有放弃当前下载,去重新设置新的加速站点再重头开始下载镜像,这样就非常麻烦了。
而今天要介绍的项目号称Docker镜像加速专家-KSpeeder,支持多镜像并发下载、动态负载均衡以及断点续传的功能,真正做到了一次部署,后续无忧。
部署机本次项目部署用到的为铁威马F6-424 M ...
为什么需要数据持久化?Docker 中的容器是临时的,并且通常设计为无状态的,这意味着容器在删除或重新创建后,其中的数据会被清除。然而,许多应用程序需要持久化存储数据,以便数据不会丢失,并且在容器重新创建后仍然可用。数据持久化还有助于在多个容器之间共享数据,或者将数据备份到宿主机或远程存储中
常见的 Docker 数据持久化方法以下是 Docker 中常见的数据持久化方法:
数据卷(Volumes):数据卷是一种特殊的目录,可以绕过容器文件系统并将数据存储在宿主机上。数据卷可以被一个或多个容器共享,并且在容器之间持久存在。使用数据卷可以方便地备份、恢复和迁移数据。
绑定挂载(Bind Mounts):绑定挂载允许将宿主机上的文件或目录直接挂载到容器中。这样,容器可以访问宿主机文件系统中的数据,并且对数据的修改也会反映到宿主机上。
命名卷(Named Volumes):命名卷是一种具有名称的数据卷,可以在多个容器之间共享,并且可以方便地管理和使用。通过为卷指定名称,可以在创建容器时直接引用该名称,并且 Docker 会自动创建和管理卷。
数据卷容器(Data Volume Contai ...
Docker镜像与容器的导入和导出镜像和容器的导入、导出操作主要涉及到下面的几个命令:save、load、export、import
镜像导入是一个复制的过程,容器导入是将当前容器变成一个新的镜像。
docker save命令保存的是镜像(image),docker export命令保存的是容器(container)。
export命令导出的tar文件略小于save命令导出的。
因为export导出的是容器,export导出的文件在import导入时,无法保留镜像所有的历史(即每一层layer信息),不能进行回滚操作。而save是根据镜像来的,所以导入时可以完整保留下每一层layer信息。
docker load不能对导入的镜像重命名,而docker import导入可以为镜像指定新名称
若是只想备份image,使用save和load。
若是在启动容器后,容器内容有变化,需要备份,则使用export和import。
容器和镜像是两个不一样的东西,所以他们的导出和导入有所区别。
容器(container)
镜像(image)
导入
docker import
doc ...
Docker项目Docker安装安装docker和docker-compose安装docker非大陆服务器安装docker
123wget -qO- get.docker.com | bashdocker -v # 查看docker版本systemctl enable docker #设置开机自启动
注意:如果出现sudo:unable to resolve host [hostname],可以编辑nano/etc/hosts。然后在localhost后面空一格,打上[hostname]你对应的hostname内容。国内服务器安装docker
123curl -sSL https://get.daocloud.io/docker | shdocker -v #查看docker版本systemctl enable docker # 设置开机自动启动
卸载docker123sudo apt-get purge docker-ce docker-ce-cli containerd.iosudo rm -rf /var/lib/dockersudo rm -r ...
一、Docker基础入门及架构介绍DevOpsDocker
工具
最近更新日期: 2021-11-27
文章字数: 3.4k
阅读时长: 12 分
系列文章介绍本文是《Docker必知必会系列》第一篇,原文发布于个人博客:悟尘记。
此系列文章共包括如下章节:
一、Docker基础入门及架构介绍
二、基于 Dockerfile 构建并运行镜像
三、基于 Docker-registry/Nexus3 搭建本地仓库
四、Docker 网络原理、分类及容器互联配置
五、Docker 数据持久化存储与性能调优
六、基于多阶段构建减小镜像体积降低复杂度
七、Docker Compose 入门实践
八 ...
docker常用命令和docker容器管理
docker基础操作
1.1 docker search查找镜像
1.2 docker pull下载镜像
1.3 docker push将本地的镜像推送到远程镜像仓库
1.4 docker images 查看本地镜像
1.5 docker save把镜像做成离线包
1.6 docker load 从离线包导入docker镜像
1.7 docker rmi 删除镜像包
容器相关操作
2.1 docker run运行容器
2.2 docker ps 查看正在运行的容器
2.3 docker stop 停止容器
2.4 docker start 启动容器
2.5 docker exec 进入容器
2.7 docker rm 删除容器
2.8 查看帮助
2.9 docker build 需结合dockerfile使用
1. docker基础操作
docker镜像(Images): docker镜像是一个只读的模板,用于创建docker容器,包含了运行应用程序所需要的所有内容:代码、运行时、库、环境变量和配置文件。
docker ...
