小男孩‘自慰网亚洲一区二区,亚洲一级在线播放毛片,亚洲中文字幕av每天更新,黄aⅴ永久免费无码,91成人午夜在线精品,色网站免费在线观看,亚洲欧洲wwwww在线观看

分享

Win10中docker的安裝與使用

 區(qū)區(qū)收藏 2020-07-25

WIN10中DOCKER的安裝與使用

這是之前寫(xiě)的一個(gè)word文檔
Author: liguo.wang
Creation Date: 2017/12/12
Last Updated: 2017/12/15
Document Ref:
Version: DRAFT 1A

1.docker的安裝

環(huán)境準(zhǔn)備

Docker for Windows是一個(gè)Docker Community Edition(CE)應(yīng)用程序。Docker for Windows安裝包包含了在Windows系統(tǒng)上運(yùn)行Docker所需的一切。如果你不想裝虛擬機(jī),想直接在你的Windows操作系統(tǒng)中安裝與學(xué)習(xí)使用docker,那么你首先得查看你的系統(tǒng)是否滿足Docker for Windows的安裝與使用要求。

  1. Docker for Windows的當(dāng)前版本運(yùn)行在64位Windows 10 Pro,專業(yè)版、企業(yè)版和教育版(1607年紀(jì)念更新,版本14393或更高版本)上。Ps:家庭版是不行的,如果你是家庭版,那么一是升級(jí)到專業(yè)版,破解專業(yè)版推薦個(gè)地址:http://blog.csdn.net/SONGCHUNHONG/article/details/78006389 ,二是安裝Docker Toolbox,自行網(wǎng)上百度http://blog.csdn.net/tina_ttl/article/details/51372604

  2. 如果你滿足Docker for Windows的環(huán)境條件了,那么首先檢查電腦的虛擬化開(kāi)啟了沒(méi)有:進(jìn)入任務(wù)管理器(ctrl+alt+delete),點(diǎn)擊性能->cpu ,查看虛擬化是否已啟用,如果虛擬化是已禁用,那么你需要重啟電腦進(jìn)入bios開(kāi)啟虛擬化(我們的發(fā)的筆記本cpu都是支持虛擬化的,重啟時(shí)進(jìn)入bios按esc -> 再按f12 -> 去開(kāi)啟虛擬化)

  3. 開(kāi)啟虛擬化重啟后,進(jìn)入任務(wù)管理器看虛擬化是否已啟用。
    這里寫(xiě)圖片描述

  4. 然后再是進(jìn)入電腦的控制面板->程序->啟用或關(guān)閉Windows功能->把Hyper-v勾上,啟用后電腦會(huì)重啟,后面就可以下載并安裝Docker for Windows了。
    這里寫(xiě)圖片描述

下載安裝

  1. 進(jìn)入網(wǎng)址https://docs./docker-for-windows/install/#download-docker-for-windows 下載并安裝。我安裝的是穩(wěn)定版。安裝過(guò)程沒(méi)什么要注意的。
    這里寫(xiě)圖片描述

  2. 啟動(dòng)以后會(huì)出現(xiàn)在桌面的右下角區(qū)域,鼠標(biāo)放上去以后顯示Docker is running表示啟動(dòng)成功,第一次安裝啟用好像是會(huì)彈出個(gè)Docker Cloud登錄界面,去注冊(cè)然后登錄,使用和git有點(diǎn)類(lèi)似,可以pull圖像等等
    這里寫(xiě)圖片描述

2.docker的入門(mén)

