docker 安装

发布于 2020-08-18  510 次阅读


Docker 学习笔记

Docker是基于 Go语言实现的开源容器项目。它诞生于2013年初,最初发起者是dotCloud 公司。Docker 项目

docker

Docker 安装

2.升级内核

在安装Docker前升级内核通常是D为了满足Docker对内核版本的要求或为了获取更好的Docker性能和功能支持。Docker在运行时依赖于一些Linux内核特性,因此较旧的内核可能不支持或存在一些限制,这可能导致Docker在运行时遇到问题。

一些常见的原因包括:

  1. Docker要求的最低内核版本:Docker对于不同版本的自身也有一些最低内核版本的要求。通过升级内核,可以确保您的系统满足Docker所需的最低内核版本。
  2. 支持更多的功能和特性:较新的内核版本通常会带来更多的功能和特性,这些特性可以优化Docker的性能、安全性和容器管理。升级内核可能会带来更好的Docker体验。
  3. 修复已知的问题和漏洞:内核升级通常包括安全修复和缺陷修复,这有助于提高系统的稳定性和安全性。

虽然升级内核可能有好处,但在执行内核升级之前,建议进行充分的备份并确保您了解升级过程中可能出现的风险和影响。在升级内核之前,您也可以查阅Docker官方文档,了解Docker对于内核版本的要求和建议。这样可以帮助您确定是否需要升级内核,以及升级到哪个版本。

升级内核版本选择可以通过 https://blog.buwo.net/1512.html 来了解

通过yum 升级内核

rpm --import https://www.elrepo.org/RPM-GPG-KEY-elrepo.org
rpm -Uvh http://www.elrepo.org/elrepo-release-7.0-2.el7.elrepo.noarch.rpm
##查看内核升级包的版本
#yum --disablerepo="*" --enablerepo="elrepo-kernel" list available
yum --enablerepo=elrepo-kernel install kernel-lt -y
sed -i 's/saved/0/g' /etc/default/grub
grub2-mkconfig -o /boot/grub2/grub.cfg
###检查默认内核
grubby --default-kernel
reboot
[root@k8s-master-01 ~]# uname -a
Linux k8s-master-01 5.15.0-1.el7.elrepo.x86_64 #1 SMP Sun Oct 31 17:19:16 EDT 2021 x86_64 x86_64 x86_64 GNU/Linux

3.安装Docker

3.1 卸载旧版本
较旧的Docker版本称为dockerdocker-engine。如果已安装这些程序,请卸载它们以及相关的依赖项。
rpm -qa|grep -i docker 查询已经安装的docker

yum remove docker \
                  docker-client \
                  docker-client-latest \
                  docker-common \
                  docker-latest \
                  docker-latest-logrotate \
                  docker-logrotate \
                  docker-engine

如果yum报告未安装这些软件包,则可以。
的内容(/var/lib/docker/包括图像,容器,卷和网络)被保留。现在将Docker Engine软件包称为docker-ce。

3.2安装方法(yum)
您可以根据需要以不同的方式安装Docker Engine:

  • 大多数用户会 设置Docker的存储库并从中进行安装,以简化安装和升级任务。这是推荐的方法。
  • 一些用户下载并手动安装 RPM软件包, 并完全手动管理升级。这在诸如在无法访问互联网的空白系统上安装Docker的情况下非常有用。
  • 在测试和开发环境中,一些用户选择使用自动 便利脚本来安装Docker。

2.2.1使用存储库安装
在新主机上首次安装Docker Engine之前,需要设置Docker存储库。之后,您可以从存储库安装和更新Docker。
设置存储库
安装yum-utils软件包(提供yum-config-manager 实用程序)并设置稳定的存储库。

yum install -y yum-utils
官网的yum源,国外
yum-config-manager \
    --add-repo \
    https://download.docker.com/linux/centos/docker-ce.repo
国内阿里的yum源
    https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo

3.3安装DOCKER引擎
安装最新版本的Docker Engine和容器,或转到下一步以安装特定版本:

yum install -y docker-ce docker-ce-cli containerd.io 

如果提示您接受GPG密钥,请验证指纹是否匹配

