Docker持续集成部署分布式环境搭建
- 1. 安装java环境
- 2. 安装数据库MYSQL
- 3. 安装Docker
- 3.1 Docker常用命令
- 3.2 Docker 自定义镜像
- 3.3 Docker 守护进程运行
- 3.4 为Docker 设置数据卷
- 3.5 Docker-Compose工具(更好用的命令工具)
- 安装Docker compose
- 3.6 Docker-compose 启动springboot项目
- 3.7 使用网桥实现跨主机docker通信
- 4. 自动化部署
- 4.1 Git 配置免密登陆
- 配置内容如下
1. 安装java环境
- 下载java linux安装包jdk-8u201-linux-x64.tar.gz
- 在linux下创建soft 文件夹,移动到改文件夹
- tar -xzvf jdk-8u201-linux-x64.tar.gz 解压
- mkdir /usr/local/java 创建文件夹
- mv jdk1.8.0_201//usr/local/java 移动到java文件夹下
- vi /etc/environment配置系统环境变量
- export JAVA_HOME=/usr/local/java/jdk1.8.0_201
export PATH=PATH
export CLASSPATH=.:JAVA_HOME/lib/tools.jar - 配置用户变量 vi /etc/profile
在两段代码直接配置第7点的代码 - 使之环境生效 source /etc/profile
2. 安装数据库MYSQL
- apt-get install mysql-server
- whereis mysql (查找mysql安装的路径)
- cd /etc/mysql/mysql.conf.d
- vi mysqld.cnf 打开mysql配置环境
- 注释掉bind-address 或者配置改成 0.0.0.0(所有人都能访问到)
- service mysql restart 重启mysql
- mysql -u root -p 登陆mysql
- 授权root用户允许所有人连接
grant all privileges on . toroot
@%
identified by ‘你的mysql root的账号密码’;
3. 安装Docker
1.使用脚本自动安装
curl -fsSL get.docker.com -o get-docker.sh sudo sh get-docker.sh -mirror Aliyun
- 通过docker -version 查看是否安装成功
- 配置国内代理镜像,加快下载速度(可不配置) 在/etc/docker/daemon.json中写入如下内容
2. {
“registry-mirrors”:[“https://registry.docker-cn.com”]
}或者
{
“registry-mirrors”:[“https://docker.mirrors.ustc.edu.cn”]
}
4.重启服务
sudo systemctl daemon-reload
sudo systemctl restart docker5.拉取 tomcat9的镜像 (docker pull ip:port/tomcat:jre-9)
docker pull tomcat 安装tomcat
docker pull tomcat:9-jre8 升级tomcat9
3-5步可省略
- 查看安装的镜像
docker imagers
7.运行镜像
docker run -p 8080:8080 tomcat (开启tomcat 8080端口)
3.1 Docker常用命令
- docker image ls 列出安装的镜像
- docker run -it --rm \ (回车) (-it 表示以交互式方式允许容器,–rm表示退出容器就立即删除这个容器new出来的本身对象)
- ubuntu:16.04 \ (回车)
- bash (回车) 允许bash这个程序
(1) 查看系统信息 cat /etc/os-release - exit 或 按Ctrl+d 退出容器
- docker images rm ID(镜像ID) 删除容器
- docker rmi 删镜像
(1)docker run -it 镜像ID bash 交互式地运行镜像
(2)docker exec -it 镜像ID
bash 交互式地进行镜像里面
3.2 Docker 自定义镜像
1.编写Dockerfile脚本 (以下举例tomcat为例子)
编写Dockfile文件
FROM tomcat (基于tomcat的镜像,继承)
WORKDIR /usr/local/tomcat/webapps/ROOT/ (切换到这个工作路径)
RUN rm -fr *
RUN echo “hello docker”> /usr/local/tomcat/webapps/ROOT/index.html
2.构建镜像命令
docker build -t myshop(名称) .(标签 点表示当前目录)
3.3 Docker 守护进程运行
-d 以守护态运行
docker run -p 8080:8080 -d tomcat
3.4 为Docker 设置数据卷
-v 数据卷 :/usr/local/docker/tomcat/ROOT
宿主机路径:/usr/local/docker/tomcat/webapps/ROOT tomcat 容器路径
docker run -p 8080:8080 –name tomcat -d -v
/usr/local/docker/tomcat/ROOT: /usr/local/docker/tomcat/webapps/ROOT tomcat
3.5 Docker-Compose工具(更好用的命令工具)
安装Docker compose
1.使用如下命令安装
sudo curl -L
"https://github.com/docker/compose/releases/download/1.24.0/docker-compose-$(uname
-s)-$(uname -m)" -o /usr/local/bin/docker-compose
- 如果下载速度慢,可改用如下地址安装
sudo curl -L “https://get.daocloud.io/docker/compose/releases/download/1.24.0/docker- compose-(uname -m)” -o /usr/local/bin/docker-compose
2.添加权限
sudo chmod +x /usr/local/bin/docker-compose
- docker-compose 运行
(1)当前目录下先配置docker-compose.yml配置文件
(2) 以守护态运行容器 docker-compose up -d
停止容器运行 docker-compose down
3.6 Docker-compose 启动springboot项目
[参考]() 1.创建Dockerfile文件内容如下
FROM java:8
MAINTAINER 70kg 449246146@qq.com
VOLUME /tmp ADD mystory-1.0.0-SNAPSHOT.jar app.jar RUN bash -c 'touch /app.jar'
ENTRYPOINT
["java","-Djava.security.egd=file:/dev/./urandom","-jar","/app.jar"]
介绍一下:
FROM :表示使用 Jdk8 环境 为基础镜像,如果镜像不是本地的会从 DockerHub 进行下载
MAINTAINER :指定维护者的信息
·
VOLUME :VOLUME 指向了一个/tmp的目录,由于 Spring Boot 使用内置的Tomcat容器,Tomcat 默认使用/tmp作为工作目录。这个命令的效果是:在宿主机的/var/lib/docker目录下创建一个临时文件并把它链接到容器中的/tmp目录
·
ADD :拷贝文件并且重命名(前面是上传jar包的名字,后面是重命名)
·
RUN :每条run指令在当前基础镜像执行,并且提交新镜像
·
ENTRYPOINT :为了缩短 Tomcat 的启动时间,添加java.security.egd的系统属性指向/dev/urandom作为 ENTRYPOINT
2.将创建好的Dockerfile文件和jar包上传到服务器,放在同一文件夹下,进入jar包所在文件夹,执行命
注意:后面末尾有一个空格和一个“.”,mystory是创建的镜像的名字,“.”表示当前目录
docker build -t mystory .
3.7 使用网桥实现跨主机docker通信
2.
3.
4. 自动化部署
4.1 Git 配置免密登陆
使用git工具
Ssh-keygen -t rsa -C “账号”
- 在linux服务器上安装git工具 apt-get install git 安装
- 查看版本 git version
- 配置免密登陆账号
ssh-keygen -t rsa -C xxxxxx@qq.com - 进入ssh的目录 cd /home/ubuntu/.ssh
vi id_rsa.pub 复杂公钥
配置到gitlab 的SSH中
- 拉取源代码 git clone
git clone git@gitlab.com:wx2019/dependences.git
- 创建本地maven
cd /usr/local
mkdir maven - 把本地maven 仓库上传到远程 这个maven文件夹
- 解压 tar -xzvf 压缩包名
- vi /etc/profile
配置maven环境变量和java环境变量(如果没有配置)
配置内容如下
export
MAVEN_HOME=/usr/local/maven/apache-maven-3.5.4
export
JAVA_HOME=/usr/local/ jdk-8u201-linux-x64
export
JRE_HOME=/usr/local/ jdk-8u201-linux-x64/jre
export PATH=$JAVA_HOME/bin:$JAVA_HOME/jre/bin:$MAVEN_HOME/bin
- source /etc/profile 生效
- 查看 java -version
Mvn -v - 打包
进入项目路径
mvn clean package -Dmaven.test.skip=true
如果没有配置项目的setting目录,则去到
Maven目录的conf的配置文件查看
cd .m2/repository