開(kāi)始使用

  1. 檢查Docker,Compose和Machine的版本
    這里寫(xiě)圖片描述

  2. 檢查版本信息,并確保docker命令正常工作
    這里寫(xiě)圖片描述
    這里寫(xiě)圖片描述
    這里寫(xiě)圖片描述

  3. 運(yùn)行docker run hello-world以測(cè)試從Docker Hub中拉取圖像并啟動(dòng)容器
    這里寫(xiě)圖片描述

  4. 使用命令docker run -it ubuntu bash運(yùn)行一個(gè)Ubuntu容器,我之前已經(jīng)拉取過(guò)這個(gè)容器了,大概是幾十兆吧,所以直接啟用了,輸入exit命令停止容器
    這里寫(xiě)圖片描述

  5. 運(yùn)行命令docker run -d -p 80:80 –name webserver nginx 啟動(dòng)一個(gè)Dockerized webserver 會(huì)下載nginx容器圖像并啟動(dòng)它,然后再打開(kāi)瀏覽器鍵入http://localhost
    這里寫(xiě)圖片描述

  6. 運(yùn)行docker ps 命令,檢查容器的詳細(xì)信息
    這里寫(xiě)圖片描述

  7. 停止或移除容器和圖像。如果你想停止網(wǎng)絡(luò)服務(wù)器,輸入:docker stop webserver然后重新啟動(dòng)docker start webserver。要使用單個(gè)命令停止并刪除正在運(yùn)行的容器,請(qǐng)鍵入: docker rm -f webserver。這將刪除容器,但不是 nginx圖像。您可以列出本地圖像docker images。你可能想要保留一些圖片,這樣你就不必再?gòu)腄ocker Hub中取出它們了。要?jiǎng)h除不再需要的圖像,請(qǐng)使用docker rmi后跟圖像ID或圖像名稱。例如docker rmi nginx
    這里寫(xiě)圖片描述

3.docker的常用配置

在PowerShell中設(shè)置 tab鍵自動(dòng)補(bǔ)全(其實(shí)用的都是cmd.exe)

  1. 啟動(dòng)一個(gè)的PowerShell(即以管理員身份運(yùn)行)。搜索PowerShell,右鍵單擊,然后選擇以管理員身份運(yùn)行。在PowerShell提示符下鍵入:
    Set-ExecutionPolicy RemoteSigned
  2. 檢查策略設(shè)置是否正確,運(yùn)行:get-executionpolicy
    應(yīng)該返回RemoteSigned。
  3. 安裝posh-dockerPowerShell模塊以自動(dòng)完成Docker命令,鍵入:Install-Module posh-docker或者,要僅為當(dāng)前用戶安裝模塊,鍵入:
    Install-Module -Scope CurrentUser posh-docker
  4. 安裝完成后,只能為當(dāng)前PowerShell啟用自動(dòng)完成功能,輸入:Import-Module posh-docker
  5. 為了在所有PowerShell會(huì)話中保持Tab完成狀態(tài)$PROFILE,請(qǐng)?jiān)赑owerShell提示符處輸入:
if (-Not (Test-Path $PROFILE)) {
    New-Item $PROFILE –Type File –Force
}
Add-Content $PROFILE "`nImport-Module posh-docker"

這將創(chuàng)建一個(gè)$PROFILE如果不存在,并將此行添加到文件中:
Import-Module posh-docker
要檢查文件是否已正確創(chuàng)建,或只需手動(dòng)編輯,請(qǐng)?jiān)赑owerShell中鍵入以下內(nèi)容:
Notepad $PROFILE
打開(kāi)一個(gè)新的PowerShell會(huì)話?,F(xiàn)在,當(dāng)你鍵入的前幾個(gè)字母后按Tab鍵,Docker命令(如開(kāi)始,停止,運(yùn)行及其選項(xiàng))以及容器和映像名稱現(xiàn)在都應(yīng)該自動(dòng)完成。
這里寫(xiě)圖片描述

Settings

找到右下角的docker圖標(biāo),右擊選擇settings進(jìn)去

  1. General:這里是設(shè)置docker開(kāi)機(jī)自啟,應(yīng)用程序啟動(dòng)時(shí)檢查更新,發(fā)布使用情況統(tǒng)計(jì)信息
    這里寫(xiě)圖片描述

  2. Advanced:分配cpu數(shù)量與內(nèi)存量
    這里寫(xiě)圖片描述

  3. Daemon:Docker for windows10 可以配置阿里云鏡像,到https://cr.console.aliyun.com/ 注冊(cè)一個(gè)賬戶,登錄進(jìn)去后再列表選擇加速器,把你的專屬加速器地址復(fù)制粘貼到Daemon的Registry mirrors中
    這里寫(xiě)圖片描述
    這里寫(xiě)圖片描述

