阿里云轻量服务器docker部署mysql,tomcat,redis

阿里云轻量应用服务器安装docker部署mysql,tomcat,redis以及成功远程连接上

一、docker

1)、docker的安装

  1. ​ 检查centos内核版本(必须是3.10及以上)

    uname -r 
    

1

  1. 安装docker

    yum install docker
    

2

  1. 选择同意安装y
    阿里云轻量服务器docker部署mysql,tomcat,redis_第1张图片

  2. 安装完成

    阿里云轻量服务器docker部署mysql,tomcat,redis_第2张图片

2)、docker设置阿里云镜像加速

  1. 打开阿里云选择容器镜像服务并且开通

阿里云轻量服务器docker部署mysql,tomcat,redis_第3张图片

2. 查看自己的唯一加速器地址

阿里云轻量服务器docker部署mysql,tomcat,redis_第4张图片
3. 配置镜像加速器

```shell
# 修改docker配置文件
sudo tee /etc/docker/daemon.json <<-'EOF'
{
  "registry-mirrors": ["https://rki1jqog.mirror.aliyuncs.com"]
}
EOF
# 重新加载docker的守护进程
sudo systemctl daemon-reload
# 重启docker
sudo systemctl restart docker
# 开机启动docker
sudo systemctl enable docker
```

3)docker的相关命令

# 查看docker的版本
# Docker version 1.13.1, build 4ef4b30/1.13.1
docker -v
# 从docker仓库查找相关镜像
docker search 镜像名
# 从docker仓库拉取对应镜像  tag不加默认为最新版本latest
docker pull 镜像名:tag(版本号)
# 查看本地仓库镜像
docker images
# 删除本地仓库镜像
docker rmi 镜像id
# 后台启动容器
docker run -d --name (为容器取名) 镜像名:tag(版本号)
# 启动容器时进行端口映射
docker run -it -d -p (主机端口号):(容器内部端口号) 镜像名:tag(版本号)

二、docker上部署mysql

1)、仓库拉取最版本mysql

# 拉取mysql镜像
docker pull mysql
# 查看本地仓库镜像
docker images

阿里云轻量服务器docker部署mysql,tomcat,redis_第5张图片

在这里插入图片描述

2)、启动mysql容器

# 根据mysql镜像启动容器 并且设置账号密码
docker run --name mysql -e MYSQL_ROOT_PASSWORD=123456 -p 3306:3306 -d mysql
# 查看全部的容器
docker ps -a
# 启动mysql容器
docker start (容器ID)

3)、通过本地主机无法连接到服务器的mysql

阿里云轻量服务器docker部署mysql,tomcat,redis_第6张图片

解决办法:

  1. 进入镜像中的mysql

    docker exec -it (容器id) /bin/bash
    
  2. 登录mysql

    mysql -uroot -p
    
  3. 修改root 可以通过任何客户端连接

    ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY '123456';
    
  4. 重启mysql容器

    docker restart mysql
    
  5. 连接成功!

三、docker上部署tomcat

1)仓库拉取最新版tomcat

docker pull tomcat

阿里云轻量服务器docker部署mysql,tomcat,redis_第7张图片

2)、启动tomcat容器

# 根据tomcat镜像启动容器
docker run --name mytomcat -p 8080:8080 -d tomcat
# 查看全部的容器
docker ps -a
# 启动tomcat容器
docker start mytomcat

3)、解决本机访问不到服务器部署的tomcat

  1. 阿里云服务器上的安全组规则相应的端口号未开启

    这里我将全部端口都打开了(安全性上不推荐使用)

阿里云轻量服务器docker部署mysql,tomcat,redis_第8张图片

  1. 最新版本的tomcat包中有两个webapps文件夹,将空的webapps文件夹删除,修改webapps.dist文件夹的名字为webapps

    # 进入容器文件夹内部
    docker exec -it (tomcat容器id) /bin/bash
    # 查看文件夹列表找到webapps
    ls -l
    # 删除空文件夹webapps
    rm -rf webapps
    # 将webapps.dist文件夹改名为webapps
    mv webapps.dist webapps
    # 查看文件夹列表是否成功
    ls -l
    # 重启tomcat容器
    docker restart (tomcat容器id) 
    
  2. 这时你会发现本地主机还是无法访问tomcat,因为docker上部署的tomcat容器启动异常缓慢

根本原因就在于 SecureRandom 这个 jre 的工具类的问题。那为什么 SecureRandom generateSeed 这么慢,甚至挂在 Linux 操作系统呢?Tomcat 7/8 都使用org.apache.catalina.util.SessionIdGeneratorBase.createSecureRandom 类产生安全随机类 SecureRandom 的实例作为会话 ID。
SecureRandom generateSeed使用 /dev/random 生成种子。但是 /dev/random 是一个阻塞数字生成器,如果它没有足够的随机数据提供,它就一直等,这迫使 JVM 等待。键盘和鼠标输入以及磁盘活动可以产生所需的随机性或熵。但在一个服务器缺乏这样的活动,可能会出现问题。

# 进入tomcat容器文件内部
docker exec -it (tomcat容器id) /bin/bash
# 在容器内部安装vim
apt-get update
apt-get install vim
# 进入容器中的jdk安装路径文件夹
cd usr/local/openjdk-8/jre/lib/security/
# 查看文件夹列表
ls -l
# 修改java.security文件
vim java.security
# 查找securerandom.source(命令模式下 按下小写n向下查找大写N向上查找)
/securerandom.source
# insert修改securerandom.sorce
securerandom.source=file:/dev/./urandom
# ESC进入命令模式 :wq(保存退出) exit退出容器内部
# 重启tomcat容器
docker restart (tomcat容器ID)

4)、成功访问

阿里云轻量服务器docker部署mysql,tomcat,redis_第9张图片

四、docker上部署redis

1)、仓库拉取最新版redis

# 仓库拉取最新版redis
docker pull redis
# 查看本地仓库的镜像
docker images

阿里云轻量服务器docker部署mysql,tomcat,redis_第10张图片

2)、启动redis容器

# 根据redis镜像启动容器
docker run -d -p 6379:6379 --name myredis redis

3)、本地主机连接redis

仓库拉取最新版redis

docker pull redis

查看本地仓库的镜像

docker images


[外链图片转存中...(img-OheS07qK-1583828586008)]

#### 2)、启动redis容器

```shell
# 根据redis镜像启动容器
docker run -d -p 6379:6379 --name myredis redis

3)、本地主机连接redis

阿里云轻量服务器docker部署mysql,tomcat,redis_第11张图片

你可能感兴趣的:(Java学习)