系统环境:Ubuntu22.04
1.Docker安装
- 一键安装脚本
一键安装脚本可以省去以往手动安装的繁琐,减少添加GPG密钥、添加Docker存储库等操作;
curl -fsSL https://get.docker.com | bash -s docker --mirror Aliyun
等待一会,安装完成有如下提示:
- Docker的启动和用户组添加
##启动docker
sudo systemctl start docker
##正常情况下只有root用户和docker用户组用户才可运行docker命令
##为了不用每次在命令前添加sudo,可以将当前用户添加到docker用户组
sudo usermod -aG docker $USER
##注销当前用户,再次登录操作会生效(试了下我自己的电脑,重启了下才生效)
此时再次输入docker命令应该不会再有权限问题提示了;
2.通过Docker部署Tomcat服务器
- 通过Docker服务搜索Tomcat镜像
docker search tomcat
返回结果中上面的STARS高的选择一个下载即可;
- 通过Docker服务拉取镜像
##选择返回结果中第一个进行下载,参数是资源NAME(这里是tomcat)
docker pull tomcat
- 通过Docker服务查看Tomcat镜像
##tomcat还是刚刚下载的镜像名字
docker images tomcat
- 通过Docker服务创建Tomcat守护式容器
docker run -di -p 8089:8080 --name=tomcat001 tomcat
##-i表示运行容器
##-d 则会创建一个守护式容器,并在后台运行
##(这样创建容器后,不会自动登录容器,若加-i -t参数创建后会自动登录容器)
## -p端口号,8080一般不变,更改了前面的端口;这里则可通过8089访问tomcat http://pc_ip:8089/
##--name为创建的容器命名
##最后跟着刚刚拉取的Tomcat镜像的名字(tomcat)
- 通过Docker服务查看Tomcat容器状态
若tomcat001容器返回状态是Up,则表示Tomcat容器启动成功;
docker ps -a
##-a 列出当前所有正在运行的容器,或历史上运行过的容器
3.通过Docker部署Mysql数据库
- 通过Docker服务下载Mysql
与前面下载tomcat类似
docker search mysql
docker pull mysql
docker images mysql
- 通过Docker服务创建Mysql守护式容器
docker run -di --name=mysql001 -p 33506:3306 -e MYSQL_ROOT_PASSWORD=123456 mysql
## -e表示添加环境变量,当前添加的是root用户的登录密码
此时再次查看当前容器列表,tomcat和Mysql就应该都有了;
通过返回的容器id就可以进入Mysql并使用root账号登录了。
## 登录mysql数据库
mysql -uroot -p'123456';
## 创建测试项目的数据库
create database zrlog;
## 授权一个新的,可远程访问的root用户
grant all privileges on *.* to root@'%' with grant option;
flush privileges;
4.Tomcat中部署项目
- eg:可以将项目war包直接扔到Tomcat容器webapps文件夹下
"53..."是Tomcat的容器id
- 可能遇到的问题1
下载的Tomcat镜像是阉割过的,webapps文件夹下是空的,它把相关文件放到了webapps.dist下; 此时使用宿主ip:8089启动网页是404,可以修改文件夹名操作一下,再移动war包;
##进入文件夹目录
docker exec -it 容器id /bin/bash
mv webapps webapps2
mv webapps.dist webapps
## 然后再次移动下war包
- 可能遇到的问题2
以上操作后仍不能访问成功,可能是Tomcat镜像的问题,可以下载个其他的试下;
## 删除容器
docker rm -f 容器id
## 删除Tomcat镜像
docker rmi tomcat
##走上面的步骤再次下载一个镜像(可以试下tomee),然后再次启动,并移动war包
##其它常用命令
## 启动已停止的容器
docker start 容器id
## 重启容器
docker restart 容器id
##停止容器
docker stop 容器id