4.用Dockerfile定義一個(gè)鏡像

在過(guò)去,如果你要開(kāi)始編寫(xiě)一個(gè)Python應(yīng)用程序,你的第一步就是在你的機(jī)器上安裝一個(gè)Python運(yùn)行庫(kù)。但是,這會(huì)造成您的機(jī)器上的環(huán)境必須滿足一定條件以使您的應(yīng)用程序可以運(yùn)行。
使用Docker,你可以將一個(gè)可移植的Python運(yùn)行庫(kù)作為一個(gè)映像,不需要安裝。然后,您的構(gòu)建可以將基礎(chǔ)Python鏡像與應(yīng)用程序代碼一起包括在內(nèi),確保您的應(yīng)用程序,依賴項(xiàng)和運(yùn)行時(shí)都一起運(yùn)行。
這些可移植的鏡像是由一個(gè)叫做Dockerfile的東西來(lái)定義的

新建目錄文件

創(chuàng)建一個(gè)空目錄,我取名叫docker,然后分別在里面新建三個(gè)文件:Dockerfile,app.py,requirements.txt
這里寫(xiě)圖片描述

三個(gè)文件中的內(nèi)容分別設(shè)計(jì)為:

1.Dockerfile:
# Use an official Python runtime as a parent image
FROM python:2.7-slim

# Set the working directory to /app
WORKDIR /app

# Copy the current directory contents into the container at /app
ADD . /app

# Install any needed packages specified in requirements.txt
RUN pip install --trusted-host pypi.python.org -r requirements.txt

# Make port 80 available to the world outside this container
EXPOSE 80

# Define environment variable
ENV NAME World

# Run app.py when the container launches
CMD ["python", "app.py"]

2.app.py:
from flask import Flask
from redis import Redis, RedisError
import os
import socket

# Connect to Redis
redis = Redis(host="redis", db=0, socket_connect_timeout=2, socket_timeout=2)

app = Flask(__name__)

@app.route("/")
def hello():
    try:
        visits = redis.incr("counter")
    except RedisError:
        visits = "<i>cannot connect to Redis, counter disabled</i>"

    html = "<h3>Hello {name}!</h3>"            "<b>Hostname:</b> {hostname}<br/>"            "<b>Visits:</b> {visits}"
    return html.format(name=os.getenv("NAME", "world"), hostname=socket.gethostname(), visits=visits)

if __name__ == "__main__":
    app.run(host='0.0.0.0', port=80)

3. requirements.txt:
Flask
Redis

構(gòu)建鏡像

在docker目錄下打開(kāi)cmd.exe運(yùn)行命令(確保能夠找到Dockerfile文件,鏡像取名叫friendlyhello):
docker build -t friendlyhello .
ps:千萬(wàn)不要落了上面那行后面的那個(gè)點(diǎn),曾經(jīng)入過(guò)坑的。。命令包括后面的那個(gè)點(diǎn)
這里寫(xiě)圖片描述

然后再執(zhí)行命令:
docker images
這里寫(xiě)圖片描述

運(yùn)行鏡像程序:
docker run -p 4000:80 friendlyhello
這里寫(xiě)圖片描述

可以看到Python正在為應(yīng)用程序提供消息的http://0.0.0.0:80。但是,這個(gè)消息來(lái)自容器內(nèi)部,它不知道我們將該容器的端口80映射到4000,從而打開(kāi)URL: http://localhost:4000
這里寫(xiě)圖片描述

停止容器運(yùn)行

首先在接著上面的操作步驟后按下ctrl+c在終端退出,這并不意味著鏡像停止運(yùn)行了
鍵入docker container ls 列出正在運(yùn)行的容器
這里寫(xiě)圖片描述
這里寫(xiě)圖片描述

運(yùn)行命令:
docker container stop <Container NAME or ID>
停止容器。否則,在下一步中重新運(yùn)行容器時(shí),將會(huì)收到錯(cuò)誤響應(yīng)。
這里寫(xiě)圖片描述

5.聯(lián)系Docker Hub的常用操作

登錄到Docker Hub

