阿里云-云小站(无限量代金券发放中)
【腾讯云】云服务器、云数据库、COS、CDN、短信等热卖云产品特惠抢购

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

449次阅读
没有评论

共计 4259 个字符,预计需要花费 11 分钟才能阅读完成。

前言

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 加速器”里有配置加速的指令:

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

 

在 Linux 中进行配置

执行 sudo su -,获取 root 权限,如果本身是 root 帐号,可跳过:

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

 

执行道客的配置指令:

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

 

执行 systemctl restart docker,重启 Docker:

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

 

一、启动.Net Core

1. 拉取 dotnet 标准镜像,镜像地址:https://hub.docker.com/r/microsoft/dotnet/

2. 拉取镜像:docker pull microsoft/dotnet

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

 

3. 执行 docker images 查看已下好的镜像

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

 

4. 新建一个.Net Core HelloWorld 程序并发布

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

 

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 .

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

 

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

 

7. 运行 Docker 容器

docker run –name hello-world -p 8080:8080 -d hello-world:1.0

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

 

8. 检查结果

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

 

二、启动静态 Html

1. 拉取 Nginx 官方镜像,镜像地址:https://hub.docker.com/_/nginx/

2. 拉取镜像:docker pull nginx

3. 准备 html 程序,可以使用我之前的一个 Durandal 的示例:https://github.com/ErikXu/DurandalDemo

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

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 .

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

 

6. 运行 Docker 容器,注:这里把容器中的 80 端口映射到虚拟机的 81 端口

docker run –name html -p 81:80 -d html:1.0

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

 

7. 检查结果

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

 

三、启动 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

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

 

5. 检查结果

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

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

 

四、启动 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

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

 

5. 检查结果

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

 

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

 

五、启动 Redis

1. 拉取官方镜像,镜像地址:https://hub.docker.com/_/redis/

2. 拉取镜像:docker pull redis

3. 执行指令启动 Redis

docker run –name redis -d -p 6379:6379 redis

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

 

4. 检查结果

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

 

六、启动 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

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

 

4. 检查结果

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

 

七、启动 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

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

 

5. 检查结果

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

 

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

 

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

 

八、启动 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

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

4. 检查结果

未有服务注册:

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

 

下载 SteelToe 示例:https://github.com/SteeltoeOSS/Samples

打开 Discovery,并修改 appsetting.json:

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

按照 README 文档描述启动服务,进行服务注册:

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

 

九、启动 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

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

 

6. 检查结果

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

 

最后

如果大家有什么问题,或者需要添加其他程序的 Docker 启动方式,欢迎一起沟通交流。

本文永久更新链接地址 :http://www.linuxidc.com/Linux/2017-04/142649.htm

正文完
星哥玩云-微信公众号
post-qrcode
 0
星锅
版权声明:本站原创文章,由 星锅 于2022-01-21发表,共计4259字。
转载说明:除特殊说明外本站文章皆由CC-4.0协议发布,转载请注明出处。
【腾讯云】推广者专属福利,新客户无门槛领取总价值高达2860元代金券,每种代金券限量500张,先到先得。
阿里云-最新活动爆款每日限量供应
评论(没有评论)
验证码
【腾讯云】云服务器、云数据库、COS、CDN、短信等云产品特惠热卖中

星哥玩云

星哥玩云
星哥玩云
分享互联网知识
用户数
4
文章数
19351
评论数
4
阅读量
7994572
文章搜索
热门文章
星哥带你玩飞牛NAS-6:抖音视频同步工具,视频下载自动下载保存

星哥带你玩飞牛NAS-6:抖音视频同步工具,视频下载自动下载保存

星哥带你玩飞牛 NAS-6:抖音视频同步工具,视频下载自动下载保存 前言 各位玩 NAS 的朋友好,我是星哥!...
星哥带你玩飞牛NAS-3:安装飞牛NAS后的很有必要的操作

星哥带你玩飞牛NAS-3:安装飞牛NAS后的很有必要的操作

星哥带你玩飞牛 NAS-3:安装飞牛 NAS 后的很有必要的操作 前言 如果你已经有了飞牛 NAS 系统,之前...
我把用了20年的360安全卫士卸载了

我把用了20年的360安全卫士卸载了

我把用了 20 年的 360 安全卫士卸载了 是的,正如标题你看到的。 原因 偷摸安装自家的软件 莫名其妙安装...
再见zabbix!轻量级自建服务器监控神器在Linux 的完整部署指南

