0

0

Docker知识点(一):Docker介绍及安装

爱谁谁

爱谁谁

发布时间:2025-06-27 12:54:01

|

445人浏览过

|

来源于php中文网

原创

  1. Docker是什么?

docker是一个基于go语言开发的开源项目。其主要目标是实现“构建、运送和运行任何应用程序,任何地方”。通过封装、分发、部署和管理应用组件的生命周期,docker使得用户的应用程序(如web应用或数据库应用等)及其运行环境能够一次封装,随处运行。

Docker知识点(一):Docker介绍及安装

Linux容器技术的出现解决了这一问题,而Docker正是建立在其基础上的。应用运行在Docker容器中,而Docker容器在任何操作系统上都是一致的,从而实现了跨平台和跨服务器的部署。只需一次配置好环境,迁移到其他机器上即可一键部署,大大简化了操作。

  1. Docker能做什么?

2.1 传统的虚拟化技术

虚拟机(Virtual Machine)是一种带环境安装的解决方案。它可以在一个操作系统内运行另一个操作系统,例如在Windows系统内运行Linux系统。应用程序对此毫无察觉,因为虚拟机看起来与真实系统完全一致。对于底层系统来说,虚拟机只是一个普通文件,不再需要时可以删除,不会影响其他部分。这类虚拟机完美地运行了另一套系统,使得应用程序、操作系统和硬件之间的逻辑保持不变。

Docker知识点(一):Docker介绍及安装

虚拟机的缺点包括:

  • 资源占用多
  • 冗余步骤多
  • 启动慢

2.2 容器虚拟化技术

由于虚拟机存在上述缺点,Linux发展出了另一种虚拟化技术:Linux容器(Linux Containers,简称LXC)。Linux容器不是模拟完整的操作系统,而是对进程进行隔离。有了容器,就可以将软件运行所需的所有资源打包到一个隔离的容器中。容器与虚拟机不同,不需要捆绑一整套操作系统,只需要软件运行所需的库资源和设置。系统因此变得高效轻量,并保证在任何环境中部署的软件都能始终如一地运行。

Docker知识点(一):Docker介绍及安装

对比了Docker与传统虚拟化方式的不同之处:

传统虚拟机技术是虚拟出一套硬件,然后在其上运行一个完整的操作系统,再在该系统上运行所需的应用进程;而容器内的应用进程直接运行于宿主机的内核,容器内没有自己的内核,也没有进行硬件虚拟。因此,容器比传统虚拟机更为轻便。每个容器之间相互隔离,每个容器有自己的文件系统,容器之间的进程不会相互影响,并能区分计算资源。

2.3 Docker的实际应用

作为开发人员需要掌握Docker,作为运维人员必须掌握Docker。它实现了“一次构建,随处运行”的理念,带来了以下优势:

  • 更快速的应用交付和部署
  • 更便捷的升级和扩缩容
  • 更简单的系统运维
  • 更高效的计算资源利用
  1. 相关资源

官方网站:https://www.php.cn/link/e836b5ebd3143577c69cda6109cc209e

仓库:https://www.php.cn/link/641e0c2c35e72adecd8639eb76ebfa18

  1. Docker安装的前提环境

CentOS Docker安装支持以下版本:

  • CentOS 7 (64位)
  • CentOS 8
  • CentOS 6.5 (64位)或更高版本

前提条件:

目前,CentOS仅发行版本中的内核支持Docker。Docker运行在CentOS 7上,要求系统为64位,系统内核版本为3.10以上。Docker运行在CentOS-6.5或更高的CentOS版本上,要求系统为64位,系统内核版本为2.6.32-431或更高版本。

查看自己的内核可以使用uname命令,该命令用于打印当前系统相关信息(内核版本号、硬件架构、主机名称和操作系统类型等)。

  1. Docker的基本组成

Docker知识点(一):Docker介绍及安装

5.1 镜像(image)

Docker镜像(Image)是一个只读的模板。镜像可以用来创建Docker容器,一个镜像可以创建许多容器。