前面已經(jīng)說(shuō)過(guò)了,docker和git的操作有類(lèi)似之處,所以docker也
有遠(yuǎn)程倉(cāng)庫(kù),如果前面已經(jīng)注冊(cè)過(guò)并登錄了docker cloud,那么
訪問(wèn)網(wǎng)址:https://hub. 在里面創(chuàng)建存儲(chǔ)庫(kù),否則先
注冊(cè)吧。
這里寫(xiě)圖片描述

push鏡像

前面在本地創(chuàng)建了一個(gè)friendlyhello的鏡像,現(xiàn)在要把它push到
自己的docker hub的存儲(chǔ)庫(kù)中去,首先:
1. 登錄docker hub (我已經(jīng)登錄過(guò)了。。再登錄一次吧)
這里寫(xiě)圖片描述
2. 標(biāo)記鏡像:
把鏡像放入wangliguo存儲(chǔ)庫(kù)并標(biāo)記為test
這里寫(xiě)圖片描述
3. 查看鏡像:
這里寫(xiě)圖片描述
4. 發(fā)布鏡像(推送鏡像)
這里寫(xiě)圖片描述
5. Docker Hub上查看鏡像:
這里寫(xiě)圖片描述
6. 從遠(yuǎn)程存儲(chǔ)庫(kù)中提取并運(yùn)行鏡像:現(xiàn)在當(dāng)遠(yuǎn)程存儲(chǔ)庫(kù)有了鏡像后,就可以從遠(yuǎn)程存儲(chǔ)庫(kù)提取并運(yùn)行了
這里寫(xiě)圖片描述
這里寫(xiě)圖片描述

6.服務(wù)

在分布式應(yīng)用程序中,應(yīng)用程序的不同部分被稱為“服務(wù)”。例如,想象一個(gè)視頻共享站點(diǎn),它可能包括用于將應(yīng)用程序數(shù)據(jù)存儲(chǔ)在數(shù)據(jù)庫(kù)中的服務(wù),用于用戶上傳東西的視頻轉(zhuǎn)碼服務(wù),為前端服務(wù)等等。
服務(wù)實(shí)際上只是“生產(chǎn)中的容器”。服務(wù)只運(yùn)行一個(gè)鏡像,但它編碼鏡像運(yùn)行的方式 - 應(yīng)該使用哪個(gè)端口,容器應(yīng)該運(yùn)行多少個(gè)副本,以便服務(wù)具有所需的容量,以及等等??s放服務(wù)會(huì)更改運(yùn)行該軟件的容器實(shí)例的數(shù)量,從而為流程中的服務(wù)分配更多的計(jì)算資源。
使用Docker平臺(tái)定義,運(yùn)行和擴(kuò)展服務(wù)非常簡(jiǎn)單 - 只需編寫(xiě)一個(gè)docker-compose.yml文件即可。

創(chuàng)建一個(gè)docker-compose.yml文件

這里寫(xiě)圖片描述
鍵入:

version: "3"
services:
  web:
    # replace username/repo:tag with your name and image details
    image: 15433/wangliguo:test
    deploy:
      replicas: 5
      resources:
        limits:
          cpus: "0.1"
          memory: 50M
      restart_policy:
        condition: on-failure
    ports:
      - "80:80"
    networks:
      - webnet
networks:
  webnet:

拉取的是上個(gè)步驟中的存儲(chǔ)庫(kù)的tag。
運(yùn)行該鏡像的5個(gè)實(shí)例作為一個(gè)服務(wù)調(diào)用web,限制每個(gè)使用,最多10%的CPU(跨所有核心)和50MB的RAM。
如果一個(gè)失敗,立即重新啟動(dòng)容器。
將主機(jī)上的端口80映射到web端口80。
指導(dǎo)web容器通過(guò)一個(gè)負(fù)載平衡的網(wǎng)絡(luò)共享80端口webnet。(在內(nèi)部,容器本身將web在臨時(shí)端口上發(fā)布到 端口80)。
webnet使用默認(rèn)設(shè)置(這是一個(gè)負(fù)載平衡覆蓋網(wǎng)絡(luò))定義網(wǎng)絡(luò)。

