持续创作,加速成长!这是我参与「掘金日新计划 · 10 月更文挑战」的第19天,点击查看活动详情
前言
本篇讲述在Docker容器中部署MySQL、Tomcat、Nginx、Redis希望可以给大家带来一点帮助。
1. MySQL部署
1.1 拉取MySQL镜像
[root@localhost ~]# docker pull centos/mysql-57-centos7
本次安装的是MySQL5.7版本的镜像
1.2 创建容器
docker run -di --name=mydemo_mysql(容器名称) -p 3306:3306 -e MYSQL_ROOT_PASSWORD=root123 centos/mysql-57-centos7(镜像名称)
-p 代表端口映射,格式为 宿主机映射端口:容器运行端口
-e 代表添加环境变量 MYSQL_ROOT_PASSWORD 是root用户的登陆密码
1.3 远程登录mysql
连接宿主机的IP ,指定端口为3306
2. Tomcat部署
2.1 拉取镜像
docker pull tomcat
2.2 创建容器
创建容器 -p表示地址映射
docker run -di --name=mytomcat -p 8081:8080
-v /usr/local/webapps:/usr/local/tomcat/webapps tomcat
注意:在进行容器创建的时候如果如下错误
docker: Error response from daemon: driver failed programming external connectivity on endpoint mytomcat (5c00584138635695e468da46ab71212003baa243cf31da20dfbdf4fe8eabf8e4): (iptables failed: iptables --wait -t nat -A DOCKER -p tcp -d 0/0 --dport 8081 -j DNAT --to-destination 172.17.0.3:8080 ! -i docker0: iptables: No chain/target/match by that name.
(exit status 1)).
原因
docker服务启动时定义的自定义链DOCKER由于某种原因被清掉 重启docker服务及可重新生成自定义链DOCKER
解决
重启docker服务后再启动容器
- systemctl restart docker
- docker start tomcat
2.3 测试
在Tomcat中/usr/local/webapps目录下部署WEB应用进行测试
本次测试用例部署的事CAS。
通过IP:端口号/cas进行访问
如果不能访问可以重新启动Tomcat容器,在进行访问
3. Nginx部署
3.1 拉起Nginx镜像
docker pull nginx
3.2 创建Nginx容器
docker run -di --name=mynginx -p 80:80 nginx
3.3 通过浏览器访问
出现上述页面说明访问成功
3.4 将项目的静态页面部署到Nginx中
3.4.1 将dockerdemo文件中的静态页面部署到nginx中
[root@localhost ~]# ls
dockerdemo
3.4.2 进入到Nginx容器目录
[root@localhost ~]# docker exec -it nynginx /bin/bash
3.4.3 进入/etc目录下展示目录信息
root@680871a6344e:/# cd etc/
root@680871a6344e:/etc# ls
在文件中可以找到nginx文件
进入到nginx目录,查看文件信息
root@680871a6344e:/etc# cd nginx
root@680871a6344e:/etc/nginx# ls
conf.d fastcgi_params koi-utf koi-win mime.types modules nginx.conf scgi_params uwsgi_params win-utf
3.4.4 使用cat命令查看nginx.conf配置文件中的信息
可以看到include 对应的路径是: /etc/nginx/conf.d/*.conf
3.4.5 查看nginx目录下的conf.d/default.conf配置文件信息
location 下的root就是nginx欢迎页的存放目录
3.4.6 进入/usr/share/nginx/html/目录进行查看
root@680871a6344e:/# cd /usr/share/nginx/html/
root@680871a6344e:/usr/share/nginx/html# ls
50x.html index.html
3.4.7 退出nginx容器目录
root@680871a6344e:/usr/share/nginx/html# exit
exit
3.4.8 将dockerdemo文件改名成html然后将nginx中的html目录进行替换
[root@localhost ~]# mv dockerdemo html
[root@localhost ~]# docker cp html/ nynginx:/usr/share/nginx/
3.4.9 再次浏览器访问测试
部署成功
4. Redis部署
4.1 拉取镜像
docker pull redis
4.2 创建容器
[root@localhost ~]# docker run -di --name=myredis -p 6379:6379 redis
730f00f73defe7b1832b7ed7ddb216085e55ac8954a9b180392ea0d5784c9881
4.3 进行连接测试
在windows客户端打开redis客户端进行连接测试