您好,登錄后才能下訂單哦!
環境:
角色 | 機器名稱 | 操作系統 | IP | 備注 |
Mater | Web30 | Windows Server 2016 GUI | 192.168.2.30 | 安裝最新推薦補丁 |
Node | Web31 | Windows Server 2016 Core | 192.168.2.31 | 安裝最新推薦補丁 |
Node | Web32 | Windows Server 2016 Core | 192.168.2.32 | 安裝最新推薦補丁 |
第一坑:Windows Server 2016 Core
1.操作系統分區坑
由于我們使用的Windows鏡像都是基于microsoft/windowsservercore大小都在10G左右,還需要安裝IIS、aspnet等等,另外如果涉及到鏡像導出也會占用C盤空間,如果是做Docker的話建議C盤空間不小于60G,或者干脆只分C盤。
踩坑解決辦法:在硬盤還有大量富余空間的情況下,可采用掛載文件夾的形式,掛載C:\ProgramData\docker\windowsfilter文件夾
2.命令行如何設置機器IP及機器名稱及開啟遠程桌面
在CMD命令提示符下執行sconfig即可,建議開啟遠程桌面方面命令輸入
3.安裝Docker之前一定需要安裝最新的Windows補丁
方法:sconfig--->6)下載并安裝更新--->R)僅搜索推薦的更新---->A)安裝所有
4.文件如何復制到Windows Server Core下,在命令行下
打開可寫共享
cd \
mkdir share
net share share=c:\share /grant:everyone,full
連接共享
net use z: \\192.168.2.30\share password /user:administrator
于是就映射共享到Z盤,進入Z盤即可操作文件
刪除共享
net share c:\share /del /y
5.在Windows命令行如何查看文件
type filename.txt
追加文件
echo 127.0.0.1 web30 >>\windows\system32\drivers\etc\hosts
6.查看Windows進程
tasklist
7.殺死進程
tskill
第二坑:Windows 2016原生Docker
1.Windows安裝Docker
在命令提示符出入powershell,
Install-Module -Name DockerMsftProvider -Repository PSGallery -Force Install-Package -Name docker -ProviderName DockerMsftProvider
如果第二部提示未安裝補丁,則需要安裝最新Windows補丁,輸入sconfig第6步
安裝完成之后重啟服務器
2.配置所有服務器的防火墻規則
TCP 端口 2377 用于群集管理通信
TCP 和 UDP 端口 7946 用于節點間通信
TCP 和 UDP 端口 4789 用于覆蓋網絡通信
netsh advfirewall firewall add rule name="swm 2377" dir=in action=allow protocol=TCP localport=2377 netsh advfirewall firewall add rule name="swm 7946" dir=in action=allow protocol=TCP localport=7946 netsh advfirewall firewall add rule name="swm 7946udp" dir=in action=allow protocol=UDP localport=7946 netsh advfirewall firewall add rule name="swm 4789" dir=in action=allow protocol=TCP localport=4789 netsh advfirewall firewall add rule name="swm 4789udp" dir=in action=allow protocol=UDP localport=4789
3.初始化群集模式
在Master上執行
C:\> docker swarm init --advertise-addr=192.168.2.30 --listen-addr 192.168.2.30:2377
坑:在Linux上執行docker swarm init即可初始化集群,但是在Windows上會卡住不動,在windows上需要指定IP及端口
4.加入集群(在Web31和Web32執行)
在上面提示輸入
docker swarm join \ --token SWMTKN-1-1lbjx00s1qsjbjfuoq92f6d95mf41arbhwbkkigmo1smjqs38r-8i0bdakwhc3lvbbog8fnmvgmw \ 192.168.2.30:2377
即可加入集群,注意此處需要修改為一行
docker swarm join --token SWMTKN-1-1lbjx00s1qsjbjfuoq92f6d95mf41arbhwbkkigmo1smjqs38r-8i0bdakwhc3lvbbog8fnmvgmw 192.168.2.30:2377
坑1:加入集群命令只可以用一行,不可以使用\來進行換行
坑2:一定要在防火墻打開相應的規則,打開2377/TCP、7946/TCP、7946/UDP、4789/TCP、4789/UDP端口
坑3:目前測試Linux可以加入Windows Swarm集群,Windows也可以加入Linux Swarm集群,經過測試我將Linux節點加入Windows Swarm集群是正常工作的,但是Linux Swarm Master管理Windows節點報錯,不知是否跟版本存在關系
在Windows Swarm Master節點上執行
docker service create --name=ping --constraint "Node.Platform.OS==Linux" --network=myspace centos ping 127.0.0.1
注意:--constraint "Node.Platform.OS==Linux"一定是雙引號,不能是單引號,否則報Error response from daemon: rpc error: code = 2 desc = key ''node.Platform.OS' is invalid
5.服務端口映射問題
在Linux環境下我們可以通過
docker service create -name web -p 80:80 nginx
在執行之后各個節點都可以通過80端口進行服務,但是在Windows是不行的
docker service create -name iis -p 80:80 microsoft/iis執行之后是無法通過80端口訪問
目前是通過
docker service create -name iis -p mode=host,target=80,published=80,protocol=tcp microsoft/iis
然后通過docker service ps iis
C:\Users\Administrator>docker service ps iis ID NAME IMAGE NODE DESIRED STATE CURRENT STATE ERROR PORTS e118tf9vu15l iis.2 microsoft/iis:latest Web32 Running Running 2 hours ago *:8090->80/tcp
可以看到容器在Web32上,這個時候訪問192.168.2.32:8090即可正常訪問,但是訪問主機的8090端口是無法使用的
6.Docker私有倉庫配置
配置私有倉庫
方法1:更改注冊表[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Docker]
修改為C:\Program Files\Docker\dockerd.exe --run-service --insecure-registry "192.168.2.234:5000"
方法2:修改Docker配置文件,建議修改配置文件
C:\ProgramData\docker\config\daemon.json
{
"insecure-registries" : ["192.168.2.234:5000"]
}
如果沒有該文件可以創建以ASSIC形式
7.Windows Docker開啟遠程端口訪問
方法一:注冊表修改Docker啟動參數
C:\Program Files\Docker\dockerd.exe --run-service -D -H tcp://0.0.0.0:2375 -H npipe://
方法二:修改Docker daemon.json配置文件
{ "hosts": ["tcp://0.0.0.0:2376", "npipe://"] }
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。