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

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 编程问答 >内容正文

编程问答

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

發(fā)布時(shí)間:2023/12/4 编程问答 29 豆豆
生活随笔 收集整理的這篇文章主要介紹了 使用Docker分分钟启动常用应用 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

前言

  Docker是目前比較火的一個(gè)概念,同時(shí)也是微服務(wù)中比較關(guān)鍵的一個(gè)容器化技術(shù)。但是,單從理論上好難看出Docker的優(yōu)勢(shì),因此,我希望在這篇文章中提供一些Docker的使用示例,希望從實(shí)際應(yīng)用上幫助大家理解Docker的優(yōu)勢(shì),同時(shí)也對(duì)自己的Docker使用進(jìn)行簡(jiǎn)單的記錄。

?

目錄

  準(zhǔn)備事項(xiàng)

  一、啟動(dòng).Net Core

  二、啟動(dòng)靜態(tài)Html

  三、啟動(dòng)Mysql

  四、啟動(dòng)MongoDB

  五、啟動(dòng)Redis

  六、啟動(dòng)RabbitMQ

  七、啟動(dòng)Nginx

  八、啟動(dòng)Eureka

  九、啟動(dòng)Config Server

?

準(zhǔn)備事項(xiàng)

  1. 安裝Docker

  我使用的操作系統(tǒng)是CentOS 7/7.1,如何安裝Docker,可以參考園子里的這篇文章:《Centos安裝Docker》。

?

  2. Docker加速

  Docker的標(biāo)準(zhǔn)鏡像庫(kù)Docker Hub在國(guó)外,不進(jìn)行Docker加速的話拉取鏡像會(huì)比較慢,這里我使用道客(DaoCloud)來(lái)進(jìn)行Dokcer加速。在“配置Docker加速器”里有配置加速的指令:

  

?

  在Linux中進(jìn)行配置

  執(zhí)行sudo su -,獲取root權(quán)限,如果本身是root帳號(hào),可跳過(guò): 

  

?

  執(zhí)行道客的配置指令:

  

?

  執(zhí)行systemctl restart docker,重啟Docker:

  

?

一、啟動(dòng).Net Core

  1. 拉取dotnet標(biāo)準(zhǔn)鏡像,鏡像地址:https://hub.docker.com/r/microsoft/dotnet/

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

  

?

  3. 執(zhí)行docker images查看已下好的鏡像

  

?

  4. 新建一個(gè).Net Core HelloWorld程序并發(fā)布

  

?

  5. 準(zhǔn)備Dockerfile,并把Dockerfile拷貝到HelloWorld程序同級(jí)目錄。注:.Net Core運(yùn)行的默認(rèn)端口是5000,這里通過(guò)環(huán)境變量的方式把端口修改為8080


FROM microsoft/dotnet:latestCOPY .?/appWORKDIR?/appEXPOSE 8080/tcpENV ASPNETCORE_URLS http://*:8080ENTRYPOINT ["dotnet",?"HelloWorld.dll"]

  

  6. 定位到程序目錄,執(zhí)行指令把HelloWorld程序打包成Docker鏡像

  docker build -t hello-world:1.0 .

  

?

  

?

  7. 運(yùn)行Docker容器

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

  

?

  8. 檢查結(jié)果

  

?

二、啟動(dòng)靜態(tài)Html

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

  2. 拉取鏡像:docker pull nginx

  3. 準(zhǔn)備html程序,可以使用我之前的一個(gè)Durandal的示例:https://github.com/ErikXu/DurandalDemo

  

  4.?準(zhǔn)備Dockerfile,并把Dockerfile拷貝到Html程序同級(jí)目錄。注:程序中需要有一個(gè)入口頁(yè)面,如index.html

12FROM nginx:latestCOPY .?/usr/share/nginx/html

  

  5.?定位到程序目錄,執(zhí)行指令把Html程序打包成Docker鏡像

  docker build -t html:1.0 .

  

