java项目在linux环境下部署(Docker容器)上

本文以图文讲解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
1.png
  • 启动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]
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容