Docker
文章平均质量分 65
Docker基础
吴声子夜歌
个人学习记录
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
Docker入门与实战——Docker命令查询
Docker命令有两大类:客户端命令和服务端命令,前者是主要的操作接口,后者用来启动Docker服务。可以通过man docker或docker help来查看这些命令,通过man docker-COMMAND或docker help COMMAND来查看这些命令的具体用法和支持的参数。客户端命令负责操作接口,支持如下命令选项:Docker客户端单独提供了一组管理命令,对某个资源集中进行管理,包括快照、配置、容器、镜像、网络、节点、插件、秘密内容、服务、服务栈、集群、系统、密钥和挂载卷等,如表所示。除了针原创 2026-10-23 13:31:03 · 213 阅读 · 0 评论 -
Docker入门与实战——热门镜像介绍
1、MongoDB1.1、基本信息1.2、使用方法2、MySQL2.1、基本信息2.2、使用方法3、Nginx3.1、基本信息3.2、使用方法4、Node.js4.1、基本信息4.2、使用方法5、Redis5.1、基本信息5.2、使用方法6、Ubuntu6.1、基本信息6.2、使用方法7.1、基本信息7.2、使用方法。原创 2026-10-23 13:00:45 · 192 阅读 · 0 评论 -
Docker入门与实战——常见问题总结
1、镜像相关1.1、如何备份和恢复系统中所有的镜像?1.2、如何批量清理临时镜像文件?1.3、如何删除所有本地镜像?1.4、如何清理Docker系统中的无用数据?1.5、如何查看镜像内的环境变量?1.6、本地的镜像文件都存放在哪里?1.7、构建Docker镜像应该遵循哪些原则?1.8、遇到网络问题,无法拉取镜像,在命令行指定http_proxy无效,怎么办?2、容器相关2.1、容器退出后,通过docker ps命令查看不到,数据会丢失吗?2.2、如何停止所有正在运行的容器?原创 2026-10-23 12:19:23 · 74 阅读 · 0 评论 -
Docker入门与实战——其他相关项目
因此,代理服务器对外表现为一个服务器。随着Docker技术的迅速发展,开源社区不断加强容器技术的易用性,同时也在思考如何更长远地发展容器技术,包括兼容不同的容器标准、适应更多类型的操作系统平台和设计更好的应用等。OCI定义了一个包括容器镜像格式和容器运行时标准在内的开放容器规范(Open Container Format,OCF),这些规范可以让容器在不同的容器运行时(例如Docker、runC、containerd等)和不同的容器平台上(例如Kubernetes、Docker Swarm等)进行互操作。原创 2026-10-23 11:43:51 · 118 阅读 · 0 评论 -
Docker入门与实战——Kubernetes(生产级容器集群平台)(二)
其中,管理节点负责控制,工作节点负责执行任务,它们通过各自的组件组合实现各自的功能。污点(taint)是Kubernetes 1.6开始引入的特性,包括一个键值对和对应的影响(key=value:effect),表示某个节点已经带有了某个键值对(污点),因此Pod不再调度到该节点上,除非带有容忍(teleration)该污点标签的Pod。其中,command为要执行的操作,如get、describe、create、delete等,TYPE为资源类型,NAME为对象名称,flags为操作相关的参数。原创 2026-10-23 01:13:30 · 233 阅读 · 0 评论 -
Docker入门与实战——Kubernetes(生产级容器集群平台)(一)
通常情况下,使用容器的应用都是不带状态的,这意味着部署同一个应用的多个Pod彼此可以替换,而且生命周期可以是很短暂的。一旦某个Pod故障退出,Kubernetes会创建同一命名的Pod,并挂载原来的存储,以便Pod中的应用继续执行,实现了该应用的高可用性。由于Pod随时可能出现故障,并可能在其他节点上被重启,它的地址是不能保持固定的,因此,用一个服务来代表提供某一类功能(可以通过标签来筛选)的一些Pod,并分配不随Pod位置变化而改变的虚拟访问地址(Cluster IP)。当不足时,则创建新的Pod。原创 2026-10-22 00:38:52 · 238 阅读 · 0 评论 -
Docker入门与实战——Docker Swarm模式(跨主机容器集群管理)
Swarm模式的前身—Docker Swarm项目是Docker公司于2014年年底推出的容器集群平台,使用Go语言开发。2016年2月重构的V2版本增强了扩展性,支持数千个节点。同年,Docker自1.12版本起内置SwarmKit,将原先单独的Swarm软件升级为Swarm模式,更为方便和强大。作为容器集群管理器,Swarm的最大优势之一是原生支持Docker API。这使得用户可以非常便捷地使用各种基于Docker标准API的工具,例如Compose、SDK等,轻松操作多个主机上的容器。原创 2026-10-21 14:01:03 · 236 阅读 · 0 评论 -
Docker入门与实战——Docker Compose(多容器应用管理)
设置Compose的项目名称,默认是当前工作目录(docker-compose.yml文件所在目录)的名字。Compose会在每一个启动的容器前添加项目名称。例如一个名称为proj的项目,其中的一个Web容器,名称可能为proj_web_1。设置要使用的docker-compose.yml的路径。如果不指定,默认会先查找当前工作目录下是否存在docker-compose.yml文件,如果找不到,则继续查找上层目录。原创 2026-10-20 20:23:17 · 195 阅读 · 0 评论 -
Docker入门与实战——Etcd(高可用的键值数据库)
Etcd是一个开源的分布式键值存储系统,由CoreOS团队发起,旨在为分布式系统(尤其是微服务架构)提供配置数据共享和服务发现功能。该项目实现了高可用性、一致性和容错性,被广泛应用于Kubernetes、CloudFoundry、CoreOS Fleet和Salesforce等项目中,也适用于许多其他分布式系统应用场景。本章将详细介绍Etcd的相关知识,包括安装和使用,以及集群管理等。笔者将介绍如何使用Etcd进行数据操作,以及如何优化和维护Etcd集群,同时,还将展示Etcd提供的一些实用功能,如数据监听原创 2026-10-19 15:38:48 · 223 阅读 · 0 评论 -
Docker入门与实战——libnetwork插件化网络功能
CNM的典型生命周期如图所示,并附有相应的流程图:首先,驱动向网络控制器注册自身,然后网络控制器根据驱动类型创建网络;在libnetwork的网络解决方案中,为了实现跨主机容器网络通信,也需要引入一个类似的网络信息管理机制。从架构位置来看,libnetwork向上提供了对容器的支持,同时向下屏蔽了实现层面的差异,因此它处于至关重要的中间层。本章将深入探讨libnetwork的基本概念和应用,包括容器网络模型、相关操作命令以及如何借助libnetwork构建跨主机容器网络的详细步骤。原创 2026-10-17 23:46:51 · 203 阅读 · 0 评论 -
Docker入门与实战——高级网络功能
除了默认的docker0网桥之外,用户还可以选择自定义的网桥来连接各个容器。在启动Docker服务时,可以通过使用-bridge=BRIDGE选项来指定所需的网桥。若服务已在运行中,需要先停止服务,然后删除原有的网桥:之后创建一个网桥bridge0:查看确认网桥创建并启动:配置Docker服务,将默认网桥指定到刚创建的网桥上:之后,启动Docker服务。此时,新建一个容器,可以看到它已经桥接到了bridge0上。可以继续用brctl show命令查看桥接的信息。原创 2026-10-17 20:23:36 · 76 阅读 · 0 评论 -
Docker入门与实战——安全防护与配置
目前,Docker支持的内核能力包括CAP_CHOWN、CAP_DAC_OVERRIDE、CAP_FSETID、CAP_FOWNER、CAP_MKNOD、CAP_NET_RAW、CAP_SETGID、CAP_SETUID、CAP_SETFCAP、CAP_SETPCAP、CAP_NET_BIND_SERVICE、CAP_SYS_CHROOT、CAP_KILL和CAP_AUDIT_WRITE等。用户需要确保容器的来源可靠,以及容器本身是值得信赖的,就像确保运行在系统中的软件是可信的一样。原创 2026-10-16 17:58:02 · 199 阅读 · 0 评论 -
Docker入门与实战——配置私有仓库
Registry服务器的事件会通过HTTP发送到用户定义的所有Endpoint上,而且每个Registry实例的每个Endpoint都有自己独立的队列、重试选项以及HTTP的目的地址。如果需要tag信息,则需要使用Docker Registry v2.4.0及以上的版本,在这个版本中对应的manifest事件中将会携带tag的属性,来标识该动作涉及的镜像版本信息。在这个场景下,可以在新的镜像推送到Registry服务器时自动创建或者更新对应的服务,这样可以快速查看新镜像的运行效果或者进行集成测试。原创 2026-10-13 23:44:23 · 215 阅读 · 0 评论 -
Docker入门与实战——核心实现技术
在操作系统中,包括内核、文件系统、网络、进程号(Process ID,PID)、用户号(User ID,UID)、进程间通信(Inter Process Communication,IPC)等,所有资源都是应用进程直接共享的。在默认情况下,Docker在宿主机上创建多个虚拟网桥(如默认的网桥docker0),然后容器中的虚拟网卡通过这些网桥进行连接,实现容器之间的通信,如图所示。每个UTS命名空间中的进程都可以拥有独立的主机名和域名,这使得在同一台机器上运行的不同容器看起来像是在不同的主机上运行一样。原创 2026-10-13 16:38:18 · 207 阅读 · 0 评论 -
Docker入门与实战——容器实战思考
项目伊始,架构师根据项目预期创建好需要的基础的base镜像,如Nginx、Tomcat、MySPL镜像,或者将Dockerfile分发给所有开发人员,开发人员根据Dockerfile创建的容器或者从内部仓库下载的镜像来进行开发,达到开发环境的充分一致。现实生活中,简单的事物背后往往蕴含着复杂的机制。可以说,绝大部分分层架构的企业架构都可以平滑地在生产环境中容器化,而绝大部分完成容器化的企业架构,都可以通过代码重构完成微服务化,这样可以从服务层面进一步提高可用性,进一步降低IT固定成本、持续集成与部署成本。原创 2026-10-13 11:28:25 · 196 阅读 · 0 评论 -
Docker入门与实战——容器与云服务
云计算以按需的方式通过互联网提供IT资源,并基于使用量设定付费方式。诸如Amazon Web Services(AWS)、腾讯云、阿里云等云服务提供商允许用户根据需求获取技术服务,包括计算能力、存储和数据库,这消除了购买、拥有和维护物理数据中心和服务器的需要。各种规模、类型和行业的组织都在利用云进行各种应用,包括数据备份、灾难恢复、电子邮件、虚拟桌面、软件开发与测试、大数据分析,以及构建面向客户的Web应用程序,例如:医疗保健公司正在利用云技术为患者开发个性化治疗方法;原创 2026-10-13 00:30:17 · 276 阅读 · 0 评论 -
Docker入门与实战——实战案例(编程开发)(二)
首先新建Rust项目文件夹,并新建Dockerfile,参考内容如下:新增/usr/src/myapp目录,并将上文的main.rc复制到myapp目录:然后,通过docker build构建,docker run运行自定义镜像:此时将创建一个包含所有Rust工具的镜像,体积较大。原创 2026-10-12 20:16:47 · 149 阅读 · 0 评论 -
Docker入门与实战——实战案例(编程开发)(一)
用户也可以通过本地编译自定义uWSGI+Nginx+Django镜像。原创 2026-10-12 13:19:00 · 103 阅读 · 0 评论 -
Docker入门与实战——实战案例(分布式处理与大数据平台)
RabbitMQ是一个开源的消息队列实现,它遵循高级消息队列协议(Advanced Message Queuing Protocol,AMQP),并且使用Erlang编程语言构建,以其卓越的性能、稳健的可用性以及出众的可伸缩性而广受好评。这样,消息的发送方并不需要知晓消息的接收方,反之,接收方也不需要知晓发送方,大大提高了系统的灵活性。Storm集群的运作方式与Hadoop集群极其相似,二者的主要差别在于,在Hadoop上运行的是MapReduce任务,而在Storm上执行的是topology任务。原创 2026-10-11 17:55:05 · 398 阅读 · 0 评论 -
Docker入门与实战——实战案例(数据库应用)
如果用户希望使用自定义MySQL配置,则可以创建一个目录,内置cnf配置文件,然后将其挂载至容器的/etc/mysql/conf.d目录。这时,新的容器test-mysql启动后,就会结合使用/etc/mysql/my.cnf和/etc/mysql/conf.d/config-file.cnf两个配置文件。第一步,准备工作。原创 2026-10-11 00:43:54 · 362 阅读 · 0 评论 -
Docker入门与实战——实战案例(Web服务与应用)
设置继承自用户创建的SSHD镜像#创建者的基本信息# 设置环境变量,所有操作都是非交互式的# 安装# 更改系统的时区设置# 添加用户的脚本,并设置权限,这会福海之前放在这个位置的脚本# 添加一个示例的Web站点,删除默认安装在apache文件夹下面的文件,并将用户添加的示例用软件链接到/var/www/html目录下面# 设置app相关的一些变量,在容器启动的时候可以使用-e参数替代EXPOSE 80此sample站点的内容为输出Hello Docker!。</</</原创 2026-10-10 19:58:45 · 275 阅读 · 0 评论 -
Docker入门与实战——实战案例(操作系统)
Alpine Docker镜像继承了Alpine Linux发行版的诸多优势,其体积远小于其他镜像,仅约5MB(相较之下,Ubuntu系列镜像的大小接近200MB)。Ubuntu的名字源于非洲南部的祖鲁语或豪萨语中的ubuntu一词,寓意着“人性”和“我的存在源于大家的存在”,这体现了非洲传统文化中的“仁爱”价值观。目前,大部分Docker官方镜像都已经支持Alpine作为基础镜像,可以很容易地进行迁移。例如,打开ubuntu:23.04的镜像页面,单击Layers,可见官方镜像的分层信息,如图所示。原创 2026-10-10 11:22:20 · 220 阅读 · 0 评论 -
Docker入门与实战——高级镜像构建
为了加强在多种平台上构建镜像的能力,Docker 19.03版本开始引入实验性功能DockerBuildx,它是docker build命令的扩展,用于启用和加速在多种平台上构建Docker镜像的能力。多步骤构建(multi-stage build)是Docker 17.05版本引入的一个特性,它允许用户在单个Dockerfile中定义多个阶段,每个阶段都是从不同的基础镜像开始的,可以进行各种操作,然后只从最后一个阶段生成最终的Docker镜像。构建器是一个环境,它能在其中运行构建。原创 2026-10-09 23:36:52 · 271 阅读 · 0 评论 -
Docker入门与实战——使用Dockerfile创建镜像(二)
内容包括Dockerfile的基本结构、支持的内部指令、使用Dockerfile创建镜像的基本流程,以及合理构建镜像的最佳实践。基础镜像比较特殊,它的Dockerfile中往往不存在FROM指令,或者基于scratch镜像(FROM scratch),这意味着基础镜像在整个镜像树中处于根的位置。通过学习Dockerfile构建镜像的过程,读者将能领略到Docker镜像在使用中所展现的灵活性,尤其是在进行修改时,能够实现“一处修改,全局更新”。父镜像是所生成镜像的基础,会直接影响镜像的大小和功能。原创 2026-10-09 14:26:03 · 229 阅读 · 0 评论 -
Docker入门与实战——使用Dockerfile创建镜像(一)
Docker有一组预定义的ARG变量,可以在Dockerfile没有相应的ARG指令的情况下使用:HTTP_PROXY、http_proxy、HTTPS_PROXY、https_proxy、FTP_PROXY、ftp_proxy、NO_PROXY、no_proxy、ALL_PROXY或all_proxy。要使用这些变量,可使用–build-arg标志在命令行上传递它们,例如:默认情况下,这些预定义的变量被排除在docker history的输出之外。原创 2026-10-09 13:18:14 · 237 阅读 · 0 评论 -
Docker入门与实战——端口映射与容器互联
连接系统依据容器的名称来执行。因此,首先需要自定义一个好记的容器命名。自定义的命名比较好记,比如将一个Web应用容器命名为web,一目了然。当要连接其他容器时,即使重启,也可以使用容器名描述,比如连接web容器到db容器。使用–name标记可以为容器自定义命名:使用docker ps命令可以验证设定的命名:也可以使用来查看容器的名称:注意容器的名称是唯一的。如果已经命名了一个叫作web的容器,当用户要再次使用web这个名称的时候,需要先用docker rm命令删除之前创建的同名容器。原创 2026-10-08 19:58:31 · 178 阅读 · 0 评论 -
Docker入门与实战——Docker数据管理
本章首先讲解如何在容器内创建数据卷,并将宿主机的目录或文件挂载到容器内的数据卷中。在生产环境中,建议在使用数据卷或数据卷容器的同时,定期备份主机上的本地数据,或采用支持容错的存储系统,如RAID或分布式文件系统(包括Ceph、GPFS、HDFS等)。数据卷是一个专门为容器设计的特殊目录,它将主机操作系统的目录直接映射到容器中,类似于Linux系统中的挂载(mount)操作。如果要删除一个数据卷,则可以在删除最后一个挂载它的容器时显式地使用docker rm-v命令来指定同时删除关联的数据卷。原创 2026-10-08 14:47:20 · 265 阅读 · 0 评论 -
Docker入门与实战——访问Docker仓库
对于Docker官方镜像,这里通常会展示软件的官方网站、镜像的制作者以及镜像的使用方法(包括运行参数、变量、更新方式等)。例如,在仓库地址private-docker.com/ubuntu中,private-docker.com是注册服务器地址,而ubuntu是仓库名称。Docker Hub是Docker官方提供的最大的公共镜像仓库,目前包括了数百万个镜像,地址为https://hub.docker.com。此时,仓库启用了TLS,在客户端对其进行访问时可以通过证书来进行认证,确保访问的仓库为正确仓库。原创 2026-10-08 00:25:25 · 209 阅读 · 0 评论 -
Docker入门与实战——操作Docker容器
由于容器是Docker技术栈的核心组成部分,create以及后续的run命令都支持众多的命令选项,主要包括基本选项、高级选项,以及容器资源限制和安全保护相关选项,因此,读者应在实际操作中不断积累经验,以更好地掌握这些选项的使用方法。其中,-t选项让Docker分配一个伪终端(pseudo-tty)并将它绑定到容器的标准输入上,-i则让容器的标准输入保持打开状态,–rm让容器退出后自动删除容器,一般跟随-it使用。这是因为对于容器来说,当其中的应用退出后,容器的使命完成,也就没有继续运行的必要了。原创 2026-10-07 23:40:02 · 269 阅读 · 0 评论 -
Docker入门与实战——使用Docker镜像
另外,有时需要使用镜像代理服务来加速Docker镜像获取过程,可以在Docker服务启动配置中增加–registry-mirror=proxy_URL来指定镜像代理服务地址(如https://registry.docker-cn.com)。无须担心,当同一个镜像拥有多个标签时,docker rmi命令只是删除了该镜像多个标签中的指定标签而已,并不影响镜像文件。注意,myubuntu:latest镜像和ubuntu:latest镜像的ID是完全一致的,它们实际上指向了同一个镜像文件,只是别名不同而已。原创 2026-10-07 15:53:55 · 229 阅读 · 0 评论 -
Docker入门与实战——核心概念与安装配置
此外,如果服务工作不正常,可以通过查看Docker服务的日志信息来确定问题,例如在RedHat系统上日志文件可能为/var/log/messages,在Ubuntu系统上可以执行命令journalctl-u docker.service。因此,用户可以直接通过执行dockerd命令来启动Docker服务,如下面的命令启动了Docker服务,开启Debug模式,并监听在本地的2376端口。目前,最大的公开仓库是由官方提供的Docker Hub,其中包含了大量的镜像供用户下载和使用。原创 2026-10-06 23:40:25 · 240 阅读 · 0 评论 -
Docker入门与实战——初识Docker与容器
Docker是一个基于Go语言实现的开源容器项目。它诞生于2013年初,最初由dotCloud公司发起。自开源以来,Docker受到了业界的广泛关注和参与,目前已发展成拥有80多个相关开源项目(包括BuildKit、Compose、Containerd、Registry等)的完整生态体系。Docker引擎版本也已经更新到了v27。原创 2026-10-06 17:27:45 · 239 阅读 · 0 评论 -
Docker——Dockerfile构建MySQL并初始化数据
这将在后台启动一个名为mysql-instance的MySQL容器,如果一切顺利,您将看到MySQL容器成功启动并执行了初始化SQL脚本。在上述Dockerfile中,我们使用了MySQL5.7官方镜像作为基础镜像,并将初始化SQL脚本。这样,MySQL容器在启动时会自动执行该SQL脚本。原创 2024-04-01 16:15:09 · 1664 阅读 · 0 评论 -
Docker——拉取SQL SERVER
【代码】Docker——拉取SQL SERVER。原创 2023-04-11 15:30:45 · 550 阅读 · 0 评论 -
Docker Swarm——服务命令
swarm原创 2022-06-17 23:27:16 · 942 阅读 · 0 评论 -
Docker Swarm——基本使用
docker swarm原创 2022-06-17 22:55:07 · 2244 阅读 · 0 评论 -
Docker Swarm——基本概念
swarm原创 2022-06-16 00:19:53 · 471 阅读 · 1 评论 -
Docker Compose——命令说明
docker compose原创 2022-06-15 23:27:04 · 804 阅读 · 0 评论 -
Docker Compose——模板文件
docker-compose.yaml原创 2022-06-15 23:14:26 · 775 阅读 · 0 评论 -
Compose简介、安装与测试
Compose简介Compose项目是Docker官方的开源项目,负责实现对基于Docker容器的多应用服务的快速编排。从功能上看,跟OpenStack中的Heat十分类似。其代码目前在https://github.com/docker/compose上开源。Compose定位是"定义和运行多个Docker容器的应用",其前身是开源项目Fig,目前仍然兼容Fig格式的模板文件。它允许用户通过一个单独的docker-compose.yml模板文件来定义一组相关联的应用容器为一个服务栈。概念:任务原创 2022-02-05 21:10:04 · 1136 阅读 · 0 评论
分享