再见zabbix!轻量级自建服务器监控神器在Linux 的完整部署指南

再见 zabbix!轻量级自建服务器监控神器在 Linux 的完整部署指南 在日常运维中,服务器监控是绕不开的...
飞牛NAS中安装Navidrome音乐文件中文标签乱码问题解决、安装FntermX终端

飞牛NAS中安装Navidrome音乐文件中文标签乱码问题解决、安装FntermX终端

飞牛 NAS 中安装 Navidrome 音乐文件中文标签乱码问题解决、安装 FntermX 终端 问题背景 ...
阿里云CDN
阿里云CDN-提高用户访问的响应速度和成功率
随机文章
多服务器管理神器 Nexterm 横空出世!NAS/Win/Linux 通吃,SSH/VNC/RDP 一站式搞定

多服务器管理神器 Nexterm 横空出世!NAS/Win/Linux 通吃,SSH/VNC/RDP 一站式搞定

多服务器管理神器 Nexterm 横空出世!NAS/Win/Linux 通吃,SSH/VNC/RDP 一站式搞...
一句话生成拓扑图!AI+Draw.io 封神开源组合,工具让你的效率爆炸

一句话生成拓扑图!AI+Draw.io 封神开源组合,工具让你的效率爆炸

一句话生成拓扑图!AI+Draw.io 封神开源组合,工具让你的效率爆炸 前言 作为天天跟架构图、拓扑图死磕的...
星哥带你玩飞牛NAS-14:解锁公网自由!Lucky功能工具安装使用保姆级教程

星哥带你玩飞牛NAS-14:解锁公网自由!Lucky功能工具安装使用保姆级教程

星哥带你玩飞牛 NAS-14:解锁公网自由!Lucky 功能工具安装使用保姆级教程 作为 NAS 玩家,咱们最...
星哥带你玩飞牛NAS硬件03:五盘位+N5105+双网口的成品NAS值得入手吗

星哥带你玩飞牛NAS硬件03:五盘位+N5105+双网口的成品NAS值得入手吗

星哥带你玩飞牛 NAS 硬件 03:五盘位 +N5105+ 双网口的成品 NAS 值得入手吗 前言 大家好,我...
每天一个好玩的网站-手机博物馆-CHAZ 3D Experience

每天一个好玩的网站-手机博物馆-CHAZ 3D Experience

每天一个好玩的网站 - 手机博物馆 -CHAZ 3D Experience 一句话介绍:一个用 3D 方式重温...

免费图片视频管理工具让灵感库告别混乱

一言一句话
-「
手气不错
安装Black群晖DSM7.2系统安装教程(在Vmware虚拟机中、实体机均可)!

安装Black群晖DSM7.2系统安装教程(在Vmware虚拟机中、实体机均可)!

安装 Black 群晖 DSM7.2 系统安装教程(在 Vmware 虚拟机中、实体机均可)! 前言 大家好,...
星哥带你玩飞牛 NAS-9:全能网盘搜索工具 13 种云盘一键搞定!

星哥带你玩飞牛 NAS-9:全能网盘搜索工具 13 种云盘一键搞定!

星哥带你玩飞牛 NAS-9:全能网盘搜索工具 13 种云盘一键搞定! 前言 作为 NAS 玩家,你是否总被这些...
星哥带你玩飞牛NAS-16:飞牛云NAS换桌面,fndesk图标管理神器上线!

星哥带你玩飞牛NAS-16:飞牛云NAS换桌面,fndesk图标管理神器上线!

  星哥带你玩飞牛 NAS-16:飞牛云 NAS 换桌面,fndesk 图标管理神器上线! 引言 哈...
12.2K Star 爆火!开源免费的 FileConverter:右键一键搞定音视频 / 图片 / 文档转换,告别多工具切换

12.2K Star 爆火!开源免费的 FileConverter:右键一键搞定音视频 / 图片 / 文档转换,告别多工具切换

12.2K Star 爆火!开源免费的 FileConverter:右键一键搞定音视频 / 图片 / 文档转换...
免费无广告!这款跨平台AI RSS阅读器,拯救你的信息焦虑

免费无广告!这款跨平台AI RSS阅读器,拯救你的信息焦虑

  免费无广告!这款跨平台 AI RSS 阅读器,拯救你的信息焦虑 在算法推荐主导信息流的时代,我们...