欢迎光临
我的个人博客

Centos以RPM方式安装java

smallchill阅读(144)

检验系统原版本:

[root@localhost /]# java -version
openjdk version "1.8.0_161"
OpenJDK Runtime Environment (build 1.8.0_161-b14)
OpenJDK 64-Bit Server VM (build 25.161-b14, mixed mode)

进一步查看JDK信息:

[root@localhost /]# rpm -qa | grep java
python-javapackages-3.4.1-11.el7.noarch
java-1.8.0-openjdk-headless-1.8.0.161-2.b14.el7.x86_64
tzdata-java-2018c-1.el7.noarch
java-1.7.0-openjdk-1.7.0.171-2.6.13.2.el7.x86_64
java-1.8.0-openjdk-1.8.0.161-2.b14.el7.x86_64
javapackages-tools-3.4.1-11.el7.noarch
java-1.7.0-openjdk-headless-1.7.0.171-2.6.13.2.el7.x86_64

卸载OpenJDK,执行以下操作:

[root@localhost /]# rpm -e --nodeps java-1.8.0-openjdk-headless-1.8.0.161-2.b14.el7.x86_64
[root@localhost /]# rpm -e --nodeps java-1.8.0-openjdk-1.8.0.161-2.b14.el7.x86_64
[root@localhost /]# rpm -e --nodeps java-1.7.0-openjdk-1.7.0.171-2.6.13.2.el7.x86_64
[root@localhost /]# rpm -e --nodeps java-1.7.0-openjdk-headless-1.7.0.171-2.6.13.2.el7.x86_64

安装JDK
上传新的jdk-8u191-linux-x64.rpm软件到/usr/local/src/执行以下操作:

[root@localhost src]# rpm -ivh jdk-8u191-linux-x64.rpm 
警告:jdk-8u191-linux-x64.rpm: 头V3 RSA/SHA256 Signature, 密钥 ID ec551f03: NOKEY
准备中...                          ################################# [100%]
正在升级/安装...
   1:jdk1.8-2000:1.8.0_191-fcs        ################################# [100%]
Unpacking JAR files...
	tools.jar...
	plugin.jar...
	javaws.jar...
	deploy.jar...
	rt.jar...
	jsse.jar...
	charsets.jar...
	localedata.jar...
[root@localhost src]# java -version
java version "1.8.0_191"
Java(TM) SE Runtime Environment (build 1.8.0_191-b12)
Java HotSpot(TM) 64-Bit Server VM (build 25.191-b12, mixed mode)

JDK默认安装在/usr/java中
验证安装
执行以下操作,查看信息是否正常:

[root@localhost src]# java -version
java version "1.8.0_191"
Java(TM) SE Runtime Environment (build 1.8.0_191-b12)
Java HotSpot(TM) 64-Bit Server VM (build 25.191-b12, mixed mode)

配置环境变量
我的机器安装完jdk-8u191-linux-x64.rpm后不用配置环境变量也可以正常执行javac、java –version操作,因此我没有进行JDK环境变量的配置。但是为了以后的不适之需,这里还是记录一下怎么进行配置,操作如下:
修改系统环境变量文件

[root@localhost src]# vi /etc/profile

向文件里面追加以下内容:

JAVA_HOME=/usr/java/jdk1.8.0_191-amd64
JRE_HOME=/usr/java/jdk1.8.0_191-amd64/jre
PATH=$PATH:$JAVA_HOME/bin:$JRE_HOME/bin
CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar:$JRE_HOME/lib
export JAVA_HOME JRE_HOME PATH CLASSPATH

使修改生效

[root@localhost /]# source /etc/profile
[root@localhost /]# echo $PATH
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin:/usr/java/jdk1.8.0_191-amd64/bin:/usr/java/jdk1.8.0_191-amd64/jre/bin:/usr/java/jdk1.8.0_191-amd64/bin:/usr/java/jdk1.8.0_191-amd64/jre/bin

Centos7安装Harbor作为企业级镜像私有库

