注意在应用部署之前,docker 服务必须是开启状态 systemctl start docker。

目录

一、MySQL 部署

二、Tomcat 部署

三、Nginx 部署

四、Redis 部署


一、MySQL 部署

1. 拉取 MySQL 镜像,此处选择的是 MySQL 5.7 版本;

docker pull centos/mysql-57-centos7
 

2. 创建容器,容器名称为 mysql;

docker run -di --name=tensquare_mysql -p 3306:3306 -e MYSQL_ROOT_PASSWORD=123456 mysql
 
  • -p 表示端口映射关系,格式为 宿主机映射端口 : 容器运行端口;
  • -e 表示添加环境变量,此处设置 root 用户登录密码为 123456。

如下即为创建成功:

3. 远程登录 MySQL

容器创建完成之后,就可以在本地进行 MySQL 连接了;如下图在本地的 Navicat 中新建一个连接:

要知道我们并不是直接去连接容器中的 MySQL,而是通过宿主机进行连接。此时所连接的正是我们刚刚所创建的容器中的 MySQL;

Docker 下 MySQL 部署完成!

二、Tomcat 部署

1. 拉取 tomcat 镜像;

docker pull tomcat:7-jre7
 

2. 创建容器;

docker run -di --name=mytomcat -p 9000:8080 -v /usr/local/webapps:/usr/local/tomcat/webapps tomcat:7-jre7
 
  • -v  目录映射关系,前者为宿主机目录,后者是映射到宿主机上的目录,如果没有该目录会自动创建
  • -p  端口映射关系,前者为宿主机端口,后者是容器内的映射端口

3. 部署应用

容器创建成功之后,我们这时直接在本地访问是没有效果的,报错 404;

这是因为我们使用到了目录挂载,本地的目录 /usr/local/webapps 是新创建的,没有任何应用,所以访问时无显示。这时候我们可以为它部署一个应用,也就是往此目录中放入一个应用,我在这里用了一个简单的测试 war 包 cluster_test.war(文末附下载地址)

上传后如下,目录中出现 war 包和自动解压后的文件;

成功部署后就可以在本地进行访问了,如下访问成功,不再报错;

Docker 下 tomcat 部署完成!

需要注意在 tomcat 部署过程当中,如部署后无法正常访问,报错 404,这说明 tomcat 服务是没问题的。那么无法正常访问可能有三个原因:

  1. 防火墙未开放该端口;
  2. 访问路径写的有问题;
  3. war 包本身有问题;

三、Nginx 部署

1. 拉取 nginx 镜像

docker pull nginx
 

2. 创建容器

docker run -di --name=mynginx -p 80:80 nginx
 

创建成功我们在本地浏览器访问宿主机 IP,可以看到 nginx 欢迎界面;

3. 部署应用

我们这里将一个静态页面部署到 nginx 中,如下我在本地创建了一个 html 文件夹 和 index.html 文件;

将它上传至我们的宿主机;

进入 nginx 容器;

docker exec -it mynginx /bin/bash
 

找到配置文件 default.conf,可以看到 nginx 的页面文件是保存于 /usr/share/nginx/html/ 中的;

所以我们将需要部署的页面文件移动到此目录;

docker cp html mynginx:/usr/share/nginx/
 

此时再次在本地访问宿主机 IP,页面显示已由 nginx 欢迎页面变成了我们部署的页面;

Docker 下 nginx 部署完成!

四、Redis 部署

1. 拉取镜像

docker pull redis
 

2. 创建容器

docker run -di --name=myredis -p 6379:6379 redis
 

3. 测试

使用本地的 redis(文末附下载地址) 进行测试,如下图;

在 redis 目录下打开终端,redis-cli -h 宿主机IP 连接宿主机;

连接成功,占用 6379 端口且可正常运行;

Docker 下 redis 部署完成!


 

 

