目录
准备事项
一、启动.Net Core
二、启动静态Html
三、启动Mysql
四、启动MongoDB
五、启动Redis
六、启动RabbitMQ
七、启动Nginx
八、启动Eureka
九、启动Config Server
准备事项
1. 安装Docker
我使用的操作系统是CentOS 7.3,如何安装Docker,可以参考这篇文章:《Centos7安装最新Docker》。
2. Docker加速
Docker的标准镜像库Docker Hub在国外,不进行Docker加速的话拉取镜像会比较慢,这里我使用道客(DaoCloud)来进行Dokcer加速,也可以使用阿里云的docker镜像加速,操作方法》https://yq.aliyun.com/articles/29941。在“配置Docker加速器”里有配置加速的指令:
在Linux中进行配置
执行sudo su -,获取root权限,如果本身是root帐号,可跳过:
执行道客的配置指令:
执行systemctl restart docker,重启Docker:
一、启动.Net Core
1. 拉取dotnet标准镜像,镜像地址:https://hub.docker.com/r/microsoft/dotnet/
2. 拉取镜像:docker pull microsoft/dotnet
3. 执行docker images查看已下好的镜像
4. 新建一个.Net Core HelloWorld程序并发布
5. 准备Dockerfile,并把Dockerfile拷贝到HelloWorld程序同级目录。注:.Net Core运行的默认端口是5000,这里通过环境变量的方式把端口修改为8080
1
2
3
4
5
6
7
8
|
FROM microsoft
/dotnet
:latest
COPY .
/app
WORKDIR
/app
EXPOSE 8080
/tcp
ENV ASPNETCORE_URLS http:
//
*:8080
ENTRYPOINT [
"dotnet"
,
"HelloWorld.dll"
]
|
6. 定位到程序目录,执行指令把HelloWorld程序打包成Docker镜像
docker build -t hello-world:1.0 .
7. 运行Docker容器
docker run --name hello-world -p 8080:8080 -d hello-world:1.0
8. 检查结果
二、启动静态Html
1. 拉取Nginx官方镜像,镜像地址:https://hub.docker.com/_/nginx/
2. 拉取镜像:docker pull nginx
3. 准备html程序,可以使用我之前的一个Durandal的示例:https://github.com/ErikXu/DurandalDemo
4. 准备Dockerfile,并把Dockerfile拷贝到Html程序同级目录。注:程序中需要有一个入口页面,如index.html
1
2
|
FROM nginx:latest
COPY .
/usr/share/nginx/html
|
5. 定位到程序目录,执行指令把Html程序打包成Docker镜像
docker build -t html:1.0 .
6. 运行Docker容器,注:这里把容器中的80端口映射到虚拟机的81端口
docker run --name html -p 81:80 -d html:1.0
7. 检查结果
三、启动Mysql
1. 拉取官方镜像,镜像地址:https://hub.docker.com/_/mysql/
2. 拉取镜像:docker pull mysql
3. 准备Mysql数据存放目录,我这里是:/home/erikxu/mysql
4. 执行指令启动Mysql
docker run --name mysql -v /home/erikxu/mysql:/var/lib/mysql -p 3306:3306 -e MYSQL_ROOT_PASSWORD=123456 -d mysql:latest
5. 检查结果
四、启动MongoDB
1. 拉取官方镜像,镜像地址:https://hub.docker.com/_/mongo/
2. 拉取镜像:docker pull mongo
3. 准备MongoDB数据存放目录,我这里是:/home/erikxu/mongo
4. 执行指令启动MongoDB
docker run --name mongo -v /home/erikxu/mongo:/data/db -p 27017:27017 -d mongo:latest
5. 检查结果
五、启动Redis
1. 拉取官方镜像,镜像地址:https://hub.docker.com/_/redis/
2. 拉取镜像:docker pull redis
3. 执行指令启动Redis
docker run --name redis -d -p 6379:6379 redis
4. 检查结果
六、启动RabbitMQ
1. 拉取官方镜像,镜像地址:https://hub.docker.com/_/rabbitmq/
2. 拉取镜像:docker pull rabbitmq,如需要管理界面:docker pull rabbitmq:management
3. 执行指令启动RabbitMQ
无管理界面:
docker run --hostname rabbit-host --name rabbit -d -p 5672:5672 rabbitmq
有管理界面:
docker run --hostname rabbit-host --name rabbit -d -p 5672:5672 -p 15672:15672 rabbitmq:management
4. 检查结果
七、启动Nginx
1. 拉取官方镜像,镜像地址:https://hub.docker.com/_/nginx/
2. 拉取镜像:docker pull nginx
3. 准备配置文件
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
|
worker_processes 1;
events {
worker_connections 1024;
}
http {
server {
listen 80;
server_name 192.168.52.130;
location / {
proxy_pass http:
//192
.168.52.130:81/;
}
location
/html/
{
proxy_pass http:
//192
.168.52.130:81/;
}
location
/dotnet/
{
proxy_pass http:
//192
.168.52.130:8080/;
}
}
}
|
4. 执行指令启动Nginx
docker run --name nginx -p 80:80 -v /home/erikxu/nginx/nginx.conf:/etc/nginx/nginx.conf:ro -d nginx
5. 检查结果
八、启动Eureka
1. 拉取官方镜像,镜像地址:https://hub.docker.com/r/springcloud/eureka/
2. 拉取镜像:docker pull springcloud/eureka
3. 执行指令启动Eureka
docker run --name eureka -d -p 8761:8761 springcloud/eureka
4. 检查结果
未有服务注册:
下载SteelToe示例:https://github.com/SteeltoeOSS/Samples
打开Discovery,并修改appsetting.json:
按照README文档描述启动服务,进行服务注册:
九、启动Config Server
1. 拉取官方镜像,镜像地址:https://hub.docker.com/r/hyness/spring-cloud-config-server/
2. 拉取镜像:docker pull hyness/spring-cloud-config-server
3. 在GitHub上准备配置文件:https://github.com/ErikXu/.NetCore-Spring-Clould/tree/master/Configs
4. 准备启动资源文件application.yml:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
|
info:
component: config service
server:
port: 8888
spring:
application:
name: git-config
profiles:
active: dev
cloud:
config:
server:
git:
uri: https:
//github
.com
/ErikXu/
.NetCore-Spring-Clould
searchPaths: Configs
|
5. 执行指令启动Config Server,注:该指令前无空格
docker run --name configsvr -it -d -p 8888:8888 \
-v /home/erikxu/config/application.yml:/config/application.yml \
hyness/spring-cloud-config-server
6. 检查结果