
前言
记录一下, 一台新的服务器,安装部署流程。
之前写过两篇,都是以物理机直接安装各种服务为基础的。
亲测,除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.rpm
yum install -y nginx
systemctl start nginx.service
systemctl 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
# 添加镜像源到Yum
sudo yum-config-manager --add-repo https://mirrors.ustc.edu.cn/docker-ce/linux/centos/docker-ce.repo
sudo 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 lvm2
sudo yum makecache fast
# 安装docker社区版
sudo yum install docker-ce
# 启动、设为开机启动、赋权等配置
sudo systemctl enable docker
sudo systemctl start docker
chmod -R 777 /etc/docker
sudo systemctl daemon-reload
sudo 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 映射本地端口9000
docker 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 portainer
portainer/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=-1
mysql:5.7
# redis 映射本地端口6379
docker run -d -p 6379:6379
-e "TZ=Asia/Shanghai"
--restart=always
-m 200M
--oom-kill-disable
--memory-swap=-1
--name redis
redis
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/tomcat
docker cp tomcat:/usr/local/tomcat/conf /root/docker/tomcat
docker cp tomcat:/usr/local/tomcat/logs /root/docker/tomcat
docker cp tomcat:/usr/local/tomcat/webapps /root/docker/tomcat
docker cp tomcat:/usr/local/tomcat/work /root/docker/tomcat
# 停止并删除临时容器
docker stop tomcat
docker rm tomcat
# 最后正常创建启动
# 映射到本地端口8080
docker 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 tomcat
tomcat:8.5.47-jdk8
END
最后去Tomcat
和Nginx
,根据自己需求,完成域名代理的最终配置,就大功告成了