運(yùn)行新的負(fù)載均衡應(yīng)用程序

先運(yùn)行命令:docker swarm init
這里寫(xiě)圖片描述
然后再運(yùn)行命令:docker stack deploy -c docker-compose.yml getstartedlab
給它取名叫g(shù)etstartedlab
這里寫(xiě)圖片描述
服務(wù)堆棧在這臺(tái)主機(jī)上運(yùn)行了5個(gè)部署鏡像的容器實(shí)例
運(yùn)行命令查看:docker service ls
這里寫(xiě)圖片描述
在服務(wù)中運(yùn)行的單個(gè)容器稱為任務(wù),可以看到上面有個(gè)getstartedlab_web的服務(wù)
運(yùn)行命令docker service ps getstartedlab_web 查看此服務(wù)下的任務(wù):
這里寫(xiě)圖片描述
如果只列出系統(tǒng)中的所有容器,也會(huì)顯示任務(wù),但不會(huì)被服務(wù)過(guò)濾:
運(yùn)行命令:docker container ls -q
這里寫(xiě)圖片描述
然后打開(kāi)瀏覽器,鍵入http://localhost
這里寫(xiě)圖片描述
點(diǎn)擊刷新多次,可以發(fā)現(xiàn)Hostname的更改,以循環(huán)方式選擇5個(gè)任務(wù)中的一個(gè)來(lái)響應(yīng)。容器ID將與前一個(gè)命令(docker container ls -q)的輸出相匹配。

更改應(yīng)用程序

比如更改docker-compose.yml中的replicas值,保存更改并重新運(yùn)行docker stack deploy命令來(lái)更新應(yīng)用程序:
這里寫(xiě)圖片描述
運(yùn)行命令:
docker stack deploy -c docker-compose.yml getstartedlab
這里寫(xiě)圖片描述
Docker會(huì)做一個(gè)就地更新,然后重新運(yùn)行docker container ls -q以查看重新配置的已部署實(shí)例
這里寫(xiě)圖片描述
可以看到之前是6個(gè),現(xiàn)在是7個(gè),剛好多了一個(gè)任務(wù)
ps:電腦中還運(yùn)行這之前步驟中從docker hub中拉取并運(yùn)行著的那個(gè)任務(wù),所以會(huì)看到6個(gè)和7個(gè)

關(guān)閉應(yīng)用程序和群

關(guān)閉應(yīng)用程序docker stack rm getstartedlab
這里寫(xiě)圖片描述
關(guān)閉群docker swarm leave –force
這里寫(xiě)圖片描述
現(xiàn)在服務(wù)中的任務(wù)都關(guān)閉了以后再運(yùn)行命令:
docker container ls -q
這里寫(xiě)圖片描述
這就是上面說(shuō)的那個(gè)之前步驟中從docker hub中拉取并運(yùn)行著的那個(gè)任務(wù)

7.集群

了解集群

swarm是運(yùn)行Docker并加入到一個(gè)集群中的一組機(jī)器。但是現(xiàn)在它們將由群集管理器在群集上執(zhí)行。群體中的機(jī)器可以是物理的或虛擬的。加入群體后,他們被稱為節(jié)點(diǎn)。
Swarm管理人員可以使用多種策略來(lái)運(yùn)行容器,比如“最空的節(jié)點(diǎn)”(emptiest node) - 它使用容器填充最少使用的機(jī)器?;颉叭帧保@確保了每臺(tái)機(jī)器只能得到指定容器的一個(gè)實(shí)例。您可以指示swarm manager在Compose文件中使用這些策略。
群體管理者是群體中唯一可以執(zhí)行你的命令的機(jī)器,或者授權(quán)其他機(jī)器作為工作者加入群體。工人提供能力,并沒(méi)有權(quán)力告訴任何其他機(jī)器可以做什么和不可以做什么。
到目前為止,之前都是在本地機(jī)器上以單主機(jī)模式使用Docker。但是Docker也可以切換到群集模式,這就是使用群集的原因。啟用群模式使當(dāng)前機(jī)器成為群管理器。則Docker將運(yùn)行您正在管理的群集上執(zhí)行的命令,而不僅僅是在當(dāng)前的機(jī)器上。

