0%

Docker 新建并启动容器

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
# 语法
# docker run [OPTIONS] IMAGE [COMMAND] [ARG...]

# 新建并以交互式启动centos容器,并为容器重新分配一个伪输入终端,同时指定容器名称
# docker run -it --name="centos" centos /bin/bash

# 新建并后台启动centos容器,如果启动后的容器内部没有前台运行的进程,容器默认会马上停止
# docker run -d centos

# 参数OPTIONS
# --name="new-name" 或者 --name new-name:为容器指定一个名称,该名称会在执行"docker ps"的时候显示出来
# -d:后台启动容器,并返回容器ID,即启动守护式容器
# -i:以交互式运行容器,通常与-t同时使用
# -t:为容器重新分配一个伪输入终端,通常与-i同时使用
# -P:随机端口映射
# -p:指定端口映射,有四种格式:ip:hostport:containerport、ip::containerport、hostport:containerport、containerport
# --privileged=true:使用该参数指定容器内的root拥有真正的root权限,false代表容器内的root只拥有外部宿主机的一个普通用户权限
阅读全文 »

Docker 帮助命令

1
2
3
4
5
6
7
8
9
10
11
12
# 查看Docker的版本
# docker version

# 查看Docker的详细信息
# docker info

# 查看Docker的命令帮助手册
# docker --help

# 查看Docker具体某个操作的命令帮助手册
# docker images --help
# docker search --help
阅读全文 »

Github 项目地址

前言

与以前相比,Incubator Dubbo Ops 项目中 master 分支的代码进行了大量重构,重构之后的代码目前在 develop 分支;同时 develop 分支的部署方式发生了不少变化,主要体现在 develop 分支采用了前后端分离的部署方式,下面将会分别详细介绍 master 与 develop 分支具体的部署方式。此教程的创建日期为 2018-12-20,由于官方项目正在不断迭代开发中,因此此教程在日后可能与官方的最新代码不同步,一切以官方的 Github 说明文档为准。

incubator-dubbo-ops master 分支(截止 2018-12-20)

incubator-dubbo-ops-master

阅读全文 »

单一应用架构

all-in-one

  • 优点
    1. 简单实用、便于维护,开发成本较低
  • 缺点
    1. 部署麻烦,添加、修改个别模块功能,需要重新将所有模块的代码部署到各个服务器
    2. 单台服务器的性能有限,不适合对外提供所有模块功能
    3. 存在单点故障问题
  • 关键点
    1. 数据访问框架(ORM)
      阅读全文 »

前言

本文主要介绍 Spring + Spring MVC + MyBatis 整合(SSM),开发工具基于 Eclipse + Maven。值得一提的是,下文只给出 SSM 整合所需的最小配置内容,在生产环境需要适当优化项目的配置,尤其是 Log4j2Druid 的配置。完整的项目代码可以直接从 GitHub 下载对应章节 ssm-study

版本说明

名称版本
Spring4.3.2.RELEASE
MyBatis3.4.1
Druid1.0.25
Log4j22.6.2
MySQL5.7.26
阅读全文 »

Spring Boot 配置

邮件发送

在本地开发环境测试,Spring Boot 能够正常发送邮件,但部署到阿里云 ECS 服务器以后,一直没有收到邮件,部分关键日志信息如下:

1
2
3
4
5
6
7
8
org.springframework.mail.MailSendException: Mail server connection failed; nested exception is com.sun.mail.util.MailConnectException: Couldn't connect to host, port: smtp.163.com, 25; timeout -1;
nested exception is:
java.net.ConnectException: 连接超时 (Connection timed out). Failed messages: com.sun.mail.util.MailConnectException: Couldn't connect to host, port: smtp.163.com, 25; timeout -1;
nested exception is:
java.net.ConnectException: 连接超时 (Connection timed out)
at org.springframework.mail.javamail.JavaMailSenderImpl.doSend(JavaMailSenderImpl.java:447)
at org.springframework.mail.javamail.JavaMailSenderImpl.send(JavaMailSenderImpl.java:322)
at org.springframework.mail.javamail.JavaMailSenderImpl.send(JavaMailSenderImpl.java:311)

从现有情况看,跟程序运行环境有关,查看相关资料,发现在阿里云 ECS 服务器上,默认禁用了 25 端口,所以在通过 25 端口去连接邮件服务器时,无法连上,就报超时了。官方建议使用 465 端口,而 456 端口是 SSL 协议的,所以不仅要换端口,还需要进行 SSL 协议替换。下面是在 application.properties 进行的邮件发送相关配置,经过这样配置后,在阿里 ECS 上就能够正常发送邮件了

阅读全文 »