smallchill阅读(233)

Harbor 介绍
Docker容器应用的开发和运行离不开可靠的镜像管理,虽然Docker官方也提供了公共的镜像仓库,但是从安全和效率等方面考虑,部署我们私有环境内的Registry也是非常必要的。Harbor是由VMware公司开源的企业级的Docker Registry管理项目,它包括权限管理(RBAC)、LDAP、日志审核、管理界面、自我注册、镜像复制和中文支持等功能。

一、 安装环境准备
注意:Harbor的所有服务组件都是在Docker中部署的,所以官方安装使用Docker-compose快速部署,所以我们需要安装Docker、Docker-compose。由于Harbor是基于Docker Registry V2版本,所以就要求Docker版本不小于1.10.0,Docker-compose版本不小于1.6.0。

1.docker 安装
官网安装:安装指南
yum安装:yum -y install docker
2.docker-compose安装

//指定版本安装:
$ sudo curl -L https://get.daocloud.io/docker/compose/releases/download/1.23.1/\
docker-compose-`uname -s`-`uname -m` > /usr/local/bin/docker-compose

//对二进制文件赋可执行权限
$ sudo chmod +x /usr/local/bin/docker-compose

//测试下docker-compose是否安装成功
$ docker-compose --version
docker-compose version 1.23.1, build 1719ceb

yum安装:yum -y install docker-compose

二、 安装harbor

mkdir /data/
cd /data/
wget https://storage.googleapis.com/harbor-releases/release-1.6.0/harbor-offline-installer-v1.6.0.tgz
tar xvzf harbor-offline-installer-v1.6.0.tgz
cd harbor
vi harbor.cfg
hostname = 192.168.186.129 //自行更改为服务器内部ip
./install.sh

若需要修改配置

docker-compose down -v
vim harbor.cfg
prepare
docker-compose up -d

重启

docker-compose stop
docker-compose start

三、 登录harbor
地址:http://192.168.186.129
用户名:admin
密码:Harbor12345

四、测试推送

1.admin登录

$ docker login 192.168.186.129
Username: admin
Password:
Login Succeeded

2.给镜像打tag

$ docker tag nginx 192.168.186.129/blade/nginx:latest
$ docker images
REPOSITORY                         TAG                 IMAGE ID            CREATED             SIZE
nginx                              latest              958a7ae9e569        1 weeks ago         109 MB
192.168.186.129/blade/nginx         latest              958a7ae9e569        1 weeks ago         109 MB

3.push到仓库

$ docker push 192.168.186.129/blade/nginx
The push refers to a repository [192.168.186.129/blade/nginx]
a552ca691e49: Pushed
7487bf0353a7: Pushed
8781ec54ba04: Pushed
latest: digest: sha256:41ad9967ea448d7c2b203c699b429abe1ed5af331cd92533900c6d77490e0268 size: 948

五、开放2375端口
注意:在外网开放有安全风险,只推荐在内网对外开放
vi /lib/systemd/system/docker.service
在[Service]节点下方增加

ExecStart=
ExecStart=/usr/bin/dockerd -H tcp://0.0.0.0:2375 -H unix://var/run/docker.sock
systemctl daemon-reload
systemctl restart docker
docker-compose stop
docker-compose start
firewall-cmd --add-port=2375/tcp --permanent
service firewalld restart

六、maven配置
settings.xml增加如下节点:可使用find / -name settings.xml 查找所在位置


<pluginGroups>
  <pluginGroup>com.spotify</pluginGroup>  
</pluginGroups>

<server>
  <id>192.168.186.129</id>
  <username>admin</username>
  <password>Harbor12345</password>
  <configuration>
    <email>smallchill@163.com</email>
  </configuration>
</server>

七、FAQ
1.配置并启动Harbor之后,本地执行登录操作,报错:

docker login 192.168.186.129
Username: admin
Password:
Error response from daemon: Get https://192.168.186.129/v1/users/: dial tcp 192.168.186.129:443: getsockopt: connection refused

