使用Docker分分钟启动常用应用
前言
Docker是目前比较火的一个概念,同时也是微服务中比较关键的一个容器化技术。但是,单从理论上好难看出Docker的优势,因此,我希望在这篇文章中提供一些Docker的使用示例,希望从实际应用上帮助大家理解Docker的优势,同时也对自己的Docker使用进行简单的记录。
目录
准备事项
一、启动.Net Core
二、启动静态Html
三、启动Mysql
四、启动MongoDB
五、启动Redis
六、启动RabbitMQ
七、启动Nginx
八、启动Eureka
九、启动Config Server
准备事项
1. 安装Docker
我使用的操作系统是CentOS 7/7.1,如何安装Docker,可以参考园子里的这篇文章:《Centos安装Docker》。
2. Docker加速
Docker的标准镜像库Docker Hub在国外,不进行Docker加速的话拉取镜像会比较慢,这里我使用道客(DaoCloud)来进行Dokcer加速。在“配置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
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. 准备配置文件
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:
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. 检查结果
最后
如果大家有什么问题,或者需要添加其他程序的Docker启动方式,欢迎一起沟通交流。
原文地址:http://www.cnblogs.com/Erik_Xu/p/6662936.html
.NET社区新闻,深度好文,欢迎访问公众号文章汇总 http://www.csharpkit.com
使用Docker分分钟启动常用应用相关推荐
- docker 的启动常用容器命令
docker 启动rabbitmq docker run -di --name myrabbit -e RABBITMQ_DEFAULT_USER=admin -e RABBITMQ_DEFAULT_ ...
- 常用docker镜像启动了解
常用docker镜像启动了解 curl -o /etc/yum.repos.d/docker.repo http://mirrors.aliyun.com/docker-ce/linux/centos ...
- Docker启动常用容器命令及配置说明
Docker启动常用容器命令及配置说明 Docker 容器相关命令 Docker 启动mysql Docker 启动nginx Docker 启动redis Docker 启动rabbitmq Doc ...
- centos 上传jar 命令_centos上快速将一个jar使用docker部署启动
通常的jar应用,直接部署在服务器上,使用服务器资源直接部署,一个jar,一个启动脚本,就可以了. 最近想到一个场景,让docker时间和宿主机的时间不一样,进行不同应用部署的隔离.整理一下docke ...
- docker 安装与常用命令与常用容器(containers)环境
注意区别 container 与 image 的关系,container 的建立需要 image 的承载,也即 container 依赖 image,停止并删除了 container 并不会删除 im ...
- docker镜像启动后端口号是多少_RSS、智能家居、个人博客、维基百科……Docker 入门指南...
如果你购买过 VPS 云主机,那么或多或少,你都可能听说过 Docker.如果你从未听说过 Docker,那么本文可能能够为你开启新世界. 利用 Docker,你能够非常轻松地部署各类服务,无论是个人 ...
- Docker系列之常用命令操作手册
Docker系列之常用命令操作手册 继上一篇博客Docker系列之原理简单介绍之后,本博客对常用的Docker命令进行实践 文章目录 1.安装虚拟机 2.安装Docker 3.Docker镜像操作 4 ...
- docker之容器常用命令及基本操作
docker之容器常用命令及基本操作 文章目录 docker之容器常用命令及基本操作 一.查看容器 `docker ps`常用选项 二.查看容器日志 `docker logs`命令选项 三.运行容器 ...
- Docker理解及常用命令一
doccker学习笔记二:docker理解及常用命令 docker run理解 docker工作原理 Docker的常用命令 帮助命令 镜像命令 容器命令 docker run理解 回顾刚刚安装doc ...
最新文章
- 不要以为用了云,就不要运维
- AI创业公司最佳「开发工具」指南火了,还发现了个可挑战Jupyter的「杀手」
- Single System Image的理解
- 典型的简单权限分配系统方法介绍
- mysql死锁影响_MySQL死锁系列-常见加锁场景分析
- 什么是python自动化测试_python已经自动化了,大家一般用什么测试框架?
- 60-100-030-使用-Docker MySQL 8 主从复制
- python 下载csv文件保存到 redis
- python 类可以调用实例变量_Python实例方法、类方法、静态方法区别详解
- Java迭代器和lambda的区别_【Java公开课|Java 使用Lambda表达式遍历Iterator迭代器,是你学习Java的超车途径】- 环球网校...
- 解决Linux下redis客户端工具连接不到redis服务
- On-Screen Keyboard(屏幕键盘) v7.0.2pro注册版
- 解决暴风影音2012无法播放rmvb视频文件的问题
- ubuntu下人体姿态识别OpenPose编译运行
- 通过hive将excel文件_hive 之 将excel数据导入hive中 : excel 转 txt
- SDIO总线(一)SDIO接口是在SD内存卡接口的基础上发展起来的接口,SDIO接口兼容以前的SD内存卡,并且可以连接SDIO接口的设备
- 软件测试p1是什么级别,软件测试工程师岗位等级-20210729101938.doc-原创力文档
- 邮件实现详解(一)------邮件发送的基本过程与概念
- 用MyDiskTest检测存储卡真实容量(图)
- 动图文件太大怎么办?一招教你在线压缩GIF图片