【亲测 | 详细】SMM项目部署到容器(Docker)上线

Docker 构建 Tomcat

构建 Tomcat

  • 拉取镜像
docker pull tomcat
  • 在路径 /usr/local/docker/myshop/ROOT创建index.html
    • 如果没有对应的文件夹,则新建
vi index.html
# 内容为 hello Word!
  • 运行容器
docker run -p 8080:8080 --name tomcat -d -v /usr/local/docker/myshop/ROOT:/usr/local/tomcat/webapps/ROOT tomcat

命令说明:

  • -p 8080:8080:将容器的8080端口映射到主机的8080端口
  • -v /usr/local/docker/myshop/ROOT:/usr/local/tomcat/webapps/ROOT:将主机中当前目录下的ROOT挂载到容器的/ROOT

在这里插入图片描述

证明数据卷内容共享

docker run -p 8081:8080 --name tomcat1 -d -v /usr/local/docker/myshop/ROOT:/usr/local/tomcat/webapps/ROOT tomcat
  • 访问http://192.168.25.129:8081/http://192.168.25.129:8080/ 地址,得到的内容相同
  • 证明了数据卷可以共享
  • 验证完,停掉tomcat、tomcat1 容器,并删除这两个容器

Docker 构建 MySQL

  • 拉取镜像
docker pull mysql:5.7.22
  • 运行容器:
docker run -p 3306:3306 --name mysql \
-v /usr/local/docker/mysql/conf:/etc/mysql \
-v /usr/local/docker/mysql/logs:/var/log/mysql \
-v /usr/local/docker/mysql/data:/var/lib/mysql \
-e MYSQL_ROOT_PASSWORD=123456 \
-d mysql:5.7.22
  • 命令参数:

    • -p 3306:3306:将容器的3306端口映射到主机的3306端口
    • -v /usr/local/docker/mysql/conf:/etc/mysql:将主机当前目录下的 conf 挂载到容器的 /etc/mysql
    • -v /usr/local/docker/mysql/logs:/var/log/mysql:将主机当前目录下的 logs 目录挂载到容器的 /var/log/mysql
    • -v /usr/local/docker/mysql/data:/var/lib/mysql:将主机当前目录下的 data 目录挂载到容器的 /var/lib/mysql
    • -e MYSQL_ROOT_PASSWORD=123456:初始化root用户的密码
  • 使用SQLyog连接成功
    在这里插入图片描述

  • 将容器里的文件复制到宿主机

docker cp mysql:/etc/mysql .
  • 这条命令的意思就是:将mysql容器里/etc/mysql 文件夹下的内容 复制到 宿主机的当前文件夹

部署项目到容器

  • 上传本地的打包的ssm.zip到/usr/local/docker/myshop/ROOT所在的目录下
    • 如果没有对应的文件夹,则新建
  • 解压缩ssm.zip
unzip ssm.zip
  • 删除ssm.zip
rm -rf ssm.zip
  • 以挂载数据卷的方式在容器中启动项目
docker run -p 8080:8080 --name myshop -v /usr/local/docker/myshop/ROOT:/usr/local/tomcat/webapps/ROOT -d  tomcat
  • 查看项目日志
docker logs myshop
  • 浏览器访问http://192.168.25.129:8080/成功访问…

你知道的越多,你不知道的越多。
有道无术,术尚可求,有术无道,止于术。
如有其它问题,欢迎大家留言,我们一起讨论,一起学习,一起进步

发布了193 篇原创文章 · 获赞 116 · 访问量 1万+

猜你喜欢

转载自blog.csdn.net/qq_40722827/article/details/105027948