一、Docker安装(CentOS)
1、准备工作
系统要求
以下为官网原文
To install Docker Engine, you need a maintained version of CentOS 7 or 8. Archived versions aren’t supported or tested.
The
centos-extras
repository must be enabled. This repository is enabled by default, but if you have disabled it, you need to re-enable it.The
overlay2
storage driver is recommended.
Docker 支持 64 位版本 CentOS 7/8,并且要求内核版本不低于 3.10。 CentOS 7 满足最低内核的要求,但由于内核版本比较低,部分功能(如 overlay2
存储层驱动)无法使用,并且部分功能可能不太稳定。
卸载旧版本
旧版本的Docker被称为Docker或Docker -engine。 如果安装了这些组件,运行以下命令进行卸载:
1 | bash复制代码$ sudo yum remove docker \ |
CentOS8额外设置
由于 CentOS8 防火墙使用了 nftables
,但 Docker 尚未支持 nftables
, 我们可以使用如下设置使用 iptables
:
更改 /etc/firewalld/firewalld.conf
1 | bash复制代码# FirewallBackend=nftables |
2、使用仓库方式进行安装
设置仓库
在新主机上首次安装Docker引擎之前,需要设置Docker仓库。安装yum-utils包(用到yum-config-manager工具)并设置仓库,鉴于国内网络问题,强烈建议使用国内源,官方源请在注释中查看。
1 | bash复制代码$ sudo yum install -y yum-utils |
如果需要测试版本的 Docker 请执行以下命令:
1 | bash复制代码$ sudo yum-config-manager --enable docker-ce-test |
安装Docker引擎
安装最新版本的Docker Engine和容器
1 | bash复制代码$ sudo yum install docker-ce docker-ce-cli containerd.io |
3、启动Dokcer
1 | bash复制代码$ sudo systemctl enable docker |
4、测试Docker安装是否正确
1 | bash复制代码$ docker run --rm hello-world |
5、后置配置
镜像加速
使用阿里云镜像加速服务
1 | bash复制代码sudo mkdir -p /etc/docker |
registry-mirrors
参数即镜像加速地址,开通服务获取即可。
添加内核参数
如果在 CentOS 使用 Docker 看到下面的这些警告信息:
1 | bash复制代码WARNING: bridge-nf-call-iptables is disabled |
请添加内核配置参数以启用这些功能。
1 | bash复制代码$ sudo tee -a /etc/sysctl.conf <<-EOF |
然后重新加载 sysctl.conf
即可
1 | bash复制代码$ sudo sysctl -p |
二、配置Docker对外开放接口
1、配置对外接口
- 修改docker配置文件
1 | bash复制代码vim /usr/lib/systemd/system/docker.service |
找到 ExecStart=/usr/bin/dockerd在后面添加tcp://0.0.0.0:端口号
1 | bash复制代码ExecStart=/usr/bin/dockerd -H tcp://0.0.0.0:9004 -H fd:// |
或者直接执行
1 | bash复制代码sed -i 's#/usr/bin/dockerd#& -H tcp://0.0.0.0:9004#' /usr/lib/systemd/system/docker.service |
- 重启docker
1 | bash复制代码 systemctl restart docker |
2、开放端口宿主机访问
- centos开放端口宿主机访问
1 | bash复制代码firewall-cmd --add-port=9004/tcp --permanent |
- 查询端口是否开启
1 | bash复制代码firewall-cmd --query-port=9004/tcp |
- 除此之外还可以开机自启动,将firewalld起起来即可,并且允许其自启动
1 | bash复制代码systemctl start firewalld |
3、查看docker版本信息
- 浏览器访问:
1 | bash复制代码 http://xx.xx.xx.xx:9004/version |
看到json信息则表示配置成功
三、安装配置Gitlab
1、拉取Gitlab镜像
1 | bash复制代码docker pull gitlab/gitlab-ce |
2、构建启动容器
- 创建gitlab日志,数据,配置的存放路径,通常会在构建容器的时间,会把配置 (etc) 、 日志 (log) 、数据 (data) 放到容器外面,方便后期数据迁移或者修改配置
1 | bash复制代码sudo mkdir -p /docker/gitlab/config /docker/gitlab/logs /docker/gitlab/data |
启动容器
1 | bash复制代码sudo docker run --d \ |
添加配置
1 | bash复制代码vim /docker/gitlab/config/gitlab.rb |
- 添加下面3行
1 | bash复制代码#配置http协议所使用的访问地址,不加端口号默认为80 |
- 看个人需要,一般而已都会限制内存,也可以在docker启动的时候配置,命令为-m 4G
1 | css复制代码docker update --memory 4096m --memory-swap -1 gitlab |
- 重启gitlab
1 | 复制代码docker restart gitlab |
- 进入gitlab容器
1 | bash复制代码docker exec -it gitlab bash |
- 重新载入配置文件,并开启
1 | bash复制代码gitlab-ctl reconfigure |
3、修改root用户密码
- 进入gitlab控制台
1 | bash复制代码gitlab-rails console -e production |
- 获得用户数据,修改用户密码
1 | bash复制代码user = User.where(id: 1).first |
- 重启gitlab需要等待一段时间才能访问,否则会出现502,如果出现502,还有可能是内存不够的原因,建议查看docker容器的gitlab日志
1 | bash复制代码docker restart gitlab |
四、安装配置Jenkins
1、准备工作
安装jdk
- 上传jdk压缩包到自定义目录,这里提供从官网拉下来的jdk1.8的linux版本
链接: pan.baidu.com/s/1DQxkbr4J…
提取码: qxu5
- 解压jdk压缩包到指定目录
1 | bash复制代码tar -zxvf jdk-8u202-linux-x64.tar.gz -C /opt/ |
安装maven
- 上传jdk压缩包到自定义目录,这里提供从官网拉下来的maven-3.8.4版本
链接: pan.baidu.com/s/198GSQQZT…
提取码: 87qb
1 | bash复制代码 tar -zxvf apache-maven-3.8.4-bin.tar.gz -C /opt/ |
安装git
这里使用yum安装
1 | 复制代码yum -y install git |
配置环境变量
- 修改环境变量配置文件
1 | bash复制代码vim /etc/profile |
- 在最后一行添加java环境变量和maven环境变量
1 | bash复制代码#java环境配置 |
- 立即重载配置
1 | bash复制代码source /etc/profile |
检查安装是否完成
- java
1 | 复制代码java -version |
- maven
1 | 复制代码mvn -v |
- git
1 | css复制代码git --version |
2、安装jenkins
拉取镜像
1 | bash复制代码docker pull jenkinsci/blueocean |
运行jenkins容器
1 | css复制代码docker run -d --name docker-jenkins -p 8008:8080 -p 50000:50000 jenkinsci/blueocean |
访问jenkins主页
浏览器打开ip:8008
, 正常情况下会出现解锁jenkins
页面
- 查看jenkins初始密码
1 | bash复制代码docker exec jenkins cat /var/jenkins_home/secrets/initialAdminPassword |
将打印出的密码粘贴到管理员密码
输入框中, 点击继续进入配置页面,这里选择安装推荐的插件,可能会有安装失败的插件,重试即可
- 创建用户
插件安装完成后,输入信息创建用户, 点击保存并完成
即可进入jenkins主页
- jenkins主页
3、配置
下面对 gitlab 以及 jenkins 进行配置
在容器内生成 ssh 公钥
- 进入容器
1 | bash复制代码docker exec -it jenkins bash |
- 生成密钥
1 | bash复制代码ssh-keygen -t rsa -C test@test.com |
连续回车三下生成密钥
- 查看密钥
1 | bash复制代码ls ~/.ssh |
可从容器中取出密钥文件
1 | bash复制代码docker cp jenkins:/var/jenkins_home/.ssh /tmp/ |
然后ftp下载文件查看密钥文件内容
gitlab配置公钥
gitlab主页右上角找到Preferences
菜单打开,找到SSH Keys
栏,将从上面获取id_rsa_pub
文件中的公钥配置到SSH keys中
jenkins配置
主要配置介绍
- 配置凭据
- 找到
Manage Credentials
菜单 - 点击
全局凭据
- 点击
添加凭据
进行如下配置:
其中Key为之前在jenkins容器中生成的RSA私钥, id_rsa
文件中的内容
- 系统配置中配置jdk,maven路径
- 全局工具配置,配置jdk,maven,git路径和上面的路径要保持一致(先忽略出现的黄字警告,后面会进行解决)
五、项目配置
1、jenkins新建项目
2、进行如下配置
3、保存项目并构建
查看控制台输出,出现如下图所示输出表示jenkins已经可以从gitlab上拉取代码到服务器了
接下来的一章介绍的是jenkins正式部署项目,并持续集成,敬请期待。
本文转载自: 掘金