HTML5技术

使用Docker分分钟启动常用应用 - 编程玩家

字号+ 作者:H5之家 来源:H5之家 2017-04-10 14:00 我要评论( )

前言 Docker是目前比较火的一个概念,同时也是微服务中比较关键的一个容器化技术。但是,单从理论上好难看出Docker的优势,因此,我希望在这篇文章中提供一些Docker的使用示例,希望从实际应用上帮助大家理解Docker的优势,同时也对自己的Docker使用进行简单

前言

  Docker是目前比较火的一个概念,同时也是微服务中比较关键的一个容器化技术。但是,单从理论上好难看出Docker的优势,因此,我希望在这篇文章中提供一些Docker的使用示例,希望从实际应用上帮助大家理解Docker的优势,同时也对自己的Docker使用进行简单的记录。

 

目录                              

 

准备事项

  1. 安装Docker

  我使用的操作系统是CentOS 7/7.1,如何安装Docker,可以参考园子里的这篇文章:《Centos安装Docker》。

 

  2. Docker加速

  Docker的标准镜像库Docker Hub在国外,不进行Docker加速的话拉取镜像会比较慢,这里我使用道客(DaoCloud)来进行Dokcer加速。在里有配置加速的指令:

  

 

  在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

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

  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

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.作者投稿可能会经我们编辑修改或补充。

相关文章
  • 30分钟掌握 C#7 - 雨夜潇湘

    30分钟掌握 C#7 - 雨夜潇湘

    2017-04-10 14:08

  • h5 datalist使用 - Jessie-d

    h5 datalist使用 - Jessie-d

    2017-04-02 11:03

  • 使用phonegap获取设备的一些信息 - ganchuanpu

    使用phonegap获取设备的一些信息 - ganchuanpu

    2017-03-30 13:00

  • 开源 免费使用 打包下载自行部署 :升讯威 周报系统 - sheng.chao

    开源 免费使用 打包下载自行部署 :升讯威 周报系统 - sheng.chao

    2017-03-28 13:00

网友点评
C