1. 程式人生 > 其它 >centos7 tomcat_Docker的Centos7容器配置Tomcat和MySQL並打成基礎映象

centos7 tomcat_Docker的Centos7容器配置Tomcat和MySQL並打成基礎映象

技術標籤:centos7 tomcatcentos7 執行 jarcentos7啟動root賬戶centos7安裝mysql5.7centos7安裝tomcatcentos7密碼正確卻登陸失敗

下載centos7映象

dockerpull centos

進入docker中的CentOS7

docker run -itcentos /bin/bash

安裝解壓程式

yum install-y unzip zip

安裝 libaio

yum install libaio*yum -y install numactl.x86_64

安裝weget

yum -y install wget

安裝JDK

安裝JAVA

系統自帶的java沒有jps命令

rpm -ivh jdk-8u171-linux-x64.rpm

預設安裝路徑為:

cd /usr/java/jdk1.8.0_171-amd64

配置JAVA環境變數

vim /etc/profile

#JDK環境變數

export JAVA_HOME=/usr/java/jdk1.8.0_171-amd64export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jarexport PATH=$JAVA_HOME/bin:$PATH

使配置立即生效

source /etc/profile

安裝Tomcat

給tomcat資料夾下所有.sh 檔案賦予許可權

chmod 777 *.sh

在auto_service.sh檔案中新增啟動

sh /home/dmiaes/apache-tomcat-8.5.32/bin/startup.sh

CentOS7 yum方式安裝MySQL5.7

安裝weget

yum -yinstall wget

1.下載並安裝MySQL官方的Yum Repository

wget -i -c http://dev.mysql.com/get/mysql57-community-release-el7-10.noarch.rpm

使用上面的命令就直接下載了安裝用的Yum Repository,大概25KB的樣子,然後就可以直接yum安裝了。

yum -y install mysql57-community-release-el7-10.noarch.rpm

之後就開始安裝MySQL伺服器。

 yum -y install mysql-community-server

這步可能會花些時間,安裝完成後及完成mysql安裝。

2.MySQL資料庫設定

首先啟動MySQL

systemctl start  mysqld.service

檢視MySQL執行狀態,執行狀態如圖:

systemctl status mysqld.service

此時MySQL已經開始正常執行,不過要想進入MySQL還得先找出此時root使用者的密碼,通過如下命令可以在日誌檔案中找出密碼:

grep "password" /var/log/mysqld.log

如下命令進入資料庫:

mysql -uroot -p

輸入初始密碼,此時不能做任何事情,因為MySQL預設必須修改密碼之後才能操作資料庫:

mysql> ALTERUSER 'root'@'localhost' IDENTIFIED BY 'new password';

注意密碼需要比較複雜,否則提示Error 1219錯誤

配置mysql允許遠端登入

mysql> usemysql;mysql> grantall privileges  on *.* to [email protected]'%' identified by "登入密碼";mysql> flush privileges;

MySQL5.7建立使用者和允許遠端登入

CREATE USER 'admin'IDENTIFIED BY "prdIR924KDFkdf";grant all privilegeson *.* to 'admin' identified by 'prdIR924KDFkdf';flush privileges;

My.cnf目標

/etc/my.cnf

配置不區分大小寫

# 0 :區分大小寫, 1 :不區分大小寫
lower_case_table_names=1

最終測試

dockerrun-d--privileged-p8080:8080-p3306:3306-p10022:22-itcentos_test6/usr/sbin/init

注意--privileged不能少,加了他進入容器裡面的使用者才是真正意義的root,否則只是普通root賬戶。

docker 使用中遇到的問題記錄:

cgroups: cannot findcgroup mount destination: unknown.

使用docker-machine sshdefault 進入虛擬機器。

docker -machine sshdefaultsudo mkdir /sys/fs/cgroup/systemdsudomount-tcgroup-onone,name=systemdcgroup/sys/fs/cgroup/systemd

服務隨容器啟動而自啟動並具備註冊服務的許可權

