下载Oracle VM VirtualBox,用来创建Linux虚拟机
- Oracle VM VirtualBox官网
- 进入官网后的页面,点击Download VirtualBox 6.1
3. 下载Windows版本的VirtualBox
下载CentOS镜像
- CentOS下载
- 点击链接后的页面
- 我选择的是CentOS Linux DVD ISO,选择后打开的页面。据说下载aliyun的速度会快一点。
使用上面下载的Oracle VM VirtualBox,搭配CentOS.iso创建Linux虚拟机 & 如何ping通宿主机和虚拟机
可以参考这个VirtualBox下安装CentOS7系统
因为CentOS8下载docker太多坑了,我切换成CentOS7
之前本机连接过CentOS8,后面尝试用本机连CentOS7时,报了:WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED! 的错误。具体解决方法,网上有很多,这里放一个连接跳转。
Mac和Linux远程连接服务器异常修复
至此,虚拟机就搭建好了。而且也能够通过本机ssh方式连接虚拟机操作。Oracle VM VirtualBox上操作虚拟机的界面很不友好。
虚拟机安装docker
首先把虚拟机的防火墙关了
# 关闭防火墙
systemctl stop firewalld.service
# 永久关闭防火墙
systemctl disable firewalld.service
一开始下载的是CentOS8,在安装docker过程中遇到各式各样的问题。中途查了很多资料最终也么有解决问题。这里还是把过程中查到觉得有用的资料列出来。
我从CentOS8切换成CentOS7,再试一下。
后面用回自己的电脑,不用公司的网络和电脑。发现就没有那么多乱七八糟的问题出现。
正式安装docker
- 可以参考官网Install Docker Engine on CentOS
- 不想看英文,也可以借鉴这篇文章Centos7上安装docker
- docker-compose安装-官网
具体命令:
#1 确保 yum 包更新到最新
sudo yum update
#2 卸载旧版本(如果安装过旧版本的话)
sudo yum remove docker docker-common docker-selinux docker-engine
#3 安装需要的软件包, yum-util 提供yum-config-manager功能,另外两个是devicemapper驱动依赖的
sudo yum install -y yum-utils device-mapper-persistent-data lvm2
#4 设置yum源
sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
#5 安装docker
sudo yum install docker-ce
#6 启动并加入开机启动
sudo systemctl start docker
sudo systemctl enable docker
#7 验证安装是否成功
docker version
#8 后面会用到docker-compose
sudo curl -L "https://github.com/docker/compose/releases/download/1.25.5/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
#9 赋予权限
sudo chmod +x /usr/local/bin/docker-compose
关于宿主机与虚拟机的连接
当虚拟机ping不通宿主机时,可以看看这篇文章。虚拟机ping不通主机,但是主机可以ping通虚拟机
下载Gitlab
- 打开Docker Hub
2. 选择想要的版本
3. 查看官网的安装文档
4. 这里有3种安装方式,正常我们应该只用到Docker Engine & Docker Compose
使用Docker Compose的方式安装
- 拉GItlab镜像
docker pull store/gitlab/gitlab-ce:11.10.4-ce.0
2. 查看镜像是否拉取成功
docker images
3. 跟着官网的步骤,写一个docker-compose.yml的文件
4. 关于docker-compose.yml
web:
image: 'gitlab/gitlab-ce:latest'
restart: always
hostname: 'gitlab.com'
environment:
GITLAB_OMNIBUS_CONFIG: |
external_url 'http://192.168.0.10' -> 这里要改成IP地址,例如,我的IP是:192.168.0.10
ports:
- '80:80'
- '443:443'
- '2222:22' -> 我虚拟机22的端口给ssh占用了,所以我这里改成了2222
volumes:
- '/srv/gitlab/config:/etc/gitlab'
- '/srv/gitlab/logs:/var/log/gitlab'
- '/srv/gitlab/data:/var/opt/gitlab'
虚拟机,我选了两个网卡:NAT + 桥接网络
NAT,用来做端口映射
桥接网络,用来做宿主机和虚拟机连接
# 查看虚拟机ip地址
ip address
这里圈出来的ip与docker-compose.yml中的ip对应
关于虚拟机不同的网络模式的作用,具体可以百度一下
设置网络模式这一块,一开始也卡了我很久,现在也还是一知半解的,就不误导大家了。
可以参考这篇文章:VMware虚拟机三种网络模式详解
.
5. 启动Gitlab
docker-compose up -d
# 查看container的状态,从starting,到health时,就启动好了
docker ps
6. 虚拟机的端口映射
打开VirtualBox,找到对应的虚拟机,根据截图中的数字步骤执行。
将Gitlab用到的80端口映射出来
7. 回到宿主机,输入虚拟机的ip地址访问Gitlab
8. 这里要求修改root账号的密码,初始化root的密码后,就可以真正的进到主页了。
剩下的就是平时我们做的创建项目、pull & push code的操作了。
至此,从虚拟机 到 docker 到 网络设置 到 gitlab 就结束了。
折腾了一天多终于搞好了。花费的时间主要是,一开始想要用公司的电脑折腾的,碰巧这周的VPN很不稳定,经常断线。又重新用回自己的电脑折腾。其二是在网络设置那一块花费了不少的时间。
接下来会把Gitlab的CI/CD、Gitlab CI/CD的执行情况(Monitoring)、SonarQube的步骤给完善了,尽量的重现项目组中:代码管理、自动化部署、代码质量监控的流程。
这篇文章主要也是作为自己学习过程中的记录,当中肯定存在多余、错误的步骤,还望各位大佬指导批评。
其他
从VirtualBox到Docker到Gitlab的安装
Gitlab CICD官网翻译
MySQL安装 & 使用
JDK安装 & 版本查看
中间件Solace pubsub+安装时抛time out
Upsource安装 & 使用
Docker安装Gitlab runner
Docker部署Gitlab,ssh端口不用22的解决方法
Docker部署Gitlab,http端口不用80的解决方法
Gitlab runner的注册 & 使用
gitlab-monitor 配置和使用
Upsource集成Gitlab的身份验证