Docker(四):使用Docker部署tomcat、mysql、nginx静态服务器
使用Dokcer可以很好的对镜像进行管理,创建和使用容器。这篇博客将简单介绍一下如何使用Docker来安装Tomcat、Mysql和Nginx文件服务器。相关阅读:
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目录:
[[email protected] ~]# mkdir /opt/software
(2)下载jdk,然后解压,移动并重命名为jdk:
[[email protected] software]# tar -zxvf jdk-8u171-linux-x64.tar.gz
[[email protected] software]# sudo mv jdk1.8.0_171/ /opt/software/jdk
(3)配置环境变量:
[[email protected] ~]# 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)让配置生效:
[[email protected] ~]# source ~/.bashrc
(5)验证是否配置成功:
[[email protected] ~]# 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镜像
[[email protected] ~]# docker search tomcat
#2、拉取tomcat镜像
[[email protected] ~]# docker pull tomcat
#3、根据镜像启动tomcat容器
[[email protected] ~]# docker run --name tomcat1 -d -p 8080:8080 tomcat
#4、查看本地的容器,可以看到tomcat容器已经启动成功了
[[email protected] ~]# 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端口访问到服务器了。
[[email protected] ~]# docker run --name tomcat2 -d -p 8082:8080 tomcat
[[email protected] ~]# docker run --name tomcat3 -d -p 8083:8080 tomcat
[[email protected] ~]# docker run --name tomcat4 -d -p 8084:8080 tomcat
三、安装mysql数据库:
#1、搜索mysql镜像
[[email protected] ~]# docker search mysql
#2、拉取mysql镜像
[[email protected] ~]# docker pull mysql
#3、根据mysql镜像启动mysql容器,-e MYSQL_ROOT_PASSWORD是必填项,用于指定root用户的密码
[[email protected] ~]# docker run --name mysql01 -e MYSQL_ROOT_PASSWORD=123456 -d -p 3306:3306 mysql
#4、查看本地的容器,可以看到mysql容器已经被创建成功了
[[email protected] ~]# 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镜像
[[email protected] ~]# docker search nginx
#2、拉取nginx镜像
[[email protected] ~]# docker pull nginx
#3、根据nginx镜像创建nginx容器
[[email protected] ~]# docker run --name nginx -d -p 80:80 nginx
#4、查看本地的容器,可以看到nginx容器已经创建成功了
[[email protected] ~]# 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目录下
[[email protected] ~]# docker run --name nginx -d -p 80:80 -v /home:/home nginx
(2)打开配置文件:
#第一步:进入容器内部
[[email protected] ~]# docker exec -ti nginx /bin/bash
#第二步:修改nginx的配置文件
[email protected]:/# cd etc/nginx/conf.d/
[email protected]:/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容器后,在浏览器访问图片地址,如果可以访问到,则表示配置成功。