【云原生 • Docker】mysql、tomcat、nginx、redis 环境部署的更多相关文章

  1. mysql|tomcat|nginx|redis在docker中的部署

    MySQL部署 拉取MySQL镜像 docker pull mysql 查看镜像 创建MySQL容器 docker run -di --name pinyougou_mysql -p 33306:33 ...

  2. Docker部署Mysql, Tomcat, Nginx, Redis

    1. Mysql部署 问题及解决方案 容器内的网络和外部机器不能直接通信 外部机器和宿主机可以直接通信 宿主机和容器可以直接通信 当容器中的网络服务需要被外部机器访问时,可以将容器中提供服务的端口映射 ...

  3. Docker Compose 容器编排 NET Core 6+MySQL 8+Nginx + Redis

    环境: CentOS 8.5.2111Docker 20.10.10Docker-Compose 2.1.0 服务: db  redis  web nginx NET Core 6+MySQL 8+N ...

  4. 2. Docker部署tomcat, nginx, redis,及docker私有仓库

    1. 部署tomcat 1.1 下载tomcat       docker pull tomcat:7-jre8 1.2 部署容器  docker run -di --name=tomcat -p 8 ...

  5. centos 7使用docker安装lnmp和redis环境

    #================Docker基础操作========================== #启动docker服务service docker start#搜索可用docker镜像#h ...

  6. tomcat+nginx+redis实现均衡负载、session共享(一)

    在项目运营时,我们都会遇到一个问题,项目需要更新时,我们可能需先暂时关闭下服务器来更新.但这可能会出现一些状况: 1.用户还在操作,被强迫终止了(我们可以看日志等没人操作的时候更新,但总可能会有万一) ...

  7. 【转载】tomcat+nginx+redis实现均衡负载、session共享(一)

    http://www.cnblogs.com/zhrxidian/p/5432886.html 在项目运营时,我们都会遇到一个问题,项目需要更新时,我们可能需先暂时关闭下服务器来更新.但这可能会出现一 ...

  8. (转)tomcat+nginx+redis实现均衡负载、session共享(一)

    在项目运营时,我们都会遇到一个问题,项目需要更新时,我们可能需先暂时关闭下服务器来更新.但这可能会出现一些状况: 1.用户还在操作,被强迫终止了(我们可以看日志等没人操作的时候更新,但总可能会有万一) ...

  9. 阿里云、青云、腾讯云服务器,Mysql数据库,Redis等产品性能对比

    阿里云.青云.腾讯云服务器,Mysql数据库,Redis等产品都使用过,对比维度很多就不一一放出.直接放结论吧:买的腾讯(金融专区)服务器,Mysql(TDSql)把所有项目转到腾讯云,但是没有用腾讯 ...

  10. tomcat+nginx+redis集群试验

    Nginx负载平衡 + Tomcat + 会话存储Redis配置要点   使用Nginx作为Tomcat的负载平衡器,Tomcat的会话Session数据存储在Redis,能够实现0当机的7x24 运 ...

随机推荐

  1. MySQL 数据更新过程

    文章转载自:https://mp.weixin.qq.com/s?__biz=MzI1MDgwNzQ1MQ==&mid=2247486441&idx=1&sn=fcf93709 ...

  2. 4.Gitlab CI 与 Kubernetes 的结合

    参考网址:https://www.qikqiak.com/post/gitlab-ci-k8s-cluster-feature/

  3. 5_SpringMVC

    一. 什么是MVC框架 MVC全名是Model View Controller, 是模型(model), 视图(view), 控制器(controller)的缩写, 一种软件设计典范, 用一种业务逻辑 ...

  4. 1_JavaWeb引言

    JavaEE平台 (Java Platform Enterprise Edition) Web进阶核心知识 part1: 数据库应用与JDBC MySQL, SQL语言, JDBC, 三层架构, 连接 ...

  5. Python实现改进后的Bi-RRT算法实例

    Python实现改进后的Bi-RRT算法实例 1.背景说明 以下代码是参照上海交通大学海洋工程国家重点实验室<基于改进双向RRT的无人艇局部路径规划算法研究>的算法思想实现的. 2.算法流 ...

  6. html页面跳转方式

    js里的方法 第一种: window.location.href = XXXX; 第二种: window.setTimeout("javascript:location.href='xxxx ...

  7. 【k8s】k8s pv、pvc无法删除问题。

    一般删除步骤为:先删除pod再删除pvc最后删除pv 遇到的问题 但是遇到pv使用处于"Terminating"状态,而且删不掉.如下图: 解决办法 直接删除k8s中的记录: ku ...

  8. Linux网络管理命令

    Linux网络管理命令 ifconfig 用于配置网卡ip地址信息等网络参数或显示网络接口状态,类似于windows的ipconfig命令. 可以用这个工具来临时性的配置网卡的IP地址.掩码.广播地址 ...

  9. JS学习笔记 (五) 函数进阶

    1.函数基础 1.1 函数的基本概念 函数是一段JavaScript代码,只被定义一次,但是可以被调用或者执行许多次.函数是一种对象,可以设置属性,或调用方法. 函数中的参数分为实参和形参.其中,形参 ...

  10. Django系列---理论一

    教程:http://c.biancheng.net/django/ 特点 集成 ORM 组件:Django 的 Model 层自带数据库 ORM 组件,为操作不同类型的数据库提供了统一的方式. URL ...