060A 61C5 1B55 8A7F 742B 77AA C52F EB6B 621E 9F35,如果是,则接受它。
启动Docker
systemctl start docker
systemctl enable docker

Docker swarm

docker swarm 它将一群docker 主机,虚拟成单一docker 主机.

docker 从1.12 版本以后已经内置了 swarm相关功能

应用场景:

互联网三高架构:高并发、高性能、高可用

部署一个三高架构可以从:横向分层、纵向分割、分布式、集群化、使用缓存、异步、使用冗余、自动化(发布、部署、监控)等方面去构建。

具体来数

docker 管理服务端口为2377,需要能被工作节点访问到。

主管理节点初始化

[root@swarm-master175 ~]# docker swarm init --advertise-addr 192.168.232.175:2377
Swarm initialized: current node (8v76pdj96uj9r7yfg9s1t8uyi) is now a manager.

To add a worker to this swarm, run the following command:

    docker swarm join --token SWMTKN-1-3g4s7pjnaw75e5dgg8hzfh0oeipgbs3yeylio608m08jf10s5y-4njpw4k92gmrfqncc1l0iixon 192.168.232.175:2377
To add a manager to this swarm, run 'docker swarm join-token manager' and follow the instructions.

该命令init 生成得是 node 节点 join 的token信息

生成其他master 加入的token 信息,需要在主mater 上执行docker swarm join-token manager

[root@swarm-master175 ~]# docker swarm join-token manager
To add a manager to this swarm, run the following command:

    docker swarm join --token SWMTKN-1-3g4s7pjnaw75e5dgg8hzfh0oeipgbs3yeylio608m08jf10s5y-a0iz73itcutd8sn66iad5hf3z 192.168.232.175:2377
###和

查看集群信息

[root@swarm-master175 ~]# docker node ls
ID                            HOSTNAME          STATUS    AVAILABILITY   MANAGER STATUS   ENGINE VERSION
8v76pdj96uj9r7yfg9s1t8uyi *   swarm-master175   Ready     Active         Leader           24.0.5
d8d9vm8k6y3m0hgtrwxl9q6j6     swarm-master176   Ready     Active         Reachable        24.0.5
5megpryp5327demu2fukk5gr5     swarm-master177   Ready     Active         Reachable        24.0.5

docker 创建网卡

docker network create --driver overlay --subnet=192.168.1.0/24 my_overlay_network

Docker支持多种类型的网络,每种网络类型都有不同的特点和用途。以下是Docker中常见的几种网络类型:

  1. Bridge网络(桥接网络):
    • Bridge网络是Docker默认创建的网络类型,用于在单个Docker主机上连接多个容器,并为它们提供通信。
    • 默认情况下,每个容器都会连接到名为bridge的默认Bridge网络。
    • 容器在同一Bridge网络中可以直接通过IP地址进行通信,也可以通过容器名称进行访问。
    • Bridge网络可以通过docker network create命令创建自定义Bridge网络。
  2. Host网络:
    • Host网络将容器直接连接到主机的网络栈,容器和主机共享相同的网络命名空间。
    • 使用Host网络可以让容器绕过Docker虚拟网络,从而实现最佳的网络性能。
    • 使用Host网络时,容器的端口直接映射到主机上,不需要进行端口映射。
  3. Overlay网络:
    • Overlay网络用于连接Docker Swarm集群中的多个主机上的容器,实现跨节点通信。
    • 它是Docker Swarm的一项功能,允许容器在集群中通过Overlay网络进行互联。
    • Overlay网络可以在Swarm集群中创建,并在集群中的所有节点上使用。
  4. Macvlan网络:
    • Macvlan网络允许将容器直接连接到物理网络,每个容器都有自己的MAC地址,就像物理网络接口一样。
    • 这使得容器可以直接通过物理网络进行通信,而不需要进行NAT转换。
    • Macvlan网络适用于需要容器直接与物理网络进行通信的场景。
  5. None网络:
    • None网络表示容器没有网络连接,它与主机和其他容器之间没有网络通信。
    • 使用None网络时,容器通常只能通过主机进行访问。

通过使用这些不同类型的网络,Docker可以满足各种应用场景的网络需求。您可以根据具体的应用需求选择适合的网络类型来连接和组织容器。