日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

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

發布時間:2023/12/4 编程问答 40 豆豆
生活随笔 收集整理的這篇文章主要介紹了 使用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:latestCOPY .?/appWORKDIR?/appEXPOSE 8080/tcpENV ASPNETCORE_URLS http://*:8080ENTRYPOINT ["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

12FROM nginx:latestCOPY .?/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 serviceserver:??port: 8888spring:??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分分钟启动常用应用的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。