創(chuàng)建一個(gè)集群

一個(gè)群由多個(gè)節(jié)點(diǎn)組成,可以是物理機(jī)或虛擬機(jī)?;镜母拍詈芎?jiǎn)單:運(yùn)行docker swarm init啟用群模式,使當(dāng)前的機(jī)器成為群管理器,然后docker swarm join在其他機(jī)器上運(yùn)行 ,讓它們作為工人加入群體。下面將使用虛擬機(jī)快速創(chuàng)建一個(gè)雙機(jī)群集,并將其變成群集。
步驟:
1. 以管理員運(yùn)行cmd.exe 這里必須是管理員運(yùn)行,不然后續(xù)操作權(quán)限不夠
這里寫(xiě)圖片描述
2. 運(yùn)行docker swarm init啟用群模式,使當(dāng)前的機(jī)器成為群管理器,然后docker swarm join在其他機(jī)器上運(yùn)行 ,讓它們作為工人加入群體。
3. 啟動(dòng)Hyper-V管理器
點(diǎn)擊開(kāi)始?windows管理工具?Hyper-V管理器
這里寫(xiě)圖片描述
4. 單擊右側(cè)菜單中的虛擬交換機(jī)管理器
這里寫(xiě)圖片描述
5. 單擊創(chuàng)建類(lèi)型為外部網(wǎng)絡(luò)的虛擬交換機(jī),給它的名稱myswitch,并檢查框共享您的主機(jī)的活動(dòng)網(wǎng)絡(luò)適配器
這里寫(xiě)圖片描述
6. 使用節(jié)點(diǎn)管理工具創(chuàng)建幾個(gè)虛擬機(jī)docker-machine:
docker-machine create -d hyperv –hyperv-virtual-switch “myswitch” myvm1
docker-machine create -d hyperv –hyperv-virtual-switch “myswitch” myvm2
這里寫(xiě)圖片描述
之前我已經(jīng)創(chuàng)建過(guò)了,所以我現(xiàn)在再新建兩個(gè):myvm3 和 myvm4
docker-machine create -d hyperv –hyperv-virtual-switch “myswitch” myvm3
docker-machine create -d hyperv –hyperv-virtual-switch “myswitch” myvm4
這里寫(xiě)圖片描述
這里寫(xiě)圖片描述
這里寫(xiě)圖片描述
7. 現(xiàn)在創(chuàng)建了兩個(gè)虛擬機(jī),分別命名為myvm3和myvm4。使用命令
docker-machine ls 列出機(jī)器并獲取其IP地址。
這里寫(xiě)圖片描述

初始化群并添加節(jié)點(diǎn)

  1. 先使用命令docker-machine ssh myvm3
    這里寫(xiě)圖片描述
    然后讓myvm3 成為一個(gè)管理員:docker swarm init
    注意紅框中的內(nèi)容,這是后面的myvm4 加入集群要執(zhí)行的命令
    這里寫(xiě)圖片描述
    運(yùn)行命令:docker node ls
    這里寫(xiě)圖片描述
    可以看到myvm3 已經(jīng)成為管理員了

  2. 以管理員身份再運(yùn)行一個(gè)cmd.exe.然后運(yùn)行命令:docker-machine ssh myvm4
    這里寫(xiě)圖片描述
    然后再運(yùn)行命令:(這就是上一頁(yè)中圖片里紅框中的內(nèi)容,下面的token是我這里的,正常運(yùn)行到這里的時(shí)候是去myvm3的docker swarm init命令中把紅框框位置里的命令復(fù)制粘貼過(guò)來(lái)執(zhí)行)

docker swarm join --token SWMTKN-1-0csyw4yz6uxob90h0b8ejoimimrgisiuy9t2ugm8c1mxfvxf99-7q7w5jw1mrjk1jlri2bcgqmu8 10.211.106.194:2377

這里寫(xiě)圖片描述
然后再切換到myvm3 的cmd.exe中執(zhí)行命令:docker node ls
這里寫(xiě)圖片描述
可以看到,我們已經(jīng)創(chuàng)建了一個(gè)簡(jiǎn)單的集群。、

