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

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

156次阅读
没有评论

共计 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、短信等云产品特惠热卖中