什么是 DevOps?

DevOps 可加速从开发到生产环境部署的整个流程,使每个想法能更快地落地、更快地推向市场,为用户持续创造价值。这种方式需要开发团队和运维团队密切沟通、尽可能避免重复性任务,并且团队成员在协作时彼此体谅。此外,DevOps 还要能够方便扩展和灵活置备。团队成员可通过自助服务和自动化获取所需资源。在 Devops 中,开发人员通常在标准开发环境中编写代码,并会与 IT 运维人员密切协作,加快软件的构建、测试和发布,同时保证稳定与可靠。

DevOps的实践包括以下几个方面:

自动化部署:通过自动化部署,可以实现快速、可靠的软件交付。自动化部署可以包括容器化部署、虚拟化部署、云部署等。

自动化测试:自动化测试可以减少人为错误,提高软件质量。自动化测试可以包括单元测试、集成测试、性能测试、安全测试等。

自动化监控:自动化监控可以及时发现问题,并快速定位和解决问题。自动化监控可以包括应用程序监控、基础设施监控、日志监控等。

持续集成:持续集成可以帮助开发人员及时发现问题,并及时进行修复。持续集成可以包括代码集成、构建、测试和部署等。

持续交付:持续交付可以帮助企业更快、更可靠地交付软件。持续交付可以包括持续集成、自动化测试、自动化部署等。

敏捷开发:敏捷开发可以帮助开发人员更快、更高效地开发软件。

一、Centos环境安装Docker与Docker-compose

1、安装前

更新centos系统

yum update -y

2、卸载(非必选)

如果之前安装过旧版本的Docker,可以使用下面命令卸载:

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

阿里云仓库(推荐)

由于国外网络限制,国内仓库稳定,这里我们设置阿里云的的仓库。

# 阿里云仓库(推荐)
yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo

# 官方仓库(国内不太推荐使用,除非你可以强)
yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo

3、安装Docker

1、 yum安装gcc等相关软件包

yum -y install gcc gcc-c++ 

#安装docker引擎库:
yum install -y yum-utils \
           device-mapper-persistent-data \
           lvm2 --skip-broken

2、 更新本地镜像源,以下2个地址均可使用,按实际网络情况选择其一进行设置即可。

# 设置docker镜像源
yum-config-manager --add-repo http://download.docker.com/linux/centos/docker-ce.repo(中央仓库)

yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo(阿里仓库)

3、选择docker版本并安装

#查看哪些docker可以使用
yum list docker-ce --showduplicates | sort -r

4、安装Docker

#以下命令默认安装latest版本
yum install -y docker-ce

#安装指定版本命令,如3:26.1.4-1.el7的版本信息为26.1.4
yum install docker-ce-26.1.4 docker-ce-cli-26.1.4 containerd.io

5、检测docker是否安装成功

docker version

6、启动docker服务,并设置开机自动启动docker

#查看docker的服务状态
systemctl status docker

#启动docker服务
systemctl start docker

#设置开机启动docker服务
systemctl enable docker

#重启docker服务
systemctl restart docker

#停止docker服务
systemctl stop docker

卸载docker命令(额外补充,没事别尝试):

#移除docker
yum remove docker-ce docker-ce-cli containerd.io

#删掉docker的文件和第三方包
rm -rf /var/lib/docker
rm -rf /var/lib/containerd

如果启动时出现错误

提示:Job for docker.service failed because the control process exited with error code. See "systemctl status docker.service" and "journalctl -xe" for details.
# 进入docker目录
cd /etc/docker/
# 修改daemon的类型
mv daemon.json daemon.conf
# 重启docker
systemctl restart docker

然后输入命令,可以查看docker版本:

docker -v

如下图:

二、CentOS安装Docker-Compose

1、查看docker的版本

docker version

2、docker-compose版本选择

三种安装方法

  • 官方安装 - 速度慢,有可能被DNS污染导致失败。(国内安装可能会很慢)

  • 手动安装 - 手动下载,离线安装.。官网选择版本 https://github.com/docker/compose/releases

  • PIP在线安装 - 使用Python的PIP包管理工具在线安装 (不推荐)

2.1、Linux下需要通过命令下载:

# 安装
curl -L https://github.com/docker/compose/releases/download/2.39.1/docker-compose-`uname -s`-`uname -m` > /usr/local/bin/docker-compose

添加执行权限

chmod +x /usr/local/bin/docker-compose

检查docker compose版本

docker-compose version

2.2、手动安装

官网选择版本 https://github.com/docker/compose/releases

选择相应版本,下载docker-compose-Linux-x86_64到本地或者服务器中

根据docker版本选择对应的docker-compose版本。

下载后更名为docker-compose,并移动到 /usr/local/bin 目录下

添加执行权限

chmod +x /usr/local/bin/docker-compose

检查docker compose版本

docker-compose version

三、通过docker安装gitlab

1、创建gitlab安装目录

mkdir -p /usr/local/docker/gitlab_docker

进入刚才建立的gitlab目录

cd /usr/local/docker/gitlab_docker

2、下载gitlab镜像

docker pull gitlab/gitlab-ce:latest

3、创建docker-compose.yml

#在 /usr/local/docker/gitlab_docker 下建立docker-compose.yml
vim docker-compose.yml

输入以下内容保存

version: '3.1'
services:
  gitlab:
    image: 'gitlab/gitlab-ce:latest'
    container_name: gitlab
    #随着docker重启自动启动
    restart: always
    environment:
      GITLAB_OMNIBUS_CONFIG: |
        #宿主机ip,ip地址为服务器的IP,自行修改
        external_url 'http://192.10.10.38:8929'
        gitlab_rails['gitlab_shell_ssh_port'] = 2224
    #端口号映射
    ports:
      - '8929:8929'
      - '2224:2224'
    #数据卷映射
    volumes :
      - './config:/etc/gitlab'
      - './logs:/var/1og/gitlab'
      - './data:/var/opt/gitlab'

4、运行docker-compose

docker-compose up -d

查看启动日志

docker-compose logs -f

稍等片刻,如果没看到错误日志,证明已经正常启动。

5、开放gitlab端口

开放GitLab对应的端口

firewall-cmd --zone=public --add-port=8929/tcp --permanent

重启防火墙

systemctl restart firewalld

6、验证GitLab登录

GitLab的默认登录账号为root,密码需要进入docker容器中获取。

进入gitlab容器获取root账号登录密码

docker exec -it gitlab bash

获取密码

cat /etc/gitlab/initial_root_password

复制好密码后,打开浏览器进行登陆gitlab

登录GibLab

GitLab的默认登录账号为root

修改root密码:

首先点击头像弹出的层中的Preferences(如下图)

重置密码密码成功后点击Save password进行保存,保存后会自动退出到登录页面,用新的密码进行重新登录即可。