================================================================

前提须知:

(1)搜索镜像命令

格式:docker search 镜像名

(2)设置Docker镜像加速器

详见文章:Docker设置ustc的镜像源(镜像加速器)

================================================================


1、部署MySQL

(1)拉取镜像(这里拉取mysql5.7版本

[root@localhost ~]# docker pull mysql:5.7

(2)创建容器(默认运行)

[root@localhost ~]# docker run -di --name=my_mysql -p 33060:3306 -e MYSQL_ROOT_PASSWORD=1234 mysql:5.7

-p:代表端口映射,格式为:宿主机映射端口:容器运行端口,映射容器服务的 3306 端口到宿主机的 33060 端口,外部主机可以直接通过 宿主机ip:33060 访问到 MySQL 的服务。
-e:代表添加环境变量,MYSQL_ROOT_PASSWORD=1234 为MySQL 服务 root 用户的密码。

Docker部署常见应用(MySQL、Tomcat、Nginx、Redis、Centos)_tomcat


(3)暂时关闭防火墙(可跳过)

[root@localhost ~]# systemctl stop firewalld

重启防火墙命令:service iptables restart


(4)远程登录mysql(连接宿主机的IP,指定端口为33060

①mysql客户端连接

mysql -h192.168.116.161 -P33060 -uroot -p

Docker部署常见应用(MySQL、Tomcat、Nginx、Redis、Centos)_docker_02


②Novicat客工具连接

Docker部署常见应用(MySQL、Tomcat、Nginx、Redis、Centos)_mysql_03


2、部署Tomcat

特别提醒:

小虎测试: 从官网pull下来的tomcat8.0,部署maven项目war包时,提示“Unsupported major.minor version 52.0”,即不支持jdk8,重新pull下来的tomcat9.0正常运行该项目(故暂时建议安装tomcat9.0)。

(1)拉取镜像(这里拉取tomcat8.0版本

[root@localhost ~]# docker pull tomcat:8.0

(2)查看所有镜像

[root@localhost ~]# docker images

Docker部署常见应用(MySQL、Tomcat、Nginx、Redis、Centos)_tomcat_04


(3)创建tomcat容器

[root@localhost ~]# docker run -di --name=my_tomcat -p 8081:8080 -v /usr/local/webapps:/usr/local/tomcat/webapps tomcat:8.0

注: 如果创建失败,请重启docker服务再试:systemctl restart docker

-p:8081:8080:将主机的 8081 端口映射到容器的 8080 端口。
-v:挂载目录。这里将宿主机目录/usr/local/webapps 挂载(映射)到 容器目录/usr/local/tomcat/webapps(如果没有,目录会自动创建) 。

查看容器启动情况,如果没有启动则启动tomcat:

[root@localhost ~]# docker ps -a
[root@localhost ~]# docker start my_tomcat
my_tomcat
[root@localhost ~]#

(4)上传项目war包

此时在webapps没有任何文件,我们需要上传我们的war包到宿主系统目录:/usr/local/webapps

这里我们上传开源项目war包:cas.war

百度网盘项目地址
链接:https://pan.baidu.com/s/1co2Xpw-yNVwq6i87VR_tcQ 提取码:r465

【注】:这里需要等待一会,等待war包自动解压(或访问时会自动解压)。


(5)暂时关闭防火墙(可跳过

[root@localhost ~]# systemctl stop firewalld

重启防火墙命令:service iptables restart


(6)访问项目

访问地址:http://192.168.116.161:8081/cas/login

Docker部署常见应用(MySQL、Tomcat、Nginx、Redis、Centos)_docker_05


3、部署Nginx

(1)拉取镜像

[root@localhost webapps]# docker pull nginx:1.16

(2)查看所有镜像

[root@localhost ~]# docker images

Docker部署常见应用(MySQL、Tomcat、Nginx、Redis、Centos)_centos_06


(3)创建Nginx容器

[root@localhost webapps]# docker run -di --name=my_nginx -p 81:80 nginx:1.16
4925395ef0eb0e3b52f9c8dc212f1793c8437caff93efb1d401b83c088b61238
[root@localhost webapps]# 
[root@localhost webapps]# 
[root@localhost webapps]# 
[root@localhost webapps]# docker ps -a

-p :81:80,映射容器服务的 80端口到宿主机的 81 端口。外部可以直接通过宿主机ip:81访问到 nginx的服务。


(4)暂时关闭防火墙(可跳过)

[root@localhost ~]# systemctl stop firewalld

重启防火墙命令:service iptables restart


(5)访问nginx

访问地址:http://192.168.116.161:81

Docker部署常见应用(MySQL、Tomcat、Nginx、Redis、Centos)_docker_07


(6)配置文件地址 及 相关说明

登录my_redis 容器:

[root@localhost webapps]# docker exec -it my_nginx /bin/bash
root@4925395ef0eb:/# dir
bin  boot  dev	etc  home  lib	lib64  media  mnt  opt	proc  root  run  sbin  srv  sys  tmp  usr  var
root@4925395ef0eb:/#

我们查看my_nginx容器内默认配置文件:/etc/nginx/nginx.conf ,发现其中include命令:include /etc/nginx/conf.d/*.conf;,进入该目录,发现有一个默认的配置文件/etc/nginx/conf.d/default.conf,default.conf 内的静态文件目录配置如下:

location / {
    root   /usr/share/nginx/html;
    index  index.html index.htm;
}

进入静态文件目录,找到了默认静态文件:

root@4925395ef0eb:/etc/nginx/conf.d# cd /usr/share/nginx/html
root@4925395ef0eb:/usr/share/nginx/html# dir
50x.html  index.html
root@4925395ef0eb:/usr/share/nginx/html#

4、部署Redis

(1)拉取镜像

[root@localhost webapps]# docker pull redis:5

(2)查看所有镜像

[root@localhost ~]# docker images

Docker部署常见应用(MySQL、Tomcat、Nginx、Redis、Centos)_tomcat_08


(3)创建redis容器(默认启动)

[root@localhost webapps]# docker run -itd --name=my_redis -p 63790:6379 redis:5

-p:63790:6379:映射容器服务的 6379 端口到宿主机的 63790 端口。外部可以直接通过宿主机ip:63790 访问到 Redis 的服务。


(4)暂时关闭防火墙(可跳过

[root@localhost ~]# systemctl stop firewalld

重启防火墙命令:service iptables restart


(5)连接redis

①redis-cli 连接使用测试

[root@localhost webapps]# docker exec -it my_redis /bin/bash
root@ad95adf3a459:/data# redis-cli
127.0.0.1:6379> set name zhangsan
OK
127.0.0.1:6379> get name
"zhangsan"
127.0.0.1:6379> quit
root@ad95adf3a459:/data# exit
exit
[root@localhost webapps]#

②RedisDesktopManager工具连接测试

Docker部署常见应用(MySQL、Tomcat、Nginx、Redis、Centos)_mysql_09


4、部署Centos

(1)拉取镜像

[root@localhost ~]# docker pull centos:7
**(2)查看所有镜像**
```bash
[root@localhost ~]# docker images

Docker部署常见应用(MySQL、Tomcat、Nginx、Redis、Centos)_mysql_10


(3)创建centos容器(默认启动)

[root@localhost webapps]# docker run -itd --name=my_centos centos:7

[root@localhost webapps]# docker ps

Docker部署常见应用(MySQL、Tomcat、Nginx、Redis、Centos)_tomcat_11


(4)登录my_centos容器:

[root@localhost webapps]# docker exec -it my_centos /bin/bash
[root@ebc363fd0265 /]#