此博客主要通过在centos8镜像中安装MySQL、tomcat、jdk实现ssm项目的一键部署,下一篇博客介绍通过 docker-compose一键部署ssm项目 https://blog.csdn.net/qq_41538097/article/details/107196797.
系统: Linux centos8 镜像image:centos8.0 mysql:8.0.20 jdk:jdk1.8.0_161 tomcat:apache-tomcat-8.5.55
在dockerhub官网选择你镜像并拉取 链接: https://hub.docker.com/.
docker pull centos:centos8 docker run -itd --name centos -p 4000:8080 -p 3306:3306 --privileged centos:latest /usr/sbin/init docker exec -it centos /bin/bash=注意使用了 /usr/sbin/init --privileged保证容器内能够使用systemctl,保证能启动mysql,上述命令映射了两个端口,截图不正确,按上述命令运行=
我的镜像是centos,若是其他类型系统,如ubuntu镜像可以使用 apt-get
yum install wget过程中有什么错误,可以参考我另一篇博客 链接: https://blog.csdn.net/qq_41538097/article/details/106552606.
//下载mysql8.0 rpm wget https://dev.mysql.com/get/mysql80-community-release-el8-1.noarch.rpm //安装 yum localinstall mysql80-community-release-el8-1.noarch.rpm //检测mysql是否安装完成 yum repolist enabled | grep "mysql.*-community.*" //先禁用MySQL模块 yum module disable mysql //安装服务 yum -y install mysql-community-server //启用services yum install initscripts -y启动报错,看网上说的centos对mysql7.0以上收费了(不确定) 解决方案
首先需要安装mariadb-server yum install -y mariadb-server 启动服务 systemctl start mariadb.service 添加到开机启动 systemctl enable mariadb.service如下启动成功 修改mysql密码,初始密码为空,直接回车进入
ALTER USER 'root'@'localhost' IDENTIFIED BY 'xxxxxx';远程登录,提示不需要密码 设置远程登陆密码
ALTER USER 'root'@'%' IDENTIFIED BY 'xxxxxx'; select host,user,password from mysql.user;设置完密码可以看到,如此远程用密码可以正常登录
链接: https://mirrors.cnnic.cn/apache/tomcat. 选择合适的版本,拼接下载地址
wget https://mirrors.cnnic.cn/apache/tomcat/tomcat-8/v8.5.56/bin/apache-tomcat-8.5.56.tar.gz提示证书过期 参考博客 链接: https://blog.csdn.net/qq_41538097/article/details/107064986. 解压 apache-tomcat-8.5.56.tar.gz
tar -zxvf apache-tomcat-8.5.56.tar.gz将宿主机的文件copy进来,将已经解压过的 tomcat 文件复制到容器内
apache-tomcat-8.5.55宿主机源文件 centos 容器名字/容器id /usr/local/ 容器内部目录,必须以 / 即根目录开头 docker cp apache-tomcat-8.5.55/ centos:/usr/local/如下可以看到 已经将宿主机的 apache-tomcat-8.5.55 文件夹复制到 容器内部
需要用 wget 下载的可以到 官网找合适的版本 链接: https://www.oracle.com/java/technologies/javase-downloads.html . 以下介绍将宿主机的 copy 进容器
docker cp jdk1.8.0_161/ centos:/usr/local/配置环境变量
打开配置文件 vi /etc/profile 将下列配置复制在文件最后,注意修改为你的 jdk 路径 export JAVA_HOME=/usr/local/jdk1.8.0_161 export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jsr export PATH=$JAVA_HOME/bin:$PATH 刷新配置 source /etc/profile 验证是否配置成功 java -version验证tomcat是否配置成功
cd /usr/local/apache-tomcat-8.5.55/bin ./startup.sh如下启动成功 访问 http://39.99.222.146:4000.,还成你自己的服务器ip或者localhost
注意:此处的端口号4000是你创建容器时的端口映射,我的是4000:8080,8080容器是默认开启的,如果想自定义开启容器端口,查看我的另一篇博客
已启动的tomcat会将war包自动解压 perfect
配置服务程序自启动可以避免每次启动容器都需要进入容器手动开启服务,配置方法参考下面连接 链接: https://blog.csdn.net/qq_41538097/article/details/107107810.
将容器提交为镜像
docker commit centso centos:1.1.1 docker images提交镜像到dockerhub,若想提交到 阿里云请查看我另一篇博客
docker login docker tag centos:1.1.1 yelingyun/centos_ye:1.0.0 docker push yelingyun/centos_ye:1.0.0如下上传成功