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

一、docker

1)、docker的安装
  1. 检查centos内核版本(必须是3.10及以上)

uname -r1.

docker运行runlike docker运行轻量浏览器_mysql

  1. 安装docker

yum install docker1.

docker运行runlike docker运行轻量浏览器_tomcat_02


  1. 选择同意安装y

  2. docker运行runlike docker运行轻量浏览器_tomcat_03

  3. 安装完成

2)、docker设置阿里云镜像加速
  1. 打开阿里云选择容器镜像服务并且开通

docker运行runlike docker运行轻量浏览器_docker运行runlike_04

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

docker运行runlike docker运行轻量浏览器_docker运行runlike_05


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
```1.2.3.4.5.6.7.8.9.10.11.12.13.14.
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(版本号)1.2.3.4.5.6.7.8.9.10.11.12.13.14.15.

二、docker上部署mysql

1)、仓库拉取最版本mysql
# 拉取mysql镜像
docker pull mysql
# 查看本地仓库镜像
docker images1.2.3.4.

docker运行runlike docker运行轻量浏览器_tomcat_06

docker运行runlike docker运行轻量浏览器_tomcat_07

2)、启动mysql容器
# 根据mysql镜像启动容器 并且设置账号密码
docker run --name mysql -e MYSQL_ROOT_PASSWORD=123456 -p 3306:3306 -d mysql
# 查看全部的容器
docker ps -a
# 启动mysql容器
docker start (容器ID)1.2.3.4.5.6.
3)、通过本地主机无法连接到服务器的mysql

docker运行runlike docker运行轻量浏览器_docker_08

解决办法:

  1. 进入镜像中的mysql

docker exec -it (容器id) /bin/bash1.
  1. 登录mysql

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

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

docker restart mysql1.
  1. 连接成功!

三、docker上部署tomcat

1)仓库拉取最新版tomcat
docker pull tomcat1.

docker运行runlike docker运行轻量浏览器_mysql_09

2)、启动tomcat容器
# 根据tomcat镜像启动容器
docker run --name mytomcat -p 8080:8080 -d tomcat
# 查看全部的容器
docker ps -a
# 启动tomcat容器
docker start mytomcat1.2.3.4.5.6.
3)、解决本机访问不到服务器部署的tomcat
  1. 阿里云服务器上的安全组规则相应的端口号未开启
    这里我将全部端口都打开了(安全性上不推荐使用)

docker运行runlike docker运行轻量浏览器_docker_10

  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)1.2.3.4.5.6.7.8.9.10.11.12.
  1. 这时你会发现本地主机还是无法访问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)1.2.3.4.5.6.7.8.9.10.11.12.13.14.15.16.17.18.
4)、成功访问

docker运行runlike docker运行轻量浏览器_docker_11

四、docker上部署redis

1)、仓库拉取最新版redis
# 仓库拉取最新版redis
docker pull redis
# 查看本地仓库的镜像
docker images1.2.3.4.

docker运行runlike docker运行轻量浏览器_java_12

2)、启动redis容器
# 根据redis镜像启动容器
docker run -d -p 6379:6379 --name myredis redis1.2.
3)、本地主机连接redis

仓库拉取最新版redis

docker pull redis

查看本地仓库的镜像

docker images

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

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

```shell
# 根据redis镜像启动容器
docker run -d -p 6379:6379 --name myredis redis1.2.3.4.5.6.7.
3)、本地主机连接redis

docker运行runlike docker运行轻量浏览器_java_13