先自我介绍一下,小编浙江大学毕业,去过华为、字节跳动等大厂,目前阿里P7
深知大多数程序员,想要提升技能,往往是自己摸索成长,但自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!
因此收集整理了一份《2024年最新大数据全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友。
既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,涵盖了95%以上大数据知识点,真正体系化!
由于文件比较多,这里只是将部分目录截图出来,全套包含大厂面经、学习笔记、源码讲义、实战项目、大纲路线、讲解视频,并且后续会持续更新
如果你需要这些资料,可以添加V获取:vip204888 (备注大数据)
正文
一、安装 Docker
1.1、CentOS
Docker
要求 CentOS
系统的内核版本高于 3.10
,查看本页面的前提条件来验证你的CentOS
版本是否支持 Docker
通过 uname -r 命令查看你当前的内核版本
uname -r
使用 root
权限登录 CentOS
。确保 yum
包更新到最新
sudo yum update
卸载旧版本(如果安装过旧版本的话)
sudo yum remove docker docker-common docker-selinux docker-engine
安装需要的软件包, yum-util
提供yum-config-manager
功能,另外两个是devicemapper
驱动依赖的
sudo yum install -y yum-utils device-mapper-persistent-data lvm2
设置yum
源
- 官方源
sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
- 阿里云源
sudo yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
- 清华大学源
sudo yum-config-manager --add-repo https://mirrors.tuna.tsinghua.edu.cn/docker-ce/linux/centos/docker-ce.repo
安装docker
sudo yum install docker-ce
也可以查看所有仓库中所有docker
版本,并选择特定版本安装
yum list docker-ce --showduplicates | sort -r
sudo yum install docker-ce-版本号.ce
启动并加入开机启动
sudo systemctl start docker
sudo systemctl enable docker
验证安装是否成功(有client
和service
两部分表示docker安装启动都成功了)
docker version
1.2、Ubuntu
系统要求
Docker CE
支持以下版本的 Ubuntu
操作系统:
Artful 17.10 (Docker CE 17.11 Edge +)
Xenial 16.04 (LTS)
Trusty 14.04 (LTS)
Docker CE
可以安装在 64
位的 x86
平台或 ARM
平台上。Ubuntu
发行版中,LTS(Long-Term-Support)
长期支持版本,会获得 5 年的升级维护支持,这样的版本会更稳定,因此在生产环境中推荐使用 LTS
版本,当前最新的 LTS
版本为 Ubuntu 16.04
。
卸载旧版本
旧版本的 Docker
称为 docker
或者 docker-engine
,使用以下命令卸载旧版本:
sudo apt-get remove docker \
docker-engine \
docker.io
使用脚本自动安装
在测试或开发环境中 Docker
官方为了简化安装流程,提供了一套便捷的安装脚本,Ubuntu
系统上可以使用这套安装脚本:
curl -fsSL get.docker.com -o get-docker.sh
sudo sh get-docker.sh --mirror Aliyun
执行这个命令后,脚本就会自动的将一切准备工作做好,并且把 Docker CE
的 Edge
版本安装在系统中
启动 Docker CE
sudo systemctl enable docker
sudo systemctl start docker
卸载 Docker
- 先执行命令:
apt-get autoremove docker-ce
- 删除
/etc/apt/sources.list.d
目录下的docker.list
文件
二、Docker 镜像加速器
国内从 Docker Hub
拉取镜像有时会遇到困难,此时可以配置镜像加速器。Docker
官方和国内很多云服务商都提供了国内加速器服务,例如:
- Docker 官方提供的中国 registry mirror
- 阿里云加速器
- DaoCloud 加速器
我们以Docker
阿里云加速器为例进行介绍。
首先登录阿里云(没有账号请先注册),搜索 容器镜像服务,找到你的专属加速器地址。
地址:
https://www.aliyun.com/
2.1、Ubuntu 14.04、Debian 7 Wheezy
对于使用 upstart 的系统而言,编辑 /etc/default/docker
文件,在其中的 DOCKER_OPTS
中配置加速器地址:
DOCKER\_OPTS="--registry-mirror=https://xxxxxxxx.mirror.aliyuncs.com"
重新启动服务。
sudo service docker restart
2.2、Ubuntu 16.04+、Debian 8+、CentOS 7
对于使用 systemd 的系统,请在 /etc/docker/daemon.json
中写入如下内容(如果文件不存在请新建该文件)
{
"registry-mirrors": [
"https://xxxxxxxx.mirror.aliyuncs.com"
]
}
注意,一定要保证该文件符合
json
规范,否则Docker
将不能启动。
之后重新启动服务。
sudo systemctl daemon-reload
sudo systemctl restart docker
2.3、Windows 10
对于使用 Windows 10
的系统,在系统右下角托盘 Docker 图标内右键菜单选择 Settings
,打开配置窗口后左侧导航菜单选择 Daemon
。在 Registry mirrors
一栏中填写加速器地址 https://registry.docker-cn.com
,之后点击 Apply
保存后 Docker
就会重启并应用配置的镜像地址了。
2.4、macOS
对于使用 macOS
的用户,在任务栏点击 Docker for mac
应用图标 -> Perferences...
-> Daemon
-> Registry mirrors
。在列表中填写加速器地址 https://registry.docker-cn.com
。修改完成之后,点击 Apply & Restart
按钮,Docker
就会重启并应用配置的镜像地址了。
2.5、检查加速器是否生效
配置加速器之后,如果拉取镜像仍然十分缓慢,请手动检查加速器配置是否生效,在命令行执行 docker info
,如果从结果中看到了如下内容,说明配置成功。
Registry Mirrors:
https://xxxxxxxx.mirror.aliyuncs.com
三、Docker 镜像
3.1、获取镜像
之前提到过,Docker Hub 上有大量的高质量的镜像可以用,这里我们就说一下怎么获取这些镜像。
从 Docker 镜像仓库获取镜像的命令是 docker pull
。其命令格式为:
docker pull [选项] [Docker Registry 地址[:端口号]/]仓库名[:标签]
具体的选项可以通过 docker pull --help
命令看到,这里我们说一下镜像名称的格式。
Docker
镜像仓库地址:地址的格式一般是<域名/IP>[:端口号]
。默认地址是Docker Hub
。
仓库名:如之前所说,这里的仓库名是两段式名称,即 <用户名>/<软件名>
。对于 Docker Hub
,如果不给出用户名,则默认为 library
,也就是官方镜像。
比如:
$ docker pull ubuntu:16.04
16.04: Pulling from library/ubuntu
4f53fa4d2cf0: Pull complete
6af7c939e38e: Pull complete
903d0ffd64f6: Pull complete
04feeed388b7: Pull complete
Digest: sha256:185fec2d6dbe9165f35e4a1136b4cf09363b328d4f850695393ca191aa1475fd
Status: Downloaded newer image for ubuntu:16.04
docker.io/library/ubuntu:16.04
上面的命令中没有给出 Docker 镜像仓库地址,因此将会从 Docker Hub 获取镜像。而镜像名称是 ubuntu:16.04
,因此将会获取官方镜像 library/ubuntu
仓库中标签为 16.04
的镜像。
从下载过程中可以看到我们之前提及的分层存储的概念,镜像是由多层存储所构成。下载也是一层层的去下载,并非单一文件。下载过程中给出了每一层的 ID 的前 12 位。并且下载结束后,给出该镜像完整的 sha256
的摘要,以确保下载一致性。
在使用上面命令的时候,你可能会发现,你所看到的层 ID
以及 sha256
的摘要和这里不一样。这是因为官方镜像是一致在维护的,有任何新的 bug
,或者版本更新,都会进行修复再以原来的标签发布,这样可有确保任何使用这个标签的用户可以获得更安全、更稳定的镜像。
如果从 Docker Hub
下载镜像非常缓慢,可以参照 镜像加速器
一节配置加速器。
3.1.1、运行
有了镜像后,我们就能够以这个镜像为基础启动并运行一个容器。以上面的 ubuntu:16.04
为例,如果我们打算启动里面的 bash
并且进行交互式操作的话,可以执行下面的命令。
$ docker run -it --rm \
ubuntu:16.04 \
bash
root@e7009c6ce357:/# cat /etc/os-release
NAME="Ubuntu"
VERSION="16.04.4 LTS, Trusty Tahr"
ID=ubuntu
ID\_LIKE=debian
PRETTY\_NAME="Ubuntu 16.04.4 LTS"
VERSION\_ID="16.04"
HOME\_URL="http://www.ubuntu.com/"
SUPPORT\_URL="http://help.ubuntu.com/"
BUG\_REPORT\_URL="http://bugs.launchpad.net/ubuntu/"
docker run
就是运行容器的命令,我们这里简要的说明一下上面用到的参数。
it
:这是两个参数,一个是-i
:交互式操作,一个是-t
终端。我们这里打算进入bash
执行一些命令并查看返回结果,因此我们需要交互式终端。--rm
:这个参数是说容器退出后随之将其删除。默认情况下,为了排障需求,退出的容器并不会立即删除,除非手动docker rm
。我们这里只是随便执行个命令,看看结果,不需要排障和保留结果,因此使用--rm
可以避免浪费空间。ubuntu:16.04
:这是指用ubuntu:16.04
镜像为基础来启动容器。bash
:放在镜像名后的是命令,这里我们希望有个交互式 Shell,因此用的是bash
。
进入容器后,我们可以在 Shell 下操作,执行任何所需的命令。这里,我们执行了 cat /etc/os-release
,这是 Linux 常用的查看当前系统版本的命令,从返回的结果可以看到容器内是 Ubuntu 16.04.4 LTS
系统。
最后们通过 exit
或者 Ctrl + D
退出了这个容器。
3.2、列出镜像
要想列出已经下载下来的镜像,可以使用 docker image ls
命令。
$ docker image ls
REPOSITORY TAG IMAGE ID CREATED SIZE
redis latest 5f515359c7f8 5 days ago 183 MB
nginx latest 05a60462f8ba 5 days ago 181 MB
mongo 3.2 fe9198c04d62 5 days ago 342 MB
<none> <none> 00285df0df87 5 days ago 342 MB
ubuntu 16.04 f753707788c5 4 weeks ago 127 MB
ubuntu latest f753707788c5 4 weeks ago 127 MB
ubuntu 14.04 1e0c3dd64ccd 4 weeks ago 188 MB
列表包含了 仓库名
、标签
、镜像 ID
、创建时间
、以及 所占用的空间
。
其中仓库名、标签在之前的基础概念已经介绍过了。镜像 ID 则是镜像的唯一标识,一个镜像可以对应多个标签。因此,在上面的例子中,我们可以看到 ubuntu:16.04
和 ubuntu:latest
拥有相同的 ID,因为它们对应的是同一个镜像。
3.2.1、镜像体积
如果仔细观察,会注意到,这里标识的所占用空间和在 Docker Hub 上看到的镜像大小不同。比如, ubuntu:16.04
镜像大小,在这里是 127MB
,但是在 Docker Hub 显示的却是 50MB
。这是因为 Docker Hub 中显示的体积是压缩后的体积。在镜像下载和上传过程中镜像是保持着压缩状态的,因此 Docker Hub 所显示的是镜像下载到本地后,展开的大小,准确说,是展开后的各层所占空间的总和,因为镜像到本地后,查看空间的时候,更关心的是本地磁盘空间占用的大小。
另外一个需要注意的问题是, docker image ls
列表中的镜像体积总和并非是所有镜像实际硬盘消耗,由于 Docker 镜像是多层存储结构,并且可以继承、复用,因此不同镜像可能会因为使用相同的基础镜像,从而拥有共同的层。由于 Docker 使用 Union FS,相同的层只需要保存一份即可,因此实际镜像硬盘占用空间很可能要比这个列表镜像大小的总和要小的多。
你可以通过以下命令来便捷的查看镜像、容器、数据卷所占用空间。
$ docker system df
TYPE TOTAL ACTIVE SIZE RECLAIMABLE
Images 24 0 1.992GB 1.992GB (100%)
Containers 1 0 62.82MB 62.82MB (100%)
Local Volumes 9 0 652.2MB 652.2MB (100%)
Build Cache
3.2.2、虚悬镜像
尚明的镜像列表中,还可以看到一个特殊的镜像,这个镜像既没有仓库名,也没有标签,均为 <none>
。:
<none> <none> 00285df0df87 5 days ago 342 MB
这个镜像原本是有镜像名和标签的,原来为 mongo:3.2
,随着官方镜像维护,发布了新版本后,重新 docker pull mongo:3.2
时, mongo:3.2
这个镜像名被转移到了新下载的镜像身上,而旧的镜像上的这个名称则被取消,从而成为了 <none>
。除了 docker pull
可能导致这种情况, docker build
也同样可以导致这种现象。由于新旧镜像同名,旧镜像名称被取消,从而出现仓库名、标签均为 <none>
的镜像。这类无标签镜像也被称之为 虚悬镜像(dangling image),可以用下面的命令专门显示这类镜像:
$ docker image ls -f dangling=true
REPOSITORY TAG IMAGE ID CREATED SIZE
<none> <none> 00285df0df87 5 days ago 342 MB
一般来说,虚悬镜像已经失去了存在的价值,是可以随意删除的,可以用下面的命令删除。
$ docker image prune
3.2.3、中间层镜像
为了加速镜像构建、重复利用资源,Docker 会利用 中间层镜像。所以在使用一段时间后,可能会看到一些依赖的中间层镜像。默认的 docker image ls
列表中只会显示顶层镜像,如果希望显示包括中间层镜像在内的所有镜像的话,需要加 -a
参数。
$ docker image ls -a
**网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。**
**需要这份系统化的资料的朋友,可以添加V获取:vip204888 (备注大数据)**
![img](https://img-blog.csdnimg.cn/img_convert/be62d6dc5ea3bb41669de14ad6956caa.png)
**一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!**
$ docker image prune
##### 3.2.3、中间层镜像
为了加速镜像构建、重复利用资源,Docker 会利用 **中间层镜像**。所以在使用一段时间后,可能会看到一些依赖的中间层镜像。默认的 `docker image ls` 列表中只会显示顶层镜像,如果希望显示包括中间层镜像在内的所有镜像的话,需要加 `-a` 参数。
$ docker image ls -a
网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。
需要这份系统化的资料的朋友,可以添加V获取:vip204888 (备注大数据)
[外链图片转存中…(img-OL3fkSut-1713355095871)]
一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!