?

  6.?運(yùn)行Docker容器,注:這里把容器中的80端口映射到虛擬機(jī)的81端口

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

  

?

  7.?檢查結(jié)果

  

?

三、啟動(dòng)Mysql

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

  2. 拉取鏡像:docker pull mysql

  3. 準(zhǔn)備Mysql數(shù)據(jù)存放目錄,我這里是:/home/erikxu/mysql

  4. 執(zhí)行指令啟動(dòng)Mysql

  docker run --name mysql -v?/home/erikxu/mysql:/var/lib/mysql -p 3306:3306 -e MYSQL_ROOT_PASSWORD=123456 -d mysql:latest

  

?

  5. 檢查結(jié)果

  

  

?

四、啟動(dòng)MongoDB

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

  2. 拉取鏡像:docker pull mongo

  3. 準(zhǔn)備MongoDB數(shù)據(jù)存放目錄,我這里是:/home/erikxu/mongo

  4. 執(zhí)行指令啟動(dòng)MongoDB

  docker run --name mongo -v /home/erikxu/mongo:/data/db -p 27017:27017 -d mongo:latest

  

?

  5. 檢查結(jié)果

  

?

  

?

五、啟動(dòng)Redis

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

  2.?拉取鏡像:docker pull redis

  3. 執(zhí)行指令啟動(dòng)Redis

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

  

?

  4. 檢查結(jié)果

  

?

六、啟動(dòng)RabbitMQ

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

  2.?拉取鏡像:docker pull rabbitmq,如需要管理界面:docker pull rabbitmq:management

  3. 執(zhí)行指令啟動(dòng)RabbitMQ

  無(wú)管理界面:

  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. 檢查結(jié)果

  

?

七、啟動(dòng)Nginx

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

  2.?拉取鏡像:docker pull nginx

  3. 準(zhǔn)備配置文件


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. 執(zhí)行指令啟動(dòng)Nginx

  docker run --name nginx -p 80:80 -v /home/erikxu/nginx/nginx.conf:/etc/nginx/nginx.conf:ro -d nginx

  

?

  5. 檢查結(jié)果

?  

?

  

?

  

?

八、啟動(dòng)Eureka

  1. 拉取官方鏡像,鏡像地址:https://hub.docker.com/r/springcloud/eureka/

  2.?拉取鏡像:docker pull springcloud/eureka

  3. 執(zhí)行指令啟動(dòng)Eureka

  docker run --name eureka -d -p 8761:8761 springcloud/eureka

  

  

  4.?檢查結(jié)果

  未有服務(wù)注冊(cè):

  

?

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

  打開(kāi)Discovery,并修改appsetting.json:

  

  

  按照README文檔描述啟動(dòng)服務(wù),進(jìn)行服務(wù)注冊(cè):

  

?

九、啟動(dòng)Config Server

  1. 拉取官方鏡像,鏡像地址:https://hub.docker.com/r/hyness/spring-cloud-config-server/

  2.?拉取鏡像:docker pull hyness/spring-cloud-config-server

  3. 在GitHub上準(zhǔn)備配置文件:https://github.com/ErikXu/.NetCore-Spring-Clould/tree/master/Configs

  4. 準(zhǔn)備啟動(dòng)資源文件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. 執(zhí)行指令啟動(dòng)Config Server,注:該指令前無(wú)空格

  docker run --name configsvr -it -d -p 8888:8888 \
  -v /home/erikxu/config/application.yml:/config/application.yml \
  hyness/spring-cloud-config-server

  

?

  6.?檢查結(jié)果

  

?

最后

  如果大家有什么問(wèn)題,或者需要添加其他程序的Docker啟動(dòng)方式,歡迎一起溝通交流。

原文地址:http://www.cnblogs.com/Erik_Xu/p/6662936.html


.NET社區(qū)新聞,深度好文,歡迎訪問(wèn)公眾號(hào)文章匯總 http://www.csharpkit.com

總結(jié)

以上是生活随笔為你收集整理的使用Docker分分钟启动常用应用的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。