这是因为docker1.3.2版本开始默认docker registry使用的是https,我们设置Harbor默认http方式,所以当执行用docker login、pull、push等命令操作非https的docker regsitry的时就会报错。
解决办法:配置/etc/docker/daemon.json

[root@localhost harbor]# vi/etc/docker/daemon.json 
{
  "registry-mirrors": ["https://3nydo7md.mirror.aliyuncs.com"]
}

将其修改为:

{
  "registry-mirrors": ["https://3nydo7md.mirror.aliyuncs.com"],
  "insecure-registries":["192.168.186.129"]
}

重启

[root@localhost harbor]# systemctl daemon-reload && systemctl restart docker

2.使用非admin账户执行docker pull命令时,报错

$ docker pull 192.168.186.129/blade/nginx:latest
Error response from daemon: repository 192.168.186.129/blade/nginx not found: does not exist or no pull access

这是原因可能有,一是Harbor仓库上blade/nginx确实不存在,二是项目未设置公开的时候,该账户未执行docker login 192.168.186.129登录操作,三是该账户对192.168.186.129/blade项目没有权限,需要在该项目下增加blade成员,并选择角色。

3.如果需要修改Harbor的配置文件harbor.cfg,因为Harbor是基于docker-compose服务编排的,我们可以使用docker-compose命令重启Harbor。不修改配置文件,重启Harbor命令:docker-compose start | stop | restart

//停止Harbor
$ docker-compose down -v
Stopping nginx ... done
Stopping harbor-jobservice ... done
......
Removing harbor-log ... done
Removing network harbor_harbor

//启动Harbor
$ docker-compose up -d
Creating network "harbor_harbor" with the default driver
Creating harbor-log ... 
......
Creating nginx
Creating harbor-jobservice ... done

Nginx添加部署多个server

smallchill阅读(222)

1.增加nginx权限

vi /etc/nginx/nginx.conf

user nginx; 改为 user root;

2.禁用selinux

vi /etc/selinux/config  

改成SELINUX=disabled

3.站点工作目录

mkdir -p /usr/share/nginx/blade

4.创建include文件blade.conf

