前言

记录一下, 一台新的服务器,安装部署流程。
之前写过两篇,都是以物理机直接安装各种服务为基础的。
亲测,除Nginx以外的服务安装到Docker下更合理且稳定。
所以本篇记录一台全新服务器从零搭建完整的生产环境,
Nginx以外,全部基于Docker



正文

安装 NginxDocker

  1. # Nginx Yum 安装方法
  2. sudo rpm -Uvh http://nginx.org/packages/centos/7/noarch/RPMS/nginx-release-centos-7-0.el7.ngx.noarch.rpm
  3. yum install -y nginx
  4. systemctl start nginx.service
  5. systemctl enable nginx.service
  6. # Docker Yum 安装方法
  7. # 第一步是清理旧的Docker程序 新机器可以跳过
  8. 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
  9. # 添加镜像源到Yum
  10. sudo yum-config-manager --add-repo https://mirrors.ustc.edu.cn/docker-ce/linux/centos/docker-ce.repo
  11. sudo sed -i 's/download.docker.com/mirrors.ustc.edu.cn\/docker-ce/g' /etc/yum.repos.d/docker-ce.repo
  12. # 安装依赖
  13. sudo yum install -y yum-utils device-mapper-persistent-data lvm2
  14. sudo yum makecache fast
  15. # 安装docker社区版
  16. sudo yum install docker-ce
  17. # 启动、设为开机启动、赋权等配置
  18. sudo systemctl enable docker
  19. sudo systemctl start docker
  20. chmod -R 777 /etc/docker
  21. sudo systemctl daemon-reload
  22. 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容器
  1. # portainer 映射本地端口9000
  2. docker run -d -p 9000:9000\
  3. -e "TZ=Asia/Shanghai"\
  4. --restart=always\
  5. -v /var/run/docker.sock:/var/run/docker.sock\
  6. -m 20M --oom-kill-disable --memory-swap=-1\
  7. --name portainer\
  8. portainer/portainer
  9. # mysql 映射本地端口3306
  10. # 先自行创建好对应目录(初始可以为空)
  11. # /root/docker/mysql57/conf
  12. # /root/docker/mysql57/logs
  13. # /root/docker/mysql57/data
  14. # 注意: 其中MySql密码要换成你自己的
  15. docker run -d -p 3306:3306\
  16. -e "TZ=Asia/Shanghai"\
  17. --restart=always\
  18. --name mysql\
  19. -v /root/docker/mysql57/conf:/etc/mysql/conf.d\
  20. -v /root/docker/mysql57/logs:/logs\
  21. -v /root/docker/mysql57/data:/var/lib/mysql\
  22. -e MYSQL_ROOT_PASSWORD='换成你自己的密码'\
  23. -m 1000M\
  24. --oom-kill-disable\
  25. --memory-swap=-1\
  26. mysql:5.7
  27. # redis 映射本地端口6379
  28. docker run -d -p 6379:6379\
  29. -e "TZ=Asia/Shanghai"\
  30. --restart=always\
  31. -m 200M\
  32. --oom-kill-disable\
  33. --memory-swap=-1\
  34. --name redis\
  35. redis

Tomcat 安装命令
Tomcat与前三个稍微有点不同,他的映射的初始目录必须是有默认文件的。
我的做法是,先创建一个全新的临时容器Tomcat
复制重要文件到本地docker/tomcat下,再删除容器,映射文件。

  1. # 先自行创建好对应目录
  2. # /root/docker/tomcat(默认为空)
  3. # ...略
  4. # 先开一个临时的tomcat容器
  5. docker run -d -p 8080:8080 --name tomcat tomcat:8.5.47-jdk8
  6. # 然后直接把需要映射的内容先复制出来
  7. docker cp tomcat:/usr/local/tomcat/bin /root/docker/tomcat
  8. docker cp tomcat:/usr/local/tomcat/conf /root/docker/tomcat
  9. docker cp tomcat:/usr/local/tomcat/logs /root/docker/tomcat
  10. docker cp tomcat:/usr/local/tomcat/webapps /root/docker/tomcat
  11. docker cp tomcat:/usr/local/tomcat/work /root/docker/tomcat
  12. # 停止并删除临时容器
  13. docker stop tomcat
  14. docker rm tomcat
  15. # 最后正常创建启动
  16. # 映射到本地端口8080
  17. docker run -d -p 8080:8080\
  18. -e "TZ=Asia/Shanghai"\
  19. --restart=always\
  20. --link mysql\
  21. --link redis\
  22. -v /root/docker/tomcat/logs:/usr/local/tomcat/logs\
  23. -v /root/docker/tomcat/webapps:/usr/local/tomcat/webapps\
  24. -v /root/docker/tomcat/bin:/usr/local/tomcat/bin\
  25. -v /root/docker/tomcat/conf:/usr/local/tomcat/conf\
  26. -v /root/docker/tomcat/work:/usr/local/tomcat/work\
  27. -m 1500M\
  28. --oom-kill-disable\
  29. --memory-swap=-1\
  30. --name tomcat\
  31. tomcat:8.5.47-jdk8


END

最后去TomcatNginx,根据自己需求,完成域名代理的最终配置,就大功告成了