Docker知识点(一):Docker介绍及安装

多个微信小程序源码合集
多个微信小程序源码合集

微信小程序是一种轻量级的应用开发平台,由腾讯公司推出,主要应用于移动端,旨在提供便捷的用户体验,无需下载安装即可在微信内使用。本压缩包包含了丰富的源码资源,涵盖了多个领域的应用场景,下面将逐一介绍其中涉及的知识点。1. 图片展示:这部分源码可能涉及了微信小程序中的``组件的使用,用于显示图片,以及`wx.getSystemInfo`接口获取屏幕尺寸,实现图片的适配和响应式布局。可能还包括了图片懒加

下载

5.2 容器(container)

Docker利用容器(Container)独立运行一个或一组应用。容器是由镜像创建的运行实例。它可以被启动、开始、停止、删除。每个容器都是相互隔离的、保证安全的平台。可以将容器看作是一个简易版的Linux环境(包括root用户权限、进程空间、用户空间和网络空间等)和运行在其中的应用程序。容器的定义和镜像几乎一模一样,也是一堆层的统一视角,唯一区别在于容器的最上面那一层是可读可写的。

5.3 仓库(repository)

仓库(Repository)是集中存放镜像文件的场所。仓库(Repository)和仓库注册服务器(Registry)是有区别的。仓库注册服务器上往往存放着多个仓库,每个仓库中又包含了多个镜像,每个镜像有不同的标签(tag)。仓库分为公开仓库(Public)和私有仓库(Private)两种形式。最大的公开仓库是Docker Hub(https://www.php.cn/link/641e0c2c35e72adecd8639eb76ebfa18/),存放了数量庞大的镜像供用户下载

5.4 总结

镜像文件生成的容器实例本身也是一个文件,称为镜像文件。一个容器运行一种服务,当我们需要时,就可以通过Docker客户端创建一个对应的运行实例,也就是我们的容器。至于仓库,就是放了一堆镜像的地方,我们可以把镜像发布到仓库中,需要时从仓库中拉下来即可。

  1. Docker安装

6.1 确认版本

[root@bobo01 ~]# cat /etc/redhat-release
CentOS Linux release 7.9.2009 (Core)

6.2 安装gcc相关

yum -y install gcc gcc-c++

Docker知识点(一):Docker介绍及安装

6.3 卸载旧版本

[root@bobo01 ~]# yum -y remove docker docker-common docker-selinux docker-engine
已加载插件:fastestmirror
参数 docker 没有匹配
参数 docker-common 没有匹配
参数 docker-selinux 没有匹配
参数 docker-engine 没有匹配
不删除任何软件包

6.4 安装软件包

yum install -y yum-utils device-mapper-persistent-data lvm2

Docker知识点(一):Docker介绍及安装

6.5 yum更新

yum makecache fast

6.6 Docker安装

CE是官方提供的免费版本,学习足够了。

yum -y install docker-ce

Docker知识点(一):Docker介绍及安装

6.8 启动Docker

systemctl start docker

查看版本

[root@bobo01 ~]# docker version
Client:
 Docker Engine - Community
 Version:           20.10.5
 API version:       1.41
 Go version:        go1.13.15
 Git commit:        55c4c88
 Built:             Tue Mar  2 20:33:55 2021
 OS/Arch:           linux/amd64
 Context:           default
 Experimental:      true

Server: Docker Engine - Community Engine: Version: 20.10.5 API version: 1.41 (minimum version 1.12) Go version: go1.13.15 Git commit: 363e9a8 Built: Tue Mar 2 20:32:17 2021 OS/Arch: linux/amd64 Experimental: false containerd: Version: 1.4.4 GitCommit: 05f951a3781f4f2c1911b05e61c160e9c30eaa8e runc: Version: 1.0.0-rc93 GitCommit: 12644e614e25b05da6fd08a38ffa0cfe1903fdec docker-init: Version: 0.19.0 GitCommit: de40ad0

6.9 HelloWorld案例

[root@bobo01 ~]# docker run hello-world
Unable to find image 'hello-world:latest' locally
latest: Pulling from library/hello-world
b8dfde127a29: Pull complete
Digest: sha256:308866a43596e83578c7dfa15e27a73011bdd402185a84c5cd7f32a88b501a24
Status: Downloaded newer image for hello-world:latest

Hello from Docker! This message shows that your installation appears to be working correctly.

To generate this message, Docker took the following steps:

  1. The Docker client contacted the Docker daemon.
  2. The Docker daemon pulled the "hello-world" image from the Docker Hub. (amd64)
  3. The Docker daemon created a new container from that image which runs the executable that produces the output you are currently reading.
  4. The Docker daemon streamed that output to the Docker client, which sent it to your terminal.

To try something more ambitious, you can run an Ubuntu container with: $ docker run -it ubuntu bash

Share images, automate workflows, and more with a free Docker ID: https://www.php.cn/link/641e0c2c35e72adecd8639eb76ebfa18/

For more examples and ideas, visit: https://www.php.cn/link/43514321536f88cdbe57368daaa688fd

  1. Docker卸载
systemctl stop docker
yum -y remove docker-ce
rm -rf /var/lib/docker

相关专题

更多
堆和栈的区别
堆和栈的区别

堆和栈的区别:1、内存分配方式不同;2、大小不同;3、数据访问方式不同;4、数据的生命周期。本专题为大家提供堆和栈的区别的相关的文章、下载、课程内容,供大家免费下载体验。

392

2023.07.18

堆和栈区别
堆和栈区别

堆(Heap)和栈(Stack)是计算机中两种常见的内存分配机制。它们在内存管理的方式、分配方式以及使用场景上有很大的区别。本文将详细介绍堆和栈的特点、区别以及各自的使用场景。php中文网给大家带来了相关的教程以及文章欢迎大家前来学习阅读。

572

2023.08.10

Go中Type关键字的用法
Go中Type关键字的用法

Go中Type关键字的用法有定义新的类型别名或者创建新的结构体类型。本专题为大家提供Go相关的文章、下载、课程内容,供大家免费下载体验。

234

2023.09.06

go怎么实现链表
go怎么实现链表

go通过定义一个节点结构体、定义一个链表结构体、定义一些方法来操作链表、实现一个方法来删除链表中的一个节点和实现一个方法来打印链表中的所有节点的方法实现链表。

445

2023.09.25

go语言编程软件有哪些
go语言编程软件有哪些

go语言编程软件有Go编译器、Go开发环境、Go包管理器、Go测试框架、Go文档生成器、Go代码质量工具和Go性能分析工具等。本专题为大家提供go语言相关的文章、下载、课程内容,供大家免费下载体验。

248

2023.10.13

0基础如何学go语言
0基础如何学go语言

0基础学习Go语言需要分阶段进行,从基础知识到实践项目,逐步深入。php中文网给大家带来了go语言相关的教程以及文章,欢迎大家前来学习。

698

2023.10.26

Go语言实现运算符重载有哪些方法
Go语言实现运算符重载有哪些方法

Go语言不支持运算符重载,但可以通过一些方法来模拟运算符重载的效果。使用函数重载来模拟运算符重载,可以为不同的类型定义不同的函数,以实现类似运算符重载的效果,通过函数重载,可以为不同的类型实现不同的操作。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

194

2024.02.23

Go语言中的运算符有哪些
Go语言中的运算符有哪些

Go语言中的运算符有:1、加法运算符;2、减法运算符;3、乘法运算符;4、除法运算符;5、取余运算符;6、比较运算符;7、位运算符;8、按位与运算符;9、按位或运算符;10、按位异或运算符等等。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

228

2024.02.23

PS使用蒙版相关教程
PS使用蒙版相关教程

本专题整合了ps使用蒙版相关教程,阅读专题下面的文章了解更多详细内容。

23

2026.01.19

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
PostgreSQL 教程
PostgreSQL 教程

共48课时 | 7.4万人学习

Git 教程
Git 教程

共21课时 | 2.8万人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号