使用Docker分分钟启动常用应用

目录

  准备事项

  一、启动.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. 检查结果

  

猜你喜欢

转载自blog.csdn.net/bbwangj/article/details/80829129
今日推荐