vi /etc/nginx/conf.d/blade.conf
server {
        listen       80;
        server_name  blade;
        root         /usr/share/nginx/blade;

        # Load configuration files for the default server block.
        include /etc/nginx/default.d/*.conf;

        location / {
        }

        error_page 404 /404.html;
            location = /40x.html {
        }

        error_page 500 502 503 504 /50x.html;
            location = /50x.html {
        }
    }

5.增加反向代理

 server {
        listen       80;
        server_name  blade;
        root         /usr/share/nginx/blade;

        # Load configuration files for the default server block.
        include /etc/nginx/default.d/*.conf;

        location / {
		

        }

	location /auth/web {
		proxy_pass http://demo.springblade.org/auth/web;
		add_header Cache-Control no-store;
	}

	location /api/web {
                proxy_pass http://demo.springblade.org/api/web;
                add_header Cache-Control no-store;
        }

        error_page 404 /404.html;
            location = /40x.html {
        }

        error_page 500 502 503 504 /50x.html;
            location = /50x.html {
        }
    }

6.重启nginx服务

systemctl restart nginx  

7.如果启动失败需要检查端口的占用情况

netstat -tunlp | grep 端口号

Docker 安装 Nginx 并个性化挂载配置文件

smallchill阅读(266)

一、Docker pull 安装 Nginx

1、查看docker仓库中的 nginx 命令

# 使用 docker search 命令搜索存放在 Docker Hub 中的镜像

docker search nginx

2、为选定需要pull到系统中的官方 Nginx 镜像

# docker pull nginx -------- nginx 为选定需要pull到系统中的官方 nginx 镜像

docker pull nginx

整个pull过程需要花费一些时间,耐心等待。

二、查看并启动Docker 镜像

1、列出已下载的镜像

# 使用 docker images 命令即可列出已下载的镜像

docker images

2、列出运行中的容器

# 使用 docker ps 命令即可列出运行中的容器

docker ps

# 使用 docker ps -a 命令即可列出所有(包括已停止的)的容器

docker ps -a

三、启动容器,部署nginx并修改配置文件

1) 启动

# 启动一个名 nginx81 的 nginx 容器

docker run --name nginx81 -d -p 81:80 -v \
/usr/docker/nginx81/html/:/usr/share/nginx/html:ro -d nginx

2)拷贝容器内的配置文件到本地,进行个性化配置等操作

docker cp nginx81:/etc/nginx/nginx.conf /usr/docker/nginx81/nginx.conf

3)修改配置文件

vi /usr/docker/nginx81/nginx.conf

修改nginx.conf,将第一行的 user nginx; 改为user root;

4)重新指定配置文件启动

docker run --name nginx81 -d -p 81:80 -v /usr/docker/nginx81/html:/usr/share/nginx/html:ro \
-v $PWD/logs:/var/log/nginx -v /usr/docker/nginx81/nginx.conf:/etc/nginx/nginx.conf:ro -d nginx

5)进入容器

sudo docker exec -it d3a86da6fad1 /bin/bash

# 退出容器:Ctrl+P+Q

Docker 架构简介与Linux上安装

smallchill阅读(226)

一、Docker 简介

Docker 是一个开源的容器引擎,它有助于更快地交付应用。Docker 可将应用程序和基础设施层隔离,并且能将基础设施当作程序一样进行管理。使用 Docker , 可更快地打包、测试以及部署应用程序,并可以缩短从编写到部署运行代码的周期。

* Docker 的官方网址链接:https://www.docker.com

* Docker 的 GitHub : http://github.com/docker/docker
二、Docker 的架构

Docker 架构包含的主要组件:

* Docker daemon ( Docker 守护进程 )

Docker daemon 是一个运行在宿主机 (DOCKER_HOST) 的后台进程。可通过 Docker 客户端与之通信。

* Client (Docker 客户端)

Docker 客户端是 Docker 的用户界面,它可以接受用户命令和配置标识,并与 Docker daemon 通信。

* Images ( Docker 镜像 )

Docker 镜像是一个只读模板,它包含创建 Docker 容器说明。它和系统安装光盘有点像 —— 使用系统安装光盘可以安装系统,同理,使用 Docker 镜像可以运行 Docker 镜像中的程序。

* Container (容器)

容器是镜像的可运行实例。镜像和容器的关系有点类似于面向对象中,类和对象的关系。可通过 Docker API 或 CLI 命令来启动、停止和移动、删除容器。

* Registry ( 注册 )

Docker Registry 是一个集中存储与分发镜像的服务。构建完 Docker 镜像后,就可在当前宿主机上运行。但如果想要在其他机器上运行这个镜像,就需要手动复制。此时,就可借助 Docker Registry 来避免镜像的手动复制。

一个 Docker Registry 可包含多个 Docker 仓库,每个仓库可包含多个镜像标签,每个标签对应一个 Docker 镜像。这跟 Maven 的仓库有点类似,如果把 Docker Registry 比作 Maven 仓库的话,那么 Docker 仓库就可理解为某 jar 包的路径,而镜像标签则可理解为 jar 包的版本号。

Docker Registry 可分为公有 Docker Registry 和私有 Docker Registry 。最常用的 Docker Registry 莫过于官方的 Docker Hub, 这也是默认的 Docker Registry 。Docker Hub 上存放着大量优秀的镜像,可使用 Docker 命令下载并使用。

三、安装 Docker

Docker 官方建议将 Docker 运行在 Linux 操作系统上。当然,Docker 也支持运行在其他平台,例如 Windows、MacOS 等。

* 安装参考官方文档:http://docs.docker.com/engine/installation/

系统要求

* Docker 运行在 CentOS 7.X 之上 (不支持内核在 3.8 以下的老版本)

# 通过以下命令查看您的 CentOS 内核:
uname -r
* Docker 需要安装在 64 位平台

移除非官方软件包

Red Hat 操作系统包含了一个旧版本的 Docker 软件包,该旧版本软件包的名称是 “ docker ”,而新版本是 “ docker-engine ”。因此,如已安装该软件包,那么需要执行以下命令移除。

$ sudo yum remove docker

Tips:执行该命令只会移除旧版本的 Docker , /var/lib/docker 目录中的内容不会被删除,因此,旧版本 Docker 所创建的镜像、容器、卷等都会保留下来。

卸载旧版本

$ sudo yum remove docker \
                  docker-common \
                  docker-selinux \
                  docker-engine

设置 Yum 源

Docker 有多种安装方式,例如 Yum 安装、PRM 包安装、Shell安装等。以下以 Yum 安装方式进行, Docker 分 Docker EE 和 Docker CE 两种版本(EE:企业版,收费的;CE:社区版,不收费)。

1、安装 yum-utils , 这样就能使用 yum-config-manager 工具设置 Yum 源。

$ sudo yum install -y yum-utils \
  device-mapper-persistent-data \
  lvm2

2、执行以下命令,添加 Docker 的 Yum 源。

$ sudo yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo

3、【可选】启用测试仓库。测试仓库包含在 docker.repo 文件中,但默认情况下禁用的。

如需启用测试仓库,可使用以下命令:

$ sudo yum-config-manager --enable docker-ce-edge
$ sudo yum-config-manager --enable docker-ce-test

如想要禁用测试仓库,可执行以下命令:

$ sudo yum-config-manager --disable docker-ce-edge

安装 Docker

1、更新 Yum 包的索引

$ sudo yum makecache fast

2、安装最新版本的 Docker

$ sudo yum install docker-ce

3、在生产系统中,可能需要安装指定版本的 Docker ,而并不总是安装最新的版本。

# 执行以下命令,即可列出可用的 Docker 版本

$ yum list docker-ce --showduplicates | sort -r

列出 Docker 版本后,可使用以下命令安装指定版本的 Docker 。

$ sudo yum install 

例如:

$ sudo yum -y install docker-ce-17.09.0.ce

4、启动 Docker

$ sudo systemctl start docker

5、执行以下命令,验证安装是否正确

$ sudo docker run hello-world

6、查看 Docker 版本

docker version

四、卸载 Docker

1、卸载 Docker 软件包

$ sudo yum remove docker-ce

2、如需删除镜像、容器、卷以及自定义的配置文件,可执行以下命令

$ sudo rm -rf /var/lib/docker

五、配置镜像加速器

国内访问 Docker Hub 的速度很不稳定,有时甚至出现连接不上的情况。为 Docker 配置镜像加速器,从而解决这个问题。目前国内很多云服务商都提供了镜像加速的服务。常用的镜像加速器有:
阿里云加速器、DaoCloud加速器等。
以阿里云加速器为例:
1、注册阿里云账号,即可在阿里云控制台(https://cr.console.aliyun.com/#/accelerator
2、按照提示说明,即可配置镜像加速器。

六、ipv4转向配置
若启动docker的时候报错:WARNING IPv4 forwarding is disabled. Networking will not work
解决方案:

 vi /etc/sysctl.conf

添加配置

net.ipv4.ip_forward=1

重启

systemctl restart network

查看是否成功

sysctl net.ipv4.ip_forward

如果返回为net.ipv4.ip_forward = 1则表示成功了

springboot Linux启动脚本

smallchill阅读(155)

#!/bin/bash
#这里可替换为你自己的执行程序,其他代码无需更改
APP_NAME=app.jar
 
#使用说明,用来提示输入参数
usage() {
    echo "Usage: sh 执行脚本.sh [start|stop|restart|status]"
    exit 1
}
 
#检查程序是否在运行
is_exist(){
  pid=`ps -ef|grep $APP_NAME|grep -v grep|awk '{print $2}' `
  #如果不存在返回1,存在返回0     
  if [ -z "${pid}" ]; then
   return 1
  else
    return 0
  fi
}
 
#启动方法
start(){
  is_exist
  if [ $? -eq "0" ]; then
    echo "${APP_NAME} is already running. pid=${pid} ."
  else
    nohup java -jar $APP_NAME > /dev/null 2>&1 &
  fi
}
 
#停止方法
stop(){
  is_exist
  if [ $? -eq "0" ]; then
    kill -9 $pid
  else
    echo "${APP_NAME} is not running"
  fi  
}
 
#输出运行状态
status(){
  is_exist
  if [ $? -eq "0" ]; then
    echo "${APP_NAME} is running. Pid is ${pid}"
  else
    echo "${APP_NAME} is NOT running."
  fi
}
 
#重启
restart(){
  stop
  start
}
 
#根据输入参数,选择执行对应方法,不输入则执行使用说明
case "$1" in
  "start")
    start
    ;;
  "stop")
    stop
    ;;
  "status")
    status
    ;;
  "restart")
    restart
    ;;
  *)
    usage
    ;;
esac

chmod +x service.sh (第一次运行的时候获取一下超级管理员权限)

然后以后每次运行直接

./service.sh start/stop 即可

搭建gogs私有Git仓库

smallchill阅读(464)

环境需要
Centos7(64位)主机
Git客户端
Gogs二进制包
Mysql 5.7或者以上版本
1.安装mysql5.7
Centos7安装Mysql教程
2.安装git
centos7 一般默认已经安装好git了如果没有使用一下命令安装
yum install git -y
3.部署gogs服务
cd /usr/local/src
wget https://dl.gogs.io/0.11.53/gogs_0.11.53_linux_amd64.tar.gz
yum install tar -y
tar -zxvf gogs_0.11.53_linux_amd64.tar.gz
cd gogs
nohup ./gogs web &
4.设置防火墙配置
添加端口3000
firewall-cmd --add-port=3000/tcp --permanent
systemctl restart firewalld

安装Docker及其图形化工具问题总结

smallchill阅读(425)

1.加速器问题
在使用DaoCloud 提供的加速器,docker 服务不能启动
curl -sSL https://get.daocloud.io/daotools/set_mirror.sh | sh -s http://2be16b36.m.daocloud.io

/etc/docker/daemon.json 多了,

2. 安装图形化portainer

docker run -d –restart=always –privileged=true -p 9000:9000 -v /var/run/docker.sock:/var/run/docker.sock -v /etc/localtime:/etc/localtime portainer/portainer

出现登录不了的问题,由于Linux本地时间问题

修改时间
# 安装ntp服务 yum install ntp
# 开机启动服务 systemctl enable ntpd
# 启动服务 systemctl start ntpd
# 设置亚洲时区 timedatectl set-timezone Asia/Shanghai
# 启用NTP同步 timedatectl set-ntp yes
# 重启ntp服务 systemctl restart ntpd
# 手动同步时间 ntpq -p

3. 安装docker-compose

$ sudo curl -L https://github.com/docker/compose/releases/download/1.17.1/docker-compose-`uname -s`-`uname -m` > /usr/local/bin/docker-compose
$ sudo chmod +x /usr/local/bin/docker-compose

4. registry 搭建
docker run -d -p 5000:5000 –restart=always –privileged=true -v /opt/registry:/tmp/registry registry

5. 远程remote api
{
“registry-mirrors”: [“https://3wzyb32e.mirror.aliyuncs.com”],
“insecure-registries”:[“192.168.0.13:5000″],
“hosts”: [
“tcp://0.0.0.0:4243″,
“unix:///var/run/docker.sock”
]}

修改主机名
hostnamectl –static set-hostname [主机名]

同步时间
docker run busybox date

NodeJs更换淘宝源

smallchill阅读(4807)

npm config set registry http://registry.npm.taobao.org/

Where there is a will there is a way

我的新浪微博