进度记录【Day2】docker/tomcat/mysql/项目

Day 2

服务器搭建和部署

  • Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的镜像中,然后发布到任何流行的 Linux或Windows 机器上,也可以实现虚拟化。容器是完全使用沙箱机制,相互之间不会有任何接口。
  • 用Linux系统作为服务器系统,centOS是Linux操作系统的一个版本。什么是服务器?服务器是计算机的一种,它比普通计算机运行更快、负载更高、价格更贵。服务器在网络中为其它客户机(如PC机、智能手机、ATM等终端甚至是火车系统等大型设备)提供计算或者应用服务。
  • tomcat可以把web项目部署到服务器上。
  • mysql服务于web项目,提供数据库服务。
  • 上述二者关联后使用。
  • 用docker安装tomcat和mysql。
  • 用Linux直接安装tomcat和mysql:安装步骤繁琐,不适合做集群环境。

docker的安装

  1. 确保centos7能够访问外网

ping www.baidu.com

  1. 安装gcc和gcc-c++

yum -y install gcc
yum -y install gcc-c++

  1. 检查gcc 是否安装成功

gcc -v

  1. 安装需要的软件包

yum install -y yum-utils device-mapper-persistent-data lvm2

  1. 设置stable镜像仓库

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

  1. 更新yum软件包索引

yum makecache fast

  1. 安装docker-ce

yum -y install docker-ce

  1. 启动docker服务 并 设置开机自启动

systemctl start docker //启动docker服务
systemctl enable docker //docker开机自动启动

  1. 查看docker版本

docker version

  1. 配置阿里云镜像加速 →docker从国内下载tomcat、mysql等镜像
- 注册阿里云,网址:https://www.aliyun.com
- 找到容器镜像服务 -> 镜像中心 ->镜像加速器 -> 得到加速器地址
- sudo mkdir -p /etc/docker
- sudo tee /etc/docker/daemon.json <<-'EOF'
{
  "registry-mirrors": ["这里换成加速地址"]
}
EOF
 - sudo systemctl daemon-reload
 - sudo systemctl restart docker

创建tomcat容器

  • 拉取tomcat镜像

docker pull tomcat

  • 查看docker本地的镜像

docker images

  • 前台运行tomcat容器

docker run tomcat
或者 docker run 镜像ID

  • 退出前台

Ctrl + C

  • 查看docker中运行的容器

docker ps -a

  • 关闭docker中运行的容器

docker rm 容器ID

  • 强制关闭docker中运行的容器

docker rm -f 容器ID

  • 后台运行tomcat容器,不显示日志,返回容器完整ID

docker run -d tomcat
或者 docker run -d 镜像ID

  • 查看运行中的容器的日志

docker logs 容器ID

  • 后台运行tomcat容器并做端口映射,不显示日志,返回容器完整ID

docker run -d -p 8080:8080 tomcat
或者 docker run -d -p 8080:8080 镜像ID

部署web应用

  • 创建目录

mkdir docker
cd docker
mkdir tomcat
cd tomcat

  • 用WinSCP工具将项目(war文件)拖到/root/docker/tomcat目录下
  • 把项目从虚拟机拷贝到tomcat容器里

docker cp /root/docker/tomcat/EasyBuy.war 容器ID:/usr/local/tomcat/webapps

创建mysql数据库容器

  • 拉取mysql最新版的镜像,因为默认tag:latest

docker pull mysql

  • 实际上拉取mysql 5.7版本的镜像来使用

docker pull mysql:5.7

  • 后台启动mysql并做端口映射的错误方法

docker run -d -p 3306:3306 镜像ID
这么做会出错,因为启动mysql需要MYSQL_ROOT_PASSWORD,MYSQL_ALLOW_EMPTY_PASSWORD,MYSQL_RANDOM_ROOT_PASSOWORD三个参数至少一个

  • 后台启动mysql并做端口映射的正确方法之一

docker run -d -p 3306:3306 -e MYSQL_ROOT_PASSWORD=root 镜像ID
设置mysql的密码为root后启动

  • 返回docker目录下并创建mysql目录

pwd //查看当前所在目录
cd …/
mkdir mysql
cd mysql/

  • 用WinSCP工具将数据库(sql文件)拖到/root/docker/mysql目录下

  • 把数据库文件从虚拟机拷贝到mysql容器里

docker cp /root/docker/mysql/easybuy.sql 容器ID:/
或者 docker cp easybuy.sql 容器ID:/ //因为文件在当前目录下

  • 建伪终端进入mysql容器中

docker exec -it 容器ID bash
ls //查看数据库文件是否拷贝成功

  • 在容器中用用户root和密码登录mysql

mysql -uroot -p
输入密码

  • 退出mysql

exit

  • 退出mysql容器的伪终端

exit

  • 在mysql中创建easybuy数据库

create database easybuy;

  • 在mysql中切换到easybuy数据库

use easybuy;

  • 从easybuy.sql文件中导入数据到easybuy数据库

source /easybuy.sql;

  • 显示数据库中的表格

show tables;

  • 设置数据库权限,允许被访问
    use mysql;
    GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'root' WITH GRANT OPTION;
    flush privileges;

  • 如果mysql版本安装错误,则删除mysql镜像

docker rm -f 容器ID //先关闭容器
docker rmi 镜像ID //删除镜像

项目

  • 修改EasyBuy.war项目文件,使项目关联上mysql容器中的数据库

用解压缩工具打开项目文件
打开目录WEB-INF\classes
打开database.properties文件
将localhost改成虚拟机IP地址
关闭并保存
将项目文件重新拷贝到虚拟机中
将运行中的tomcat容器关闭
重新运行新的tomcat容器
docker run -d -p 8080:8080 镜像ID
重新将项目文件拷贝到容器中
docker cp /root/docker/tomcat/EasyBuy.war 容器ID:/usr/local/tomcat/webapps

-如果数据在网页上无法显示,则可能是虚拟机的防火墙的问题,关闭虚拟机的防火墙

service firewalld stop

  • 如果数据显示乱码,则使用数据库管理工具navicat将数据库编码修改为utf-8

点击“连接”
输入连接名(任意取),虚拟机IP地址和账号密码。
删除原来的easybuy数据库
新建一个easybuy数据库
选择UTF-8-Unicode字符集
右击选择“运行SQL文件”,开始导入。

发布了8 篇原创文章 · 获赞 1 · 访问量 235

猜你喜欢

转载自blog.csdn.net/qq_41103187/article/details/105173264