前言
记录一下, 一台新的服务器,安装部署流程。
之前写过两篇,都是以物理机直接安装各种服务为基础的。
亲测,除Nginx以外的服务安装到Docker下更合理且稳定。
所以本篇记录一台全新服务器从零搭建完整的生产环境,
除Nginx以外,全部基于Docker
正文
安装 Nginx 、Docker
# Nginx Yum 安装方法sudo rpm -Uvh http://nginx.org/packages/centos/7/noarch/RPMS/nginx-release-centos-7-0.el7.ngx.noarch.rpmyum install -y nginxsystemctl start nginx.servicesystemctl enable nginx.service
# Docker Yum 安装方法# 第一步是清理旧的Docker程序 新机器可以跳过sudo yum remove docker docker-client docker-client-latest docker-common docker-latest docker-latest-logrotate docker-logrotate docker-selinux docker-engine-selinux docker-engine# 添加镜像源到Yumsudo yum-config-manager --add-repo https://mirrors.ustc.edu.cn/docker-ce/linux/centos/docker-ce.reposudo sed -i 's/download.docker.com/mirrors.ustc.edu.cn/docker-ce/g' /etc/yum.repos.d/docker-ce.repo# 安装依赖sudo yum install -y yum-utils device-mapper-persistent-data lvm2sudo yum makecache fast# 安装docker社区版sudo yum install docker-ce# 启动、设为开机启动、赋权等配置sudo systemctl enable dockersudo systemctl start dockerchmod -R 777 /etc/dockersudo systemctl daemon-reloadsudo systemctl restart docker
安装Docker下的服务(Tomcat Mysql Redis等)
MySql Redis portainer 安装命令
先解释一下参数的大致含义
-e "TZ=Asia/Shanghai"默认时区上海(解决时间慢8小时问题)--restart=always开机启动且意外中断自动重启-m 20M最大内存20M--oom-kill-disable内存溢出不杀进程--memory-swap=-1内存溢出后使用交换区--name portainer自定义容器名称--link mysql关联mysql容器
# portainer 映射本地端口9000docker run -d -p 9000:9000-e "TZ=Asia/Shanghai"--restart=always-v /var/run/docker.sock:/var/run/docker.sock-m 20M --oom-kill-disable --memory-swap=-1--name portainerportainer/portainer
# mysql 映射本地端口3306# 先自行创建好对应目录(初始可以为空)# /root/docker/mysql57/conf# /root/docker/mysql57/logs# /root/docker/mysql57/data# 注意: 其中MySql密码要换成你自己的docker run -d -p 3306:3306-e "TZ=Asia/Shanghai"--restart=always--name mysql-v /root/docker/mysql57/conf:/etc/mysql/conf.d-v /root/docker/mysql57/logs:/logs-v /root/docker/mysql57/data:/var/lib/mysql-e MYSQL_ROOT_PASSWORD='换成你自己的密码'-m 1000M--oom-kill-disable--memory-swap=-1mysql:5.7
# redis 映射本地端口6379docker run -d -p 6379:6379-e "TZ=Asia/Shanghai"--restart=always-m 200M--oom-kill-disable--memory-swap=-1--name redisredis
Tomcat 安装命令
Tomcat与前三个稍微有点不同,他的映射的初始目录必须是有默认文件的。
我的做法是,先创建一个全新的临时容器Tomcat,
复制重要文件到本地docker/tomcat下,再删除容器,映射文件。
# 先自行创建好对应目录# /root/docker/tomcat(默认为空)# ...略
# 先开一个临时的tomcat容器docker run -d -p 8080:8080 --name tomcat tomcat:8.5.47-jdk8
# 然后直接把需要映射的内容先复制出来docker cp tomcat:/usr/local/tomcat/bin /root/docker/tomcatdocker cp tomcat:/usr/local/tomcat/conf /root/docker/tomcatdocker cp tomcat:/usr/local/tomcat/logs /root/docker/tomcatdocker cp tomcat:/usr/local/tomcat/webapps /root/docker/tomcatdocker cp tomcat:/usr/local/tomcat/work /root/docker/tomcat
# 停止并删除临时容器docker stop tomcatdocker rm tomcat
# 最后正常创建启动# 映射到本地端口8080docker run -d -p 8080:8080-e "TZ=Asia/Shanghai"--restart=always--link mysql--link redis-v /root/docker/tomcat/logs:/usr/local/tomcat/logs-v /root/docker/tomcat/webapps:/usr/local/tomcat/webapps-v /root/docker/tomcat/bin:/usr/local/tomcat/bin-v /root/docker/tomcat/conf:/usr/local/tomcat/conf-v /root/docker/tomcat/work:/usr/local/tomcat/work-m 1500M--oom-kill-disable--memory-swap=-1--name tomcattomcat:8.5.47-jdk8
END
最后去Tomcat和Nginx,根据自己需求,完成域名代理的最终配置,就大功告成了
小林博客






