Docker安装JavaEE环境

在Docker安装MySQL

启动MySQL以后,有时候会出现远程无法连接的情况,解决方式:进入MySQL交互模式、查询用户表,查看登录用户是否开启远程权限(此时再去连接就可以连上了,只要查询一下,挺奇怪的)。以上操作如果依旧不能连接,自己插件用户,授权,然后刷新数据库。此外,MySQL 8.x的加密规则进行了改变,低版本的可视化工具可能因为这个原因不能连接,需要更新升级可视化工具。

docker run -e MYSQL_ROOT_PASSWORD=xx --name mysql_01 -d -p 3306:3306 mysql:tag
    #mysql密码
    -e MYSQL_ROOT_PASSWORD=xx
    #挂载目录启动
    -v /data/nginx/html:/usr/share/nginx/html
    -v /data/nginx/conf/nginx.conf:/etc/nginx/nginx.conf
    -v /data/nginx/conf.d:/etc/nginx/conf.d
    -v /data/nginx/logs:/var/log/nginx nginx
    #管理员权限运行
    --privileged=true
#进入交互模式
docker exec -it xx /bin/bash
#查看错误日志
docker logs 容器
use mysql;
#查询
select host,user from user;
#创建用户
create user 'xx' identified by 'xx';
#授权
grant all privileges on *.* to root@"%" identified by "xx" with grant option;
#刷新
flush privileges;

在Docker安装Tomcat

docker run --name tomcat_01 -d -p 8081:8081 tomcat:tag
#进入交互模式
docker exec -it 容器 /bin/bash
#改名
mv webapps xx
mv webapps.dist webapps

Tomcat安装成功后,如果出现以下页面,是因为Docker获取tomcat镜像的目录内不存在webapps,其相关配置都在webapps.dist文件中,所以会报错找不到资源,将原本的webapps删除或重命名,再将webapps.dist重命名为webapps即可正常访问资源。

image-20200825112856747.png

在Docker安装Nginx

挂载到本地

#正常启动
docker run --name nginx-01 -p 80:80 -d nginx
#创建目录
mkdir -p /root/nginx/html /root/nginx/logs /root/nginx/conf
#复制
docker cp nginx-01:/etc/nginx/nginx.conf /root/nginx/conf

#挂载目录启动
docker run --name nginx-01 -d -p 80:80 --privileged=true -v /root/nginx/html:/usr/share/nginx/html -v /root/nginx/conf/nginx.conf:/etc/nginx/nginx.conf -v /root/nginx/logs:/var/log/nginx nginx

添加首页

cd /root/nginx/html
vim index.html
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>docker搭建nginx</title>
</head>
<body>
    <h1>docker搭建nginx映射成功</h1>
    <p>nginx-web</p>
</body>
</html>
docker restart bb7080cc6969

Linux服务和端口的命令

配置完以后,可以同意查看端口状态才检查端口是否映射成功,阿里云的Linux防火墙默认关闭状态,无需操作

#开启端口
firewall-cmd --zone=public --add-port=xxxx/tcp --permanent
    #作用域
    --zone
    #添加端口
    --add-port=xx/tcp
    #永久生效
    --permannent
#移除端口
firewall-cmd --zone=public --remove-port=8888/tcp --permanent
#查询某个端口是否开放
firewall-cmd --query-port=xx/tcp
#重新加载防火墙配置
firewall-cmd --reload
#修改后需要重启防火墙
systemctl start|stop|restart|reload firewalld
#查询防火墙已经开放的端口
firewall-cmd --list-all
#查看网络是否监听xx端口
netstat -anutp |grep xxxx
#查看正在使用的端口
netstat -tln
#查看进程状态
ps -ef | grep xx
#杀死进程, -9 表示无条件终止
kill -9 xxxx
#后台启动且不中断
nohup java -jar xxx.jar& 
#列出后台进程
ps -ef | grep java
image-20200825102651109.png

防火墙

systemctl start firewalld
systemctl stop firewalld
#查看状态
systemctl status firewalld 
#开启自启
systemctl disable firewalld
systemctl enable firewalld
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

友情链接更多精彩内容