本文以图文讲解java项目在linux环境下部署,涉及到Docker容器安装Mysql、Redis、Tomcat8,以及springboot应用部署,基于Linux version 3.10.0-1160.el7.x86_64(Red Hat 4.8.5-44)。
Docker环境安装
- 安装yum-utils;
yum install -y yum-utils device-mapper-persistent-data lvm2
- 为yum源添加docker仓库位置
yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
- 安装docker
yum install docker-ce
- 启动docker
systemctl start docker
MySQL安装
- 下载Mysql8.0Docker镜像
docker pull mysql:8.0
查看镜像
docker images
- 启动mysql服务
docker run --name mysql -p 3306:3306 -e MYSQL_ROOT_PASSWORD=123456 -d mysql:8.0
需要将数据文件、日志保存其他目录,添加mysql连接配置,可以在/mydata/mysql/my.cnf创建my.cnf文件(mydata/mysql本机目录)。配置内容如下:
[mysqld]
skip-name-resolve
user=root
default_authentication_plugin=mysql_native_password
lower_case_table_names=1 #忽略表名大小写
[client]
default-character-set=utf8
[mysql]
default-character-set=utf8
启动命令
docker run -p 3306:3306 --name mysql --privileged=true -v /mydata/mysql/data:/var/lib/mysql -v /mydata/mysql/my.cnf:/etc/mysql/my.cnf -v /mydata/mysql/mysql-files:/var/lib/mysql-files -e MYSQL_ROOT_PASSWORD=123456 -d mysql:8.0
参数说明
-p:容器端口3306映射主机3306端口
--name:容器名称
--privileged=true:容器拥有root权限(permission denied,权限禁止)
-v /mydata/mysql/data:/var/lib/mysql:数据文件挂载主机目录
-v /mydata/mysql/my.cnf:/etc/mysql/my.cnf:数据库配置挂载主机
-e MYSQL_ROOT_PASSWORD=123456:初始化root用户密码
-d: 返回容器id
mysql:8.0:容器标签
- 进入运行mysql的docker容器
docker exec -it mysql /bin/bash
简写:docker exec -it mysql bash
it ....bash:-it 会等容器内的操作执行完毕,而bash是打开容器内的一个终端近程,又因为it的等待,所以就会一直以终端连接的方式停留在容器内部。
- 使用mysql命令打开客户端
mysql -uroot -p123456
mysql远程连接常见问题1
client does not support authentication protocol requested by server;
原因:mysql5.8密码加密规则跟客户端不一致,需要修改密码加密规则
登录mysql在use表执行命令
alter user 'root'@'%' identified with mysql_native_password by '123456';
Redis安装
- 下载redis的docker镜像
docker pull redis:6.2.6
- 启动Redis服务
docker run -p 6379:6379 --name redis \
-v /mydata/redis/data:/data \
-d redis:6.2.6 redis-server --appendonly yes
添加连接密码参数:--requirepass "123456"
- 进入Redis容器使用redis-cli命令
docker exec -it redis bash
Tomcat8安装
- 获取tomcat8的docker镜像
docker pull tomcat:8.5.4
- 启动tomcat8命令
docker run -d -p 8091:8080 --name tm tomcat:8.5.4
tomcat高版本问题:
ls 查看文件夹内容,可以发现下面有webapps文件夹和webapps.dist文件夹,将webapps.dist下的内容全部异动到webapps中。
mv webapps.dist/* webapps
对外端口8091
http://ip:8091 可以看到tomcat管理页面
docker常用命令
- 启动、重启、停止docker服务
systemctl start docker
systemctl restart docker
systemctl stop docker
- 删除镜像
docker rmi mysql:8.0
- 查看容器(包括运行失败容器)
docker ps -a
- 启动、停止、删除容器
docker start NAMES
docker stop NAMES
docker rm NAMES 或者 CONTAINER ID(删除容器id)
- docker查看容器运行日志
docker logs NMAES --tail 100
- docker 进入容器查看文件
命令1:docker exec -it bash
命令2:ls
注意:容器里不能执行vim命令(需要下载安装)
docker 修改容器参数
docker update 参数 [容器名称、Id]