Jenkins+Gitlab+Docker实现微服务容器部署自动化
啥是容器部署自动化:
1. 容器:Linux容器不是模拟一个完整的操作系统,而是对进程进行隔离。有了容器,就可以将软件运行所需的所有资源打包到一个隔离的容器中。容器与虚拟机不同,不需要捆绑一整套的操作系统,只需要软件工作所需的库资源和设置。系统因此而变得高效轻量并且保证部署在任何环境中的软件都能运行;
2. 部署自动化:将项目的代码托管到Gitlab/Github/SVN时,会触发webhook去通知Jenkins将代码编译打包成一个可执行文件并通过执行相应脚本去相应的服务器运行该可执行文件
效果:
第一步、安装docker
## 安装一些必要的系统工具
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
## 更新yum缓存
yum makecache fast
## 安装 Docker-ce
yum -y install docker-ce
## 启动 Docker 后台服务
systemctl start docker
## 测试运行 hello-world
docker run hello-world
## 配置docker镜像加速器
## 修改daemon配置文件/etc/docker/daemon.json来使用加速器
sudo mkdir -p /etc/docker
sudo tee /etc/docker/daemon.json <<-'EOF'
{
"registry-mirrors": ["https://kb64la55.mirror.aliyuncs.com"]
}
EOF
sudo systemctl daemon-reload
sudo systemctl restart docker
第二步、使用docker 搭建jenkins
2.1、新建jenkins的 Dockerfile并构建成镜像运行
vi Dockerfile
## 添加如下内容
FROM jenkins
USER root
RUN apt-get update && apt-get install -y sudo && rm -rf /var/lib/apt/lists/*
RUN echo "jenkins ALL=NOPASSWD: ALL" >> /etc/sudoers
USER jenkins
## 执行构建镜像命令
docker build -t jenkins .
## 查看构建的jenkins镜像
docker images
## 运行jenkins镜像
docker run --memory 2.0G --name jenkins -p 18181:8080 -p 50000:50000 -u root -d --env JAVA_OPTS="-Xms256m -Xmx512m -XX:MaxNewSize=256m" -v /var/run/docker.sock:/var/run/docker.sock -v /usr/bin/docker:/usr/bin/docker -v /home/zhexing/software/jenkins:/var/jenkins_home -v /usr/lib64/libltdl.so.7:/usr/lib/x86_64-linux-gnu/libltdl.so.7 myjenkins