附離開(kāi)群命令:docker swarm leave

在集群上部署應(yīng)用程序

  1. docker-machine為swarm管理器配置一個(gè)shell
    運(yùn)行命令:docker-machine env myvm3
    這里寫(xiě)圖片描述
    注意最后一行的內(nèi)容
    我這里是@FOR /f "tokens=*" %i IN ('docker-machine env myvm3') DO @%i
    復(fù)制粘貼運(yùn)行它
    這里寫(xiě)圖片描述
    再運(yùn)行docker-machine ls以驗(yàn)證它myvm3 是否為活動(dòng)機(jī)器
    這里寫(xiě)圖片描述

  2. 在swarm管理器上部署應(yīng)用程序
    以部署我們之前docker-compose.yml服務(wù)為例
    這里寫(xiě)圖片描述
    首先在這個(gè)以管理員身份打開(kāi)的cmd中進(jìn)入到docker-compose.yml文件的所在的目錄中去,我的因?yàn)樵贒/docker中,如果不過(guò)來(lái),那么執(zhí)行命令:
    docker stack deploy -c docker-compose.yml getstartedlab會(huì)出現(xiàn):
    這里寫(xiě)圖片描述
    進(jìn)入目錄后執(zhí)行上面那條命令:
    這里寫(xiě)圖片描述
    再執(zhí)行命令docker stack ps getstartedlab 查看服務(wù)詳情:
    這里寫(xiě)圖片描述
    如果發(fā)現(xiàn)state存在shutdown的情況(也有可能出現(xiàn)你的圖片上的實(shí)例數(shù)量大于你在服務(wù)文件中定義的數(shù)量的情況,這都是我爬過(guò)的坑,現(xiàn)在我這里定義的是6,圖片上也是6,),那應(yīng)該是你在之前服務(wù)哪一章運(yùn)行過(guò)命令:
    docker stack deploy -c docker-compose.yml getstartedlab 而沒(méi)有把getstartedlab移除掉
    這時(shí)應(yīng)該執(zhí)行命令:docker stack rm getstartedlab 把getstartedlab移除掉
    Ps:我是d,c盤(pán)都執(zhí)行了這個(gè)命令,因?yàn)橹斑\(yùn)行docker stack deploy -c docker-compose.yml getstartedlab命令是在d盤(pán)的時(shí)候
    然后重新運(yùn)行:docker stack deploy -c docker-compose.yml getstartedlab 和
    docker stack ps getstartedlab 就好了

  3. 瀏覽器訪問(wèn)集群的網(wǎng)址:
    如圖紅框框所示,瀏覽器上訪問(wèn)其中的任何一個(gè),然后刷新,將看到6個(gè)可能的容器ID,它們都是隨機(jī)循環(huán)的,展示了負(fù)載平衡
    這里寫(xiě)圖片描述

  4. 其他的一些命令:
比如說(shuō)如果修改了docker-compose.yml文件后,執(zhí)行命令:
docker stack deploy -c docker-compose.yml getstartedlab
再次運(yùn)行以部署這些更改即可
比如說(shuō)前面提到的移除應(yīng)用程序:docker stack rm getstartedlab
離開(kāi)群:docker swarm leave –force
重新啟動(dòng)已停止的虛擬機(jī),執(zhí)行:
docker-machine start <machine-name>

這里寫(xiě)圖片描述

8.參考文檔

https://docs./
http://blog.csdn.net/tina_ttl/article/details/51372604
http://blog.csdn.net/u011686226/article/details/53906976
http://blog.csdn.net/heatdeath/article/details/70432417
http://blog.csdn.net/fromsilence520/article/details/73480219

轉(zhuǎn)自:https://blog.csdn.net/hunan961/article/details/79484098

    本站是提供個(gè)人知識(shí)管理的網(wǎng)絡(luò)存儲(chǔ)空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點(diǎn)。請(qǐng)注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購(gòu)買(mǎi)等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊一鍵舉報(bào)。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評(píng)論

    發(fā)表

    請(qǐng)遵守用戶 評(píng)論公約

    類(lèi)似文章 更多