【云原生•容器】搬砖高手揭秘:5分钟快速构建企业级Docker全攻略
📚「本系列博文旨在深入探索容器技术,特别是Docker的应用和原理,无论是对Docker感兴趣的新手还是希望进一步提升技能的专业人士,本系列将是一条理想的学习路径。接下来的规划中,我们将通过二十多个章节从基础到高级逐步理解容器技术,全面覆盖Docker和容器技术的核心内容,希望帮助读者在实际工作中高效应用容器技术。」
🚀 引言
「欢迎进入Docker的世界」
在当今快速发展的云计算时代,企业面临着越来越复杂的技术挑战。如何快速、高效地部署和管理应用成为了每个企业IT团队的核心任务。这时,Docker就像一股清流,为企业级应用部署带来了革命性的变化。
「为什么选择Docker?」
首先,让我们来简单回顾一下Docker的魔力。Docker是一个开放平台,用于开发、交付和运行应用程序。通过使环境一致性得以保持,从而简化了程序的部署工作,并且通过容器化,使得应用可以在几乎任何地方无缝运行。
🔍 深入了解Docker的版本
在我们深入探讨企业级Docker部署之前,了解Docker的不同版本及其特性至关重要。Docker作为一个行业领先的容器化平台,提供了多个版本,以适应不同规模和需求的企业环境。
「Docker Engine - 社区版 (CE,Community Edition)」: 这是Docker的免费版,主要面向开发人员和小型团队。它提供了基本的容器化功能,适合那些希望探索Docker技术或在小型项目中实施容器化的用户。
「Docker Engine - 企业版 (EE,Enterprise Edition)」: 专为企业级用户设计,EE版在社区版的基础上增加了高级功能,如集成安全性、管理和支持服务。这些功能对于需要在生产环境中部署和管理大规模容器化应用的企业至关重要。
🛠️ CentOS 宿主机上安装 Docker
在大多数Linux发行版上,您可以使用官方的安装脚本或包管理器来安装Docker。
🔧 「一、使用脚本快速安装」
在测试或开发环境中Docker官方为了简化安装流程,提供了一套便捷的安装脚本,CentOS系统上可以使用这套脚本安装:
[root@swarm-manager ~]# curl -fsSL https://get.docker.com -o get-docker.sh
[root@swarm-manager ~]# sh get-docker.sh --mirror Aliyun
执行这个命令后,脚本就会自动的将一切准备工作做好,并且把Docker CE安装在系统中。
⚙️ 「二、使用包管理器安装」
1、yum源操作:
[root@localhost ~]# yum update
[root@localhost ~]# yum install -y yum-utils device-mapper-persistent-data lvm2
#设置yum源
[root@localhost ~]# yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
2、可以查看所有仓库中所有docker版本,并选择特定版本安装
[root@localhost ~]# yum list docker-ce --showduplicates | sort -r
docker-ce.x86_64 3:18.09.3-3.el7 docker-ce-stable
docker-ce.x86_64 3:18.09.3-3.el7 @docker-ce-stable
docker-ce.x86_64 3:18.09.2-3.el7 docker-ce-stable
docker-ce.x86_64 3:18.09.1-3.el7 docker-ce-stable
docker-ce.x86_64 3:18.09.0-3.el7 docker-ce-stable
3、安装Docker,如下安装最新版本或者安装指定版本:
[root@localhost ~]# yum install docker-ce
4、启动Docker,并加入开机自启动:
[root@localhost ~]# systemctl start docker
[root@localhost ~]# systemctl enable docker
5、验证安装是否成功
[root@swarm-manager ~]# docker version
[root@swarm-manager ~]# docker info
❝docker version可以查看client和server相关组件的版本信息,docker info可以了解 Docker Engine 更多相关的信息,比如运行的容器数量,存储驱动、日志驱动、CPU和内存资源等等信息。
❞
👨💻 「三、建立Docker用户组」
1、在Linux环境下部署Docker时,使用非root用户进行操作是一个安全最佳实践。默认情况下,docker命令会使用Unix socket与Docker引擎通讯,而只有root用户和docker组的用户才可以访问Docker引擎的Unix socket。一般Linux系统上不会直接使用root用户进行操作,因此,需要将使用docker的用户加入到docker用户组。
# 新建用户组docker之前,查看用户组中有没有docker组,如果已经存在,则不需要再进行创建
# 检查指令 cat /etc/group | grep docker
[root@swarm-manager ~]# groupadd docker
# 创建用户并加入到docker组下
[root@swarm-manager ~]# useradd -g docker docker
# 修改用户密码
[root@swarm-manager ~]# passwd docker
2、重启docker,然后使用docker用户就可以操作docker指令:
[root@swarm-manager ~]# systemctl restart docker
[root@swarm-manager ~]# su - docker
# docker version可以查看到client和server版本信息即正常
[docker@swarm-manager ~]$ docker version
🧪 配置镜像源
「虽然Docker官方也提供了公共的镜像仓库,但是从安全和效率等方面考虑,对于企业级生产环境来说:独立部署私有环境的Registry是非常必要的。」 所以Harbor孕育而生,Harbor是由VMware公司开源的企业级的Docker Registry管理项目,它包括权限管理(RBAC)、LDAP、日志审核、管理界面、自我注册、镜像复制和中文支持等功能。Harbor本身环境的部署和使用在后续章节介绍,这里就看docker如何对接到已经存在的harder registry上。
1、修改docker配置文件:/etc/docker/daemon.json
#添加如下内容(客户端访问的网址):
{
"insecure-registries": ["192.168.31.162:10000"]
}
192.168.31.162:10000
就是Harbor服务的地址,默认情况下,Harbor 不附带证书,以便可以通过 HTTP 连接到它。如果生产环境和外部网络连接隔离的,可以采用,不过对于生产环境最好还是建议使用 HTTPS,步骤稍微麻烦些,需要在/etc/docker/certs.d/目录中添加对应证书才能正常登录,具体配置参加Harbor环境部署章节再说。
2、重启docker:
[root@swarm-manager ~]# systemctl restart docker
3、登录registry:
[root@swarm-manager ~]# docker login 192.168.31.162:10000
#或者
[root@swarm-manager ~]# docker login -uadmin -p123456 192.168.31.162:10000
4、测试推送镜像:将一个本地镜像修改 tag 推送到Harbor Registry上
[root@k8s-03 harbor]# docker tag tomcat:latest 192.168.31.162:10000/library/tomcat:8.0
[root@k8s-03 harbor]# docker push 192.168.31.162:10000/library/tomcat:8.0
在harber
管理界面查看,在library项目下就会存在刚才推送上来的tomcat
镜像:
🎉 修改镜像存储位置
Docker 默认的位置在/var/lib/docker,当前所有的镜像、容器都存储在这儿,可以通过docker info查看:
[root@swarm-manager ~]# docker info
...
Docker Root Dir: /var/lib/docker
/var一般是系统盘,镜像存储空间占用往往还比较大,所以,一般会将docker的镜像存储位置迁移到其它挂载的业务存储盘上。
「1、停止docker服务」
[root@swarm-manager ~]# systemctl stop docker
「2、修改docker服务启动文件」
[root@swarm-manager ~]# vi /usr/lib/systemd/system/docker.service
ExecStart=/usr/bin/dockerd -H fd:// --containerd=/run/containerd/containerd.sock --graph=/disk/docker
注意:
原配置保持不变,添加--graph=/disk/docker,/disk/docker是新的存储位置
-
以下两个文件均可修改docker配置:
/etc/systemd/system/multi-user.target.wants/docker.service /usr/lib/systemd/system/docker.service
「3、将原先目录下所有的文件和目录拷贝到新目录下」
[root@swarm-manager ~]# cp -rf /var/lib/docker/* /disk/docker/
[root@swarm-manager docker]# pwd
/disk/docker
[root@swarm-manager docker]# ls
builder buildkit containers image network overlay2 plugins runtimes swarm tmp trust volumes
「4、重新加载配置并启动」
[root@swarm-manager docker]# systemctl daemon-reload
[root@swarm-manager docker]# systemctl start docker
「5、检查docker信息」
[root@swarm-manager docker]# docker info
......
Docker Root Dir: /disk/docker
注:查看Docker Root Dir: /disk/docker 信息可看到,docker镜像存储位置已修改成功。
🏃 指定IP范围
Docker 在创建网络时默认使用 172.17.0.0/16 网段,容易与局域网内其它网段冲突,并且掩码为 16 位导致子网范围较大,可以通过docker inspect bridge
指令查看:
[root@swarm-manager ~]# docker inspect bridge
......
"Config": [
{
"Subnet": "172.17.0.0/16",
"Gateway": "172.17.0.1"
......
下面将介绍如何修改 docker 创建网络时的默认 IP 地址池范围。
1、修改配置文件指定默认 IP 地址池范围:/etc/docker/daemon.json
{
"default-address-pools": [
{"base": "10.1.0.0/16", "size": 24}
]
}
说明如下:
default-address-pools 用于设置 IP 地址池范围,格式为数组,可指定多个 IP 地址池范围;
base 用于指定 IP 地址池的范围,格式为 CIDR 格式;
size 用于指定分配子网的掩码长度;
2、重启 Docker 服务
[root@swarm-manager ~]# systemctl daemon-reload
[root@swarm-manager ~]# systemctl restart docker
查看是否成功文章来源:https://www.toymoban.com/news/detail-790990.html
关注回复:福利,有惊喜!!!
文章来源地址https://www.toymoban.com/news/detail-790990.html
到了这里,关于【云原生•容器】搬砖高手揭秘:5分钟快速构建企业级Docker全攻略的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!