记录使用docker容器技术搭建gitlab与jenkins

目录

一、安装Xshell和Xftp

二、安装docker容器

三、安装docker-compse

四、通过docker-compose.yml 安装镜像容器

1.示例安装mysql

2.jenkins 的安装

3.gitlab的安装

4.使用gitlab上传一个可以docker部署的springBoot项目

总结


前言

一直想自己搭建一套基于docker的服务使用,前些日子用2000元买的零件组装了一台电脑当作服务器使用。之后在这台服务器上装了maven的私服和npm的私服,在这疫情期间便想着在上面装上jenkins和gitlab。想着现在docker很火,于是便在win10上装了vm虚拟机,在虚拟机上装了centos7系统。

这篇文章就是记录一下我的安装步骤,docker容器部署是非常方便的,不需要复杂的操作。

一、安装Xshell和Xftp

连接虚拟机centos7系统推荐使用Xshell 和Xftp7 , 通过这个地址

家庭/学校免费 - NetSarang Website 是可以免费下载的

然后查看虚拟机上是否安装了SSH命令:

rpm -qa | grep ssh

没安装SSH可以用这个命令进行安装

​yum install openssh-server

 启动服务命令:

systemctl start sshd

停止服务命令:

systemctl stop sshd

 查看是否启动22端口:

netstat -antp | grep sshd

开机启动命令:

systemctl enable sshd 

接下来远程连接到centos7后就不用在虚拟机中操作了

二、安装docker容器

Install Docker Engine on CentOS | Docker Documentation 这个网址是官方的安装示例
 

#更新yum
yum update

#安装需要的软件包
yum install -y yum-utils device-mapper-persistent-data lvm2

#设置阿里云镜像
yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo

#docker安装
yum install docker-ce

#查看版本
docker -v

#设置docker开机自启
systemctl enable docker

#关闭docker开机自启
systemctl disable docker

#查看正在运行的容器
docker ps

#查看所有容器
docker ps -a



三、安装docker-compse

docker安装完成后就可以用docker-compose来安装想要安装的服务了

第一步安装docker-compose命令

下载最新版的docker-compose文件

sudo curl -L "https://github.com/docker/compose/releases/download/1.28.6/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose




#添加可执行权限
sudo chmod +x /usr/local/bin/docker-compose


#查看版本
docker-compose --version

配置dockers 镜像加速

cat <<EOF > /etc/docker/daemon.json
{
  "registry-mirrors": [
    "https://docker.mirrors.ustc.edu.cn",
    "http://hub-mirror.c.163.com"
  ],
  "max-concurrent-downloads": 10,
  "log-driver": "json-file",
  "log-level": "warn",
  "log-opts": {
    "max-size": "10m",
    "max-file": "3"
    },
  "data-root": "/var/lib/docker"
}
EOF

四、通过docker-compose.yml 安装镜像容器

1.示例安装mysql

这里是配置好的docker-compose文件可以直接运行使用,下载地址:联想乐云

以mysql 服务为例

version: '3'
services:
  mysql:
    image: mysql:8.0
    container_name: mysql
    privileged: true
    restart: always
    ports:
      - 13306:3306
    environment:
      MYSQL_ROOT_HOST: '%'
      MYSQL_ROOT_PASSWORD: 123456
      TZ: Asia/Shanghai
    command:
      --wait_timeout=31536000
      --interactive_timeout=31536000
      --max_connections=1000
      --default-authentication-plugin=mysql_native_password
      --character-set-server=utf8mb4
      --collation-server=utf8mb4_general_ci
    restart: always
    volumes: 
      - "./data/db:/var/lib/mysql"  
      - "./data/conf/my.cnf:/etc/mysql/my.cnf"

直接将文件夹通过Xftp复制到虚拟机中,然后进入要安装镜像的docker-compose.yml 目录中用root执行  docker-compose --compatibility up -d
这样镜像就会安装,等待安装完成,我们通过docker ps 来查看运行中的镜像

 也可以用docker ps – a 来查看全部镜像

当然有一点我们要用命令给 mysql 开启远程连接

第一步使用命令进入mysql容器内部:

 docker exec -it mysql /bin/bash

然后执行

 mysql -u root -p

接着输入MYSQL_ROOT_PASSWORD配置的密码登入
 

alter user 'root'@'%' identified with mysql_native_password by '123456';

flush privileges;

这样我们就可以在其它机器上通过navicat 进行连接了。

2.jenkins 的安装

通过上面的地址下载的jenkins文件夹,将其复制进虚拟机中,

进入jenkins的docker-compose.yml文件夹中 执行安装命令:

docker-compose --compatibility up -d

安装完成后进入页面需要输入密码,一下是获取密码的命令:

docker exec -it jenkins /bin/bash
cat /var/jenkins_mount/secrets/initialAdminPassword

控制台将会打印密码出来,将密码复制出来登录进去就可以使用了。

3.gitlab的安装

gitlab 的安装方法也很简单,同样通过docker-compose 命令安装

完成之后第一次进入要使用默认的用户名和密码 ,默认用户名是root

密码通过命令获得:

 docker exec -it gitlab grep 'Password:' /etc/gitlab/initial_root_password 

我遇到的问题是通过这个密码登录不进去,怎么办呢?可以进入容器内部直接修改root的密码
先用命令进入gitlab容器中再执行:

gitlab-rake "gitlab:password:reset[root]"

接着输入最少8位数密码,就可以将root密码改了

然后我们在登录页使用root和新密码登录进去了

进去后页面都是英文的,英文很不友好,我们可以将页面语言改为中文

 这样看起来就很友好了,至此git私服也就搭建完成了

4.使用gitlab上传一个可以docker部署的springBoot项目

通过idea将之前写的一个答题题库管理小项目给上传上来了,通过在项目中增加了

Dockerfile  与docker-compose.yml ,这样我们就可以将项目部署到docker容器中

 Dockerfile文件如下:

# 基础镜像
FROM  openjdk:8-jre
# author
MAINTAINER msq

RUN ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime

EXPOSE 18082

COPY target/*.jar /wxdt.jar

ENTRYPOINT ["java","-jar","/wxdt.jar"]

docker-compose.yml 配置如下

version : '3'
services:
  wxdt:
    build:
      dockerfile: Dockerfile
    container_name: wxdt
    hostname: wxdt
    restart: on-failure
    environment:
      - TZ=Asia/Shanghai
    ports:
      - 18082:18082

记住一点,dockerfile中的端口一定要与项目中server.port的端口一致

通过docker ps 我们可以看到项目的运行情况

CONTAINER ID   IMAGE       COMMAND                 CREATED       STATUS       PORTS                      NAMES
27630720583d   wxdt_wxdt   "java -jar /wxdt.jar"   3 hours ago   Up 3 hours   0.0.0.0:18082->18082/tcp   wxdt

总结

我觉着这个docker容器技术就像 与spring 与springBoot 的区别,用起来非常方便,简化了繁琐的配置,部署起来非常的便捷快速。

  • 6
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 5
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值