Docker(四):使用Docker部署tomcat、mysql、nginx静态服务器_请参照本章知识点,利用 docker 部署一个由 nginx 和 mysql 构成的 web 服务。-程序员宅基地

技术标签: linux+nginx+tomcat+docker  Docker  tomcat  mysql  nginx服务器  

使用Dokcer可以很好的对镜像进行管理,创建和使用容器。这篇博客将简单介绍一下如何使用Docker来安装Tomcat、Mysql和Nginx文件服务器。相关阅读:

Docker(一):Docker的安装与常用命令

Docker(二):Docker常用命令之镜像的创建:Dockerfile 与 commit

Docker(三):Docker镜像导入与导出、恢复与加载与在Docker容器中安装软件

Docker(四):使用Docker部署tomcat、mysql、nginx文件服务器


 

一、安装JDK环境:

安装JDK的方法有多种:

1、手动解压JDK的压缩包,然后设置环境变量

2、用yum安装JDK

3、用rpm安装文件

1、手动解压JDK压缩包,设置环境变量(这里只介绍第一种):

(1)在/opt/目录下创建software目录:

[root@izwz9ib5he33fx3jnuis2xz ~]# mkdir /opt/software

(2)下载jdk,然后解压,移动并重命名为jdk:

[root@izwz9ib5he33fx3jnuis2xz software]# tar -zxvf jdk-8u171-linux-x64.tar.gz
[root@izwz9ib5he33fx3jnuis2xz software]# sudo mv jdk1.8.0_171/ /opt/software/jdk

(3)配置环境变量:

[root@izwz9ib5he33fx3jnuis2xz ~]# vim ~/.bashrc

在文件的最后添加下面内容:

export JAVA_HOME=/opt/software/jdk
export JRE_HOME=$JAVA_HOME/jre
export PATH=$PATH:$JAVA_HOME/bin:$JRE_HOME/bin
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar:$JRE_HOME/lib

(4)让配置生效:

[root@izwz9ib5he33fx3jnuis2xz ~]# source ~/.bashrc

(5)验证是否配置成功:

[root@izwz9ib5he33fx3jnuis2xz ~]# java -version
java version "1.8.0_171"
Java(TM) SE Runtime Environment (build 1.8.0_171-b11)
Java HotSpot(TM) 64-Bit Server VM (build 25.171-b11, mixed mode

 

 

二、安装tomcat:

1、安装步骤:

#1、搜索tomcat镜像
[root@izwz9ib5he33fx3jnuis2xz ~]# docker search tomcat

#2、拉取tomcat镜像
[root@izwz9ib5he33fx3jnuis2xz ~]# docker pull tomcat

#3、根据镜像启动tomcat容器
[root@izwz9ib5he33fx3jnuis2xz ~]# docker run --name tomcat1 -d -p 8080:8080 tomcat

#4、查看本地的容器,可以看到tomcat容器已经启动成功了
[root@izwz9ib5he33fx3jnuis2xz ~]# docker ps -a
CONTAINER ID    IMAGE      COMMAND              CREATED        STATUS         PORTS                    NAMES
b2e9025226f0    tomcat    "catalina.sh run"     2 days ago     Up 2 days    0.0.0.0:8080->8080/tcp    tomcat1

2、测试:

在浏览器中输入ip:映射端口,如 localhost:8080,出现下面页面则代表成功

 

3、开启多个tomcat容器:

        以前没有使用Docker的时候,如果想要开启多个tomcat服务器,需要先复制tomcat相关文件目录,再进入tomcat的配置文件中修改有关端口的配置,非常麻烦,费时费力。现在,使用Docker,只需要在启动容器的时候指定端口映射,就可以开启多个tomcat服务器了,只需一条命令就可以代替以前的很多麻烦的操作。这也是Docker的强大之处之一。

例如:输入下面的3条命令,就可以开启3个tomcat服务器,并通过8082、8083、8084端口访问到服务器了。

[root@izwz9ib5he33fx3jnuis2xz ~]# docker run --name tomcat2 -d -p 8082:8082 tomcat
[root@izwz9ib5he33fx3jnuis2xz ~]# docker run --name tomcat3 -d -p 8083:8083 tomcat
[root@izwz9ib5he33fx3jnuis2xz ~]# docker run --name tomcat4 -d -p 8084:8084 tomcat

 

 

三、安装mysql数据库:

#1、搜索mysql镜像
[root@izwz9ib5he33fx3jnuis2xz ~]# docker search mysql

#2、拉取mysql镜像
[root@izwz9ib5he33fx3jnuis2xz ~]# docker pull mysql

#3、根据mysql镜像启动mysql容器,-e MYSQL_ROOT_PASSWORD是必填项,用于指定root用户的密码
[root@izwz9ib5he33fx3jnuis2xz ~]# docker run --name mysql01 -e MYSQL_ROOT_PASSWORD=123456 -d -p 3306:3306 mysql

#4、查看本地的容器,可以看到mysql容器已经被创建成功了
[root@izwz9ib5he33fx3jnuis2xz ~]# docker ps -a
CONTAINER ID     IMAGE      COMMAND                CREATED        STATUS          PORTS                    NAMES
d25a5947f7db     mysql    "docker-entrypoint..."   2 days ago     Up 33 seconds   0.0.0.0:3306->3306/tcp   mysql01
b2e9025226f0     tomcat   "catalina.sh run"        2 days ago     Up 2 days       0.0.0.0:8080->8080/tcp   tomcat1

 

 

四、安装nginx静态文件服务器:

1、安装步骤:

#1、搜索nginx镜像
[root@izwz9ib5he33fx3jnuis2xz ~]# docker search nginx

#2、拉取nginx镜像
[root@izwz9ib5he33fx3jnuis2xz ~]# docker pull nginx

#3、根据nginx镜像创建nginx容器
[root@izwz9ib5he33fx3jnuis2xz ~]# docker run --name nginx -d -p 80:80 nginx

#4、查看本地的容器,可以看到nginx容器已经创建成功了
[root@izwz9ib5he33fx3jnuis2xz ~]# docker ps -a
CONTAINER ID    IMAGE      COMMAND                  CREATED        STATUS            PORTS                   NAMES
bcd974e90360    nginx     "nginx -g 'daemon ..."   2 days ago     Up 44 hours       0.0.0.0:80->80/tcp       nginx
d25a5947f7db    mysql     "docker-entrypoint..."   2 days ago     Up 18 minutes     0.0.0.0:3306->3306/tcp   mysql01
b2e9025226f0    tomcat    "catalina.sh run"        2 days ago     Up 2 days         0.0.0.0:8080->8080/tcp   tomcat1

2、测试:如果访问指定端口,我这里配置的是80端口,页面出现如下信息则表示成功:

 

3、搭建文件服务器:

如果想要使用nginx搭建静态文件服务器,并使用宿主机的目录存放文件,则需要在创建容器的时候使用-v指定主机挂载目录与容器被挂载的目录。

(1)挂载主机目录:

# 使用-v挂载目录,冒号前面部分是主机要挂载文件路径,冒号后面部分是挂载到容器的路径  
# -v /home:/home表示将宿主机的home目录下的所有文件挂载到容器的home目录下   
[root@izwz9ib5he33fx3jnuis2xz ~]# docker run --name nginx -d -p 80:80 -v /home:/home nginx

(2)打开配置文件:

#第一步:进入容器内部
[root@izwz9ib5he33fx3jnuis2xz ~]# docker exec -ti nginx /bin/bash

#第二步:修改nginx的配置文件
root@bcd974e90360:/# cd etc/nginx/conf.d/
root@bcd974e90360:/etc/nginx/conf.d# vim default.conf

(3)修改配置文件,使root根目录指向挂载目录:

server {
    listen       80;
    server_name  localhost;

    #charset koi8-r;
    #access_log  /var/log/nginx/host.access.log  main;

    location / {
        #root   /usr/share/nginx/html;
     root   /home/userfile;  #修改root根目录,使指向路径为/home/userfile
        index  index.html index.htm;
    }

备注: nginx容器中配置了文件存放地址是/home/userfile ,我们把本地目录 /home 挂载到了容器的/home目录中,所以我们要把存放文件的文件夹 userfile 放在本地目录 /home 下面,

(4)测试:文件目录的一张图片路径是这样的: /home/userfile/hello.jpg

启动nginx容器后,在浏览器访问图片地址,如果可以访问到,则表示配置成功。

 

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/a745233700/article/details/80452862

智能推荐

C#实现ByteBuffer类_c# java bytebuffer-程序员宅基地

文章浏览阅读1.6w次。 在写网络程序的时候,经常需要往一个数组里面压数据或者取数据,而Java中再Java.nio中有个ByteBuffer能很方便的实现,Delphi中也有个Stream类有着同样的功能,这里我就模仿JAVA用C#做个最基础的ByteBuffer类 下面是代码 using System;namespace System.Byt_c# java bytebuffer

LINUX虚拟机搭建_liunx 虚拟机 free space 2.1g-程序员宅基地

文章浏览阅读191次。一:准备_liunx 虚拟机 free space 2.1g

AVR单片机GCC编程_gcc risc8位-程序员宅基地

文章浏览阅读2.8k次。Atmel公司的AVR 8位RISC单片机是一种非常普通的单片机.它是一个具有电擦写可编程只读存储器(EEPROM),随机访问存储器(RAM),模数转换器,大量的输入和输出线路,计时器,RS-232通讯接口UART以及其他很多功能的单片集成电路.最好的莫过于在Linux下具有一个可供利用的完整编程环境:你可以采用GCC对这种单片机进行C语言编程.本文我将向你讲述如何安装和使用GCC.我也将_gcc risc8位

gis插入的文本怎么搞成两行_没有电脑怎么做PPT?用手机这样做!比电脑做出来的还要精美...-程序员宅基地

文章浏览阅读81次。前天晚上小编正躺在床上刷微博的时候,领导突然找我!要我帮他搞个PPT!吓得我差点从床上滚下来!能不做吗?当然不能了……懒癌晚期的我真的不想从床上爬起来开电脑做PPT!!!我和床是真爱!!!不要将我们分离!!!怎么办呢?嘿嘿!那就用手机做吧!什么?你不知道手机可以做PPT 吗?啧!看来还得我来教你!一、PPT制作1、安装WPS首先呢,我们当然需要工具!所以先在手机里安装一个WPS~这个大家不陌生吧?...

基于Docker搭建DzzOffice与OnlyOffice线上协同办公服务器_dzzoffice onlyoffice-程序员宅基地

文章浏览阅读9.5k次,点赞2次,收藏32次。基于Docker搭建DzzOffice与OnlyOffice线上协同办公服务器基于Docker搭建DzzOffice与OnlyOffice线上协同办公服务器 安装操作系统 安装数据库 安装部署DzzOffice 官方镜像提示: 安装部署Onlyoffice 安装操作系统我是用的是最新版的Ubuntu桌面系统,其实操作系统无所谓,使用Docker之后和操作系统的影响不是很大,容器化部署之后方便迁移和重新部署安装数据库在docker官方镜像源上下载mysql数据库镜_dzzoffice onlyoffice

C语言 | windows命令行编译(Cygwin)_cygwin编译命令-程序员宅基地

文章浏览阅读2.2k次。本文更好的排版方式:https://mp.weixin.qq.com/s?__biz=MzU5MzcyMjI4MA==&mid=100000740&idx=1&sn=f2b589c6930bb6576b5f59997dbef111&chksm=7e0d6d23497ae43532bc906510246c23a885_cygwin编译命令

随便推点

360 VS 金山,百度,腾讯,遨游,可牛-程序员宅基地

文章浏览阅读1.7k次。看到360和(金山,百度,腾讯,遨游,可牛)就想起了星爷的一句哈,是单挑还是群了,单挑,就是你一个挑我们一群,群了,就是我们一群了你一个人……

AXI DataMover_axi data mover-程序员宅基地

文章浏览阅读3.9k次,点赞5次,收藏51次。AXI DataMover IP核的使用s_axis_s2mm_cmd_tvalids_axis_s2mm_cmd_treadys_axis_s2mm_cmd_tdata命令接口s_axis_s2mm_tdata s_axis_s2mm_tkeep s_axis_s2mm_tlast s_axis_s2mm_tvalids_axis_s2mm_tready数据接口_axi data mover

有几种方法来切换页面_"inject(\"topage\") 切换页面"-程序员宅基地

文章浏览阅读1.1k次。有几种方法来切换页面1. $.mobile.changePage ('../path/to/page.html');2. $.mobile.changePage ('other/page.html', 'fade', false, false);可以设定页面切换效果,以及定义参数来控制页面是否记录历史等3.var pageData = { url: formresults.php, typ_"inject(\"topage\") 切换页面"

error: undefined reference to __write_chk错误_报不知名错误: ld: error: undefined symbol: __write_chk 原-程序员宅基地

文章浏览阅读2.9k次。Android集成implementation 'com.github.pqpo:SmartCropper:v2.1.1'报错;错误信息error: undefined reference to '__write_chk'原因Android NDK版本过高,应该是高版本的优点问题解决方法:既然使高本版问题,那就降低 Android NDK的版本,我这里选择19版本,报错消失;分割线我首先尝试的使20版本,底层调用opencv等native方法的,就需要下载Android NDK;..._报不知名错误: ld: error: undefined symbol: __write_chk 原因是ndk版本不一致,

C#实现聊天功能_启动计时器,在计时器的tick事件中判断是否有消息传输。如果有将信息显示在文本框-程序员宅基地

文章浏览阅读8.9k次,点赞26次,收藏75次。要一对一、一对多的发送信息,实现聊天功能。需要用到C#网络编程的知识,需要用到System.Net、System.Net.Sockets和System.Net.Mail命名空间下的类。还需要知道网络编程的基本概念。IP:每个电脑都有一个IP地址,在局域网内IP地址是可变的。TCP协议(传输控制协议):是面向连接的传输层协议,应用程序在使用TCP之前,必须先建立TCP连接,在传输数据完毕后,必须释放已经建立的连接(跟打电话是否类似)。TCP可以保证从一端将数据传送至连接的另一端时,_启动计时器,在计时器的tick事件中判断是否有消息传输。如果有将信息显示在文本框

Setting Sync 备份vscode插件_ps setting router是什么插件-程序员宅基地

文章浏览阅读320次。插件备份一直都是很头痛的事,有些教程写的不是很详细,这次来详细说一下1.下载 Setting Sync2.登陆GitHub输入快捷键后会弹出浏览器,在GitHub上登录账号3.上传Shift + Alt + U 快捷键上传上传成功后,记住 sync.gist就是这一串4.在新设备上同步在此之前需要下载 Setting Sync 插件输入同步的快捷键 Shift +..._ps setting router是什么插件

推荐文章

热门文章

相关标签