在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