
DevOps搭建[一]-Docker+Gitlab
什么是 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进行保存,保存后会自动退出到登录页面,用新的密码进行重新登录即可。