181207-Centos使用docker构建ecs环境

文章目录
  1. I. java环境搭建
    1. 1. open-jdk安装
    2. 2. jdk包安装
      1. a. 获取包
      2. b. 安装
      3. c. 配置
    3. 3. 删除自带的openjdk
  2. II. Maven配置
    1. 1. 获取包
    2. 2. 解压
    3. 3. 配置
  3. III. tomcat安装
  4. IV. nginx安装
    1. 1. 直接使用 yum 安装
    2. 2. 源码安装
    3. 3. 命令
  5. V. Redis安装
    1. 1. yum安装方式
    2. 2. 源码安装方式
  6. VI. Mysql环境安装
    1. 1. 安装
    2. 2. 配置修改
      1. a. 端口号修改
      2. 2. 密码修改
  7. VIII. 其他
    1. 1. 一灰灰Blog: https://liuyueyi.github.io/hexblog
    2. 2. 声明
    3. 3. 扫描关注

I. java环境搭建

首先是jdk的安装,可以安装open-jdk,也可以从jdk官网下载jdk包进行配置,简单说明下两种使用方式

1. open-jdk安装

基本安装过程如下

1
2
3
4
5
# 切换root
su
# 首先查看当前支持的jdk版本
yum list | grep jdk
yum install java-11-openjdk-devel.x86_64 java-11-openjdk.x86_64 -y

2. jdk包安装

a. 获取包

官网下载

1
2
3
4
5
6
7
8
## 到官网找到对应的版本,获取下载地址
wget http://download.oracle.com/otn-pub/java/jdk/8u171-b11/512cd62ec5174c3487ac17c61aaa89e8/jdk-8u171-linux-x64.tar.gz?AuthParam=1529400028_058a3f3fdf9c78aa6502a6e91edfb1d2

## 解压
tar -zxvf jdk-8u171-linux-x64.tar.gz?AuthParam=1529400028_058a3f3fdf9c78aa6502a6e91edfb1d2

## 目录指定
mv jdk-8u171-linux-x64 /usr/local/java/

宿主机拷贝

1
2
3
4
# 拷贝
docker cp jdk1.8.0_131.tar.gz 0e118346222c:/home/soft
# 进入容器
docker exec -it 0e118346222c /bin/bash

b. 安装

1
2
3
4
5
cd /usr
mkdir java
cp /home/soft
tar -zxvf jdk1.8.0_131.tar.gz
rm jdk1.8.0_131.tar.gz

c. 配置

进入配置文件 vi /etc/profile

1
2
3
4
5
## 文件末尾添加
export JAVA_HOME=/home/soft/jdk1.8.0_131
export JRE_HOME=${JAVA_HOME}/jre
export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib
export PATH=${JAVA_HOME}/bin:$PATH

应用并查看是否配置ok

1
2
3
source /etc/profile
java
javac

3. 删除自带的openjdk

如果希望删除自带的jdk,可以执行下面的命令查看安装的版本

1
rpm -qa | grep java

然后执行

1
2
3
yum remove java-11-openjdk-headless-debug
# 或者执行
rpm -e --nodeps java-11-openjdk-headless-debug-11.0.1.13-3.el7_6.x86_64

II. Maven配置

maven的配置相对简单,下载好包之后,设置mvn的配置即可

1. 获取包

下载maven包,推荐到官网下载,我这里是从宿主机拷贝

1
docker cp maven-3.5.3.tar.gz 0e118346222c:/home/soft

2. 解压

到docker中,解压并配置

1
2
cd /home/soft
tar -zxvf maven-3.5.3.tar.gz

3. 配置

设置配置文件 vi /etc/profile

1
2
M2_HOME=/home/soft/maven-3.5.3
export PATH=${M2_HOME}/bin:${PATH}

配置生效 source /etc/profile 并查看

1
2
3
4
5
6
7
[root@0e118346222c maven-3.5.3]# mvn --version
Apache Maven 3.5.3 (3383c37e1f9e9b3bc3df5050c29c8aff9f295297; 2018-02-24T19:49:05Z)
Maven home: /home/soft/maven-3.5.3
Java version: 1.8.0_131, vendor: Oracle Corporation
Java home: /usr/java/jdk1.8.0_131/jre
Default locale: en_US, platform encoding: ANSI_X3.4-1968
OS name: "linux", version: "3.10.0-693.2.2.el7.x86_64", arch: "amd64", family: "unix"

III. tomcat安装

tomcat的安装基本上就是解压个包的事情了

1
2
3
4
docker cp tomcat.tar.gz 0e118346222c:/home/soft
docker exec -it 0e118346222c /bin/bash
cd /home/soft
tar -zxvf tomcat.tar.gz

IV. nginx安装

1. 直接使用 yum 安装

后面一个参数表示指定安装的位置

1
yum install nginx  --prefix=/home/soft/nginx

上面这种安装,在配置https时,会有问题,提示要安装ssl模块啥的,因此可以这么添加一下参数

1
yum install nginx --prefix=/home/soft/nginx --with-http_stub_status_module --with-http_ssl_module

如果你是先执行了上面的步骤,后面发现需要安装ssl模块,要怎么办 ?

操作如下:

1
2
3
4
5
6
7
1. 获取安装的nginx版本 `nginx -V`
2. 获取对应的源码包 `wget http://nginx.org/download/nginx-1.12.0.tar.gz`
3. 解压源码包 `tar -zxvf nginx-1.12.0.tar.gz`, 进入解压的目录
4. 编译 `./configure --prefix=/app/soft/nginx --with-http_stub_status_module --with-http_ssl_module`
5. `make`
6. 备份老的nginx `cp /app/soft/nginx/sbin/nginx cp /app/soft/nginx/sbin/nginx.bk`
7. 拷贝新的nginx `cp sbin/nginx /app/soft/nginx/sbin/nginx`

2. 源码安装

上面其实已经包含了源码安装的步骤,下面简单的列一下

1
2
3
4
5
6
7
8
9
10
安装之前,先安装依赖
- yum install -y zlib zlib-devel gcc
- yum install -y pcre pcre-devel
- yum install -y openssl openssl-devel

wget http://nginx.org/download/nginx-1.12.0.tar.gz
tar -zxvf nginx-1.12.0.tar.gz; cd nginx-1.12.0
./configure --prefix=/home/soft/nginx --with-http_stub_status_module --with-http_ssl_module
make
make install

3. 命令

nginx 命令

1
2
3
4
5
# 启动
/app/soft/nginx/sbin/nginx

# 停止
/app/soft/nginx/sbin/nginx -s stop

验证是否启动成功

1
curl 'http://locahost'

V. Redis安装

redis的安装,可以直接根据yum简单的进行安装,也可以下载安装包

1. yum安装方式

1
yum install redis

后台启动redis方式:

1
2
3
4
5
6
7
8
9
10
11
12
13

# 设置redis.conf文件,开启后台启动

vim /etc/redis.conf


## 找到 daemonize no 这一行
## 修改成yes,并保存
daemonize yes


## 启动redis
redis-server /etc/redis.conf

查看redis启动是否正常

1
2
# 查看进程号
ps -ef | grep redis

客户端连接测试

1
2
3
4
5
redis-cli

> set test 123
> get test
> expire test

关闭redis

1
redis-cli shutdown

2. 源码安装方式

下载源码并编译

1
2
3
4
wget http://download.redis.io/releases/redis-5.0.2.tar.gz
tar -zxvf redis-5.0.2.tar.gz
cd redis-5.0.2
make

设置下redis的相关配置文件,假设我们约定将数据文件存放在 /home/data/redis 目录下,则配置需要如下修改

进入配置文件 redis.conf

1
2
3
4
5
6
7
8
9
10
11
12
13
14
# 修改默认的端口号
port 6868

# 修改密码
requirepass newPwd!

# 设置进程文件
pidfile /home/data/redis-6868/redis.pid

# 设置日志文件
logfile "/home/data/redis-6868/log/redis.log"

# 设置数据文件
dir /home/data/redis-6868/data

在启动redis之前,首先需要创建对应的目录

1
2
3
4
cd /home/data
mkdir redis-6868
cd redis-6868
mkdir data log

开始启动redis并测试

1
2
3
4
5
6
cd /home/soft/redis-5.0.2/
src/redis-server redis.conf

# 测试连接
src/redis-cli -p 6868
auth newPwd!

VI. Mysql环境安装

这里采用最简单的方式进行安装mysql,需要关注的是后面的默认配置的修改

1. 安装

1
2
3
4
5
# 添加源
rpm -Uvh http://dev.mysql.com/get/mysql-community-release-el7-5.noarch.rpm

# 安装
yum install mysql mysql-server mysql-libs mysql-server

上面安装完毕之后,可以开始启动服务

1
systemctl start mysqld

上面的命令在docker中执行时,会报错

1
Failed to get D-Bus connection: Operation not permitted

可以如下操作

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
# 首先设置下密码
passwd
> 输入密码 (yihui)

# 退出容器
exit

# 保存docker镜像
docker commit 0e118346222c yihui/centos

# 再次启动镜像
docker run --privileged -e "container=docker" -v /sys/fs/cgroup:/sys/fs/cgroup -ti yihui/centos /usr/sbin/init

# 输入账号和密码
4af0575c5181 login: root
Password: (yihui)

上面搞定之后,就可以继续启动mysql了

如果登录需要密码时,如下确定

1
2
3
4
grep "temporary password" /var/log/mysqld.log

## 输出如下
# A temporary password is generated for root@localhost: WClOFXUqF4&4

2. 配置修改

a. 端口号修改

默认的端口号为3306,如果需要修改端口号,则找到my.cnf文件,新加一个配置即可:

1
2
3
4
5
6
7
vim /etc/my.cnf

## 找到指定的位置,修改端口号
[mysqld]
port=3305
datadir=/var/lib/mysql
socket=/var/lib/mysql/mysql.sock

服务重启

1
service mysqld restart

2. 密码修改

使用set password

格式:

1
mysql> set password for 用户名@localhost = password('新密码');

例子:

1
mysql> set password for root@localhost = password('123');

update 方式

1
2
3
4
5
mysql> use mysql;  

mysql> update user set password=password('123') where user='root' and host='localhost';

mysql> flush privileges;

添加用户

1
2
alter user 'root'@'localhost' identified by 'test';
create user 'test'@'%' IDENTIFIED BY 'test';

授予权限

1
2
3
# root 方式登录
grant all PRIVILEGES on test.* to 'yihui'@'%' IDENTIFIED by 'test';
flush privileges;

VIII. 其他

1. 一灰灰Bloghttps://liuyueyi.github.io/hexblog

一灰灰的个人博客,记录所有学习和工作中的博文,欢迎大家前去逛逛

2. 声明

尽信书则不如,已上内容,纯属一家之言,因个人能力有限,难免有疏漏和错误之处,如发现bug或者有更好的建议,欢迎批评指正,不吝感激

3. 扫描关注

一灰灰blog

QrCode

知识星球

goals

# Docker

评论

Your browser is out-of-date!

Update your browser to view this website correctly. Update my browser now

×