个人亲自录制全套DevOps系列实战教程 :​​手把手教你玩转DevOps全栈技术​

DevOps是什么?

DevOps(Development和Operations的组合词)是一种重视“软件开发人员(Dev)”和“IT运维技术人员(Ops)”之间沟通合作的文化、运动或惯例。

透过自动化“软件交付”和“架构变更”的流程,来使得构建、测试、发布软件能够更加地快捷、频繁和可靠。


DevOps实战系列【第一章】:详解DevOps运行环境_docker

运行环境:OMV

本文采用omv nas服务器作为运行环境,当然有条件或根据自己喜好可以选择Proxmox、OpenStack等环境均可。

omv的安装很简单,官网下载iso镜像写入到U盘,引导安装即可。

Docker环境

因为omv是一个底层linux系统,而他可以直接安装docker服务(通过插件的方式安装)并同时安装portainer图形界面来管理docker容器。具体插件安装就不细说了。

当然如果使用proxmox等虚拟服务器的,可以单台虚拟机安装或组建k8s安装devops的各个组件,这是都可以的,而我这里使用的是omv,所以都在docker中以容器的方式安装各个组件。

后续我会单独讲一下升级成proxmox虚拟化和k8s的过程。此处如果大家没有omv环境,只是一台单物理linux或一台虚拟机linux,只需要安装一个docker服务就行了,

安装方法比较简单,网上也有很多教程,避免浪费时间且不是我要讲的重点就不说了。

注意:docker安装完后,避免拉取镜像较慢,需要更换成国内镜像源,或使用阿里云镜像加速,本人使用的是阿里云镜像加速。

我的加速地址是:​​https://mtu7rhzd.mirror.aliyuncs.com​​ 将地址给docker的配置即可:/etc/docker/daemon.json

sudo mkdir -p /etc/docker
sudo tee /etc/docker/daemon.json <<-'EOF'
{
"registry-mirrors": ["https://mtu7rhzd.mirror.aliyuncs.com"]
}
EOF
sudo systemctl daemon-reload
sudo systemctl restart docker

补充[docker 安装]:避免有些小伙伴对安装docker不熟悉,这里补充下安装脚本:基于centos7安装
官网参考:​​​https://docs.docker.com/engine/install/centos/​

# 安装必要依赖
yum install -y yum-utils device-mapper-persistent-data lvm2
# 添加阿里云的 docker-ce yum源,避免连接到国外无法现在成功
yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
# 重建 yum 缓存
yum makecache fast
# 查看可用 docker 版本
yum list docker-ce.x86_64 --showduplicates | sort -r
# 根据以上列出的支持版本,此处选择docker-ce-20.10.8-3.el7版本【注意版本号不包含“:”与之前的数字】
yum install -y docker-ce-20.10.8-3.el7
# 验证
docker version

补充[docker compose安装]:
官方地址:​​​https://docs.docker.com/compose/install/other/​​​ 离线地址:​​​https://github.com/docker/compose/releases/tag/v2.12.2​

# 在线从github拉取并安装到/usr/local/bin目录 curl -SL https://github.com/docker/compose/releases/download/v2.12.2/docker-compose->linux-x86_64 -o /usr/local/bin/docker-compose # 添加执行权限 sudo chmod +x /usr/local/bin/docker-compose # 验证 docker-compose version

Portainer安装:​​https://docs.portainer.io/start/install​

docker run -d \ -p 8000:8000 \ -p 9443:9443 \ --name portainer \ --restart=always -v /var/run/docker.sock:/var/run/docker.sock -v /docker/portainer/data:/data portainer/portainer-ce:latest

OMV的docker目录规划

因为我的机器是1块128G固态+1块1T机械硬盘,而通过df -h命令可以知道磁盘挂载情况DevOps实战系列【第一章】:详解DevOps运行环境_docker_02


如图可知,1T硬盘挂载在”“目录,为了方便我本想将docker的根据目录设置到/srv/dev-disk-by-uuid-27aed415-2dc4-4511-ae70-e0ec850787dd/下的docker目录,在把这个docker通过软连接的方式链接到/docker目录,但是实际操作在omv安装docker指定根目录时,如果用/srv/dev-disk-by-uuid-27aed415-2dc4-4511-ae70-e0ec850787dd/docker会报错,无奈只能使用原始目录作为docker的根目录,即/var/lib/docker,所以只能将这个docker映射到/docker目录,后续有时间可以研究下将docker服务的跟目录改到1T硬盘上。