docker安装mysql
- 拉取mysql镜像(这里latest表示是最新版本的)
docker pull mysql:latest
docker pull mysql
以上两个是等效的
也可拉取指定版本的镜像,例如拉取8.0.18版本
docker pull mysql:8.0.18
后面的标签可以去 docker镜像 查到
- 运行容器
docker run -p 3306:3306 --name mysql -v /opt/docker_v/mysql/conf:/etc/mysql/conf.d -v /opt/docker_v/mysql/datadir:/var/lib/mysql --restart=always -e MYSQL_ROOT_PASSWORD='your_password' -d imageId
-p 3306:3306
将容器的3306端口映射到主机的3306端口
-v /opt/docker_v/mysql/datadir:/var/lib/mysql
将主机的/opt/docker_v/mysql/datadir 目录挂载到容器的/var/lib/mysql(完成持久化)
-e MYSQL_ROOT_PASSWORD=123456
初始化root用户密码
-d
后台运行容器,返回容器id
–restart=always
容器退出时自动重启该容器
–name
自定义容器名
- 启动完成后在MySQL中新建一个可以远程访问的用户
mysql -u root -p
******
use mysql;
create user admin@'%' identified by 'admin.';
//%表示所有ip可访问 可以指定ip可访问 admin. 是密码
grant all privileges on *.* to 'admin'@'%' with grant option;
//授权,允许admin用户从任何主机连接MySQL,并具有对所有表的所有访问权
grant all privileges on *.* to 'admin'@'192.168.1.1' with grant option;
//只允许admin用户从192.168.1.1接入
flush privileges;
//刷新权限
alter user 'admin'@'192.168.1.1' identified with mysql_native_password by '123123';
//修改密码为123123
- 允许容器和主机之间进行数据传输
docker ps -a
//获得容器的id或者name
docker inspect -f '{{.Id}}' name(容器name)
//获取ID全称
docker cp 本地文件路径 ID全称:容器路径
//本地 > 容器
docker cp ID全称:容器文件路径 本地路径
//容器 > 本地
- ubuntu安装nginx
sudo apt-get update
sudo apt-get install nginx
配置文件默认路径 /etc/nginx/nginx.conf
sudo vim /etc/nginx/nginx.conf
nginx配置文件编写 参见 Nginx
server {
listen 80;
server_name 127.0.0.1;
location / {
proxy_pass http://127.0.0.1:8080;
}
}
当访问127.0.0.1或者自己的ip的80端口时,代理到8080端口
nginx启动脚本默认放在 /sbin/ 目录下
sudo /sbin/nginx
- springboot项目运行
打jar包,然后直接运行
sudo java -jar web.jar
参考
菜鸟教程 docker教程
Nginx从入门到实践,万字详解!
MySQL8.0以上授权远程连接时,必须创建新用户