目录
一、安装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://get.daocloud.io/docker/compose/releases/download/1.25.1/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 的区别,用起来非常方便,简化了繁琐的配置,部署起来非常的便捷快速。