使用/home/auto_service.sh這種自啟動方式弊端是不能使用/usr/sbin/init了,為了解決這個問題我們需要知道/usr/sbin/init幹了什麼,具體解釋如下。理解其原理後我們可以在rc.local檔案中新增我們自定義的啟動執行的指令碼,具體如下。然後我們就能使用如下命令執行我們的指令碼了,這樣在容器裡就能使用服務啟動了,避免了Failed to get D-Bus connection:Operation not permitted的錯誤,也能執行我們自定義啟動指令碼。

dockerrun-d--privileged-p8080:8080-p3306:3306-p10022:22-itcentos_test6/usr/sbin/init

注意--privileged不能少,加了他進入容器裡面的使用者才是真正意義的root,否則只是普通root賬戶。

測試看是否還報Failed to get D-Bus connection: Operation notpermitted錯誤

systemctl status firewalld.service

linux新增開機自啟動指令碼示例詳解

載入核心順序

執行init程式

 /etc/rc.d/rc.sysinit             # 由init執行的第一個指令碼/etc/rc.d/rc$RUNLEVEL#$RUNLEVEL為預設的執行模式/etc/rc.d/rc.local

#相應級別服務啟動之後、在執行該檔案(其實也可以把需要執行的命令寫到該檔案中)

 /sbin/mingetty                    # 等待使用者登入

init 是Linux系統操作中不可缺少的程式之一。所謂的init程序,它是一個由核心啟動的使用者級程序,核心自行啟動(已經被載入記憶體,開始執行,並已初始化所有的裝置驅動程式和資料結構等)之後,就通過啟動一個使用者級程式init的方式,完成引導程序。所以,init始終是第一個程序(其程序編號始終為1)。

核心會在過去曾使用過init 的幾個地方查詢它,它的正確位置(對Linux系統來說)是/sbin/init,如果核心找不到init,它就會試著執行/bin/sh,如果執行失敗,系統的啟動也會失敗。

Centos7開機啟動自己的指令碼的方法

1. 自己新建一個指令碼,如auto_run.sh

經過後面的幾個步驟後,這個指令碼在開機的時候會執行,在這個腳本里面可以寫你開機的時候想執行的命令,如啟動tomcat,oracle等服務

2. 在指令碼中輸入啟動服務的命令,如(開機啟動tomcat):

#!/bin/bash

export JDK_HOME=/home/java/jdk1.8.0_91export JAVA_HOME=/home/java/jdk1.8.0_91sh /home/apache-tomcat-8.5.32/bin/startup.sh

3. 執行如下命令,將該指令碼標記為可執行檔案(新增可執行的許可權)

chmod +x /home/auto_run.sh

4. 執行如下命令將/etc/rc.d/rc.local文標記為可執行檔案

在centos7中,/etc/rc.d/rc.local檔案的許可權被降低了,開機的時候執行在自己的指令碼是不能起動一些服務的,執行下面的命令可以檔案標記為可執行的檔案

chmod +x /etc/rc.d/rc.local

5. 開啟/etc/rc.d/rc.local檔案,

vi /etc/rc.d/rc.local

在最後面新增如下指令碼

/home/auto_run.sh

這樣,auto_run.sh這個指令碼在開機的時候就會被執行了,以後再這裡面寫啟動服務的命令就可以了。

注意:auto_run.sh檔案為自定義需要開機啟動的程式,只能為.sh的程式,否則請使用安裝服務的方式進行自啟動。

Redis安裝

準備(安裝gcc)

yum -y install gccautomake autoconf libtool make

安裝:

$ wget http://download.redis.io/releases/redis-3.0.7.tar.gz$ tar xzfredis-3.0.7.tar.gz$ cd redis-3.0.7$ make

設定密碼:redis.conf 檔案中設定,requirepass test2019

啟動:

以指定配置檔案啟動

$ src/redis-serverredis.conf

安裝redis服務

a1e780e7e10f18032f41426e0e8dd8b3.png

測試

cd C:\redis-x64-2.8redis-cli -h192.168.99.100-p6379-a"houli2015"