使⽤Docker分分钟启动常⽤应⽤
前⾔
  Docker是⽬前⽐较⽕的⼀个概念,同时也是微服务中⽐较关键的⼀个容器化技术。但是,单从理论上好难看出Docker的优势,因此,我希望在这篇⽂章中提供⼀些Docker的使⽤⽰例,希望从实际应⽤上帮助⼤家理解Docker的优势,同时也对⾃⼰的Docker使⽤进⾏简单的记录。
⽬录
准备事项
  1. 安装Docker
  我使⽤的操作系统是CentOS 7/7.1,如何安装Docker,可以参考园⼦⾥的这篇⽂章:。
  2. Docker加速
  Docker的标准镜像库在国外,不进⾏Docker加速的话拉取镜像会⽐较慢,这⾥我使⽤来进⾏Dokcer加速。在⾥有配置加速的指令: 
  在Linux中进⾏配置
  执⾏sudo su -,获取root权限,如果本⾝是root帐号,可跳过: 
  执⾏道客的配置指令:
  执⾏systemctl restart docker,重启Docker:
⼀、启动.Net Core
  2. 拉取镜像:docker pull microsoft/dotnet
  3. 执⾏docker images查看已下好的镜像
  4. 新建⼀个.Net Core HelloWorld程序并发布
  5. 准备Dockerfile,并把Dockerfile拷贝到HelloWorld程序同级⽬录。注:.Net Core运⾏的默认端⼝是5000,这⾥通过环境变量的⽅式把端⼝修改为8080
FROM microsoft/dotnet:latest
COPY . /app
WORKDIR /app
EXPOSE 8080/tcp
ENV ASPNETCORE_URLS *: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
  2. 拉取镜像:docker pull nginx
  4. 准备Dockerfile,并把Dockerfile拷贝到Html程序同级⽬录。注:程序中需要有⼀个⼊⼝页⾯,如index.html
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
  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
  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
  2. 拉取镜像:docker pull redis
  3. 执⾏指令启动Redis
  docker run --name redis -d -p 6379:6379 redis
  4. 检查结果
六、启动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
  2. 拉取镜像:docker pull nginx
  3. 准备配置⽂件
worker_processes 1;
events {
worker_connections 1024;
}
http {
server {
listen 80;
server_name 192.168.52.130;
location / {
proxy_pass 192.168.52.130:81/;
}
location /html/ {
proxy_pass 192.168.52.130:81/;
}
location /dotnet/ {
proxy_pass 192.168.52.130:8080/;
}
}
}
  4. 执⾏指令启动Nginx
  docker run --name nginx -p 80:80 -v /home/erikxu/f:/etc/f:ro -d nginx
  5. 检查结果
⼋、启动Eureka
  2. 拉取镜像:docker pull springcloud/eureka
  3. 执⾏指令启动Eureka
  docker run --name eureka -d -p 8761:8761 springcloud/eureka   
  4. 检查结果
  未有服务注册:
  打开Discovery,并修改appsetting.json:docker打包镜像
  按照README⽂档描述启动服务,进⾏服务注册:
九、启动Config Server
  2. 拉取镜像:docker pull hyness/spring-cloud-config-server
  4. 准备启动资源⽂件l:
info:
component: config service
server:
port: 8888
spring:
application:
name: git-config
profiles:
active: dev
cloud:
config:
server:
git:
uri: github/ErikXu/.NetCore-Spring-Clould
searchPaths: Configs

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。