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

歡迎訪問 生活随笔!

生活随笔

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

编程问答

Docker 三剑客

發布時間:2024/9/3 编程问答 32 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Docker 三剑客 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

鏈接: docker-machine 提取碼: 6itu

[root@server1 ~]# mv docker-machine-Linux-x86_64-0.16.1 /usr/local/bin/docker-machine [root@server1 ~]# chmod +x /usr/local/bin/docker-machine [root@server1 ~]# ssh-keygen [root@server1 ~]# ssh-copy-id server2: [root@server1 ~]# docker-machine create --driver generic --generic-ip-address=172.25.1.2 server2

[root@server1 ~]# yum install bash-* -y

[root@server1 ~]# cd /etc/bash_completion.d

將下面幾個組件放置這個目錄下
鏈接: .bash文件 提取碼: gi5f

[root@server1 ~]# vim .bashrc PS1='[\u@\h \W$(__docker_machine_ps1)]\$ '

退出當前shell,重新登陸即可生效

[root@server1 ~]# docker-machine env server2 [root@server1 ~]# eval $(docker-machine env server2)


我們再次使用docker時,顯示的就是server2的images

搭建不同版本的
在真機上搭建yum源放到http的默認發布目錄中

[root@Sun_s html]# vim docker-ce.repo [docker] name=docker-ce baseurl=http://172.25.1.250/docker-ce gpgcheck=0 [root@Sun_s html]# wget https://get.docker.com [root@Sun_s html]# mv index.html get-docker.sh 修改下圖圈出內容 yum源位置


[root@server1 ~]# docker-machine create --driver generic --engine-install-url "http://172.25.1.250/get-docker.sh" --generic-ip-address 172.25.1.3 server3 [root@server1 ~]# eval $(docker-machine env server3)

1.Docker-compose

[root@server1 ~]# mkdir compose [root@server1 ~]# cd compose/ [root@server1 compose]# vim docker-compose.yml version: "3.9" services:web1:image: nginxnetworks:- mynetvolumes:- ./web1:/usr/share/nginx/htmlweb2:image: nginxnetworks:- mynetvolumes:- ./web2:/usr/share/nginx/htmlhaproxy:image: haproxynetworks:- mynetports:- "80:80"volumes:- ./haproxy/haproxy.cfg:/usr/local/etc/haproxy/haproxy.cfgnetworks:mynet: [root@server1 compose]# mkdir haproxy [root@server1 compose]# mkdir web1 [root@server1 compose]# mkdir web2 [root@server1 compose]# echo web1 >web1/index.html [root@server1 compose]# echo web2 >web2/index.html [root@server1 compose]# cd haproxy/ [root@server1 haproxy]# ls [root@server1 haproxy]# vim haproxy.cfgglobalmaxconn 65535stats socket /var/run/haproxy.stat mode 600 level adminlog 127.0.0.1 local0uid 200gid 200#chroot /var/emptydaemondefaultsmode httplog globaloption httplogoption dontlognullmonitor-uri /monitorurimaxconn 8000timeout client 30sretries 2option redispatchtimeout connect 5stimeout server 5sstats uri /status# The public 'www' address in the DMZ frontend publicbind *:80 name clear#bind 192.168.1.10:443 ssl crt /etc/haproxy/haproxy.pem#use_backend static if { hdr_beg(host) -i img }#use_backend static if { path_beg /img /css }default_backend dynamic# The static backend backend for 'Host: img', /img and /css. backend dynamicbalance roundrobinserver app1 web1:80 check inter 1000server app2 web2:80 check inter 1000 [root@server1 compose]# docker-compose up [root@server1 compose]# docker-compose start [root@server1 compose]# docker-compose ps


在真機上測試負載均衡情況

查看健康檢查

[root@server1 compose]# docker-compose stop web1


Docker Compose 常用命令

Build:構建或重新構建服務。
kill:強制停止服務容器。
logs:查看服務的輸出。
port:打印綁定的公共端口。
ps:列出所有容器。
pull:拉取服務所需鏡像。
rm:刪除停止的服務容器。
up:構建并啟動容器。

2.docker swam

初始化

[root@server1 harbor]# docker swarm init


根據提示在其他docker節點上執行命令:


查看swarm集群節點

[root@server1 ~]# docker node ls

[root@server1 ~]# docker load -i myapp.tar [root@server1 ~]# docker load -i visualizer.tar [root@server1 ~]# docker tag ikubernetes/myapp:v1 myapp:v1

實現負載均衡

節點升降級

[root@server1 ~]# docker node promote server2 [root@server1 ~]# docker node demote server1

[root@server1 ~]# docker swarm leave [root@server2 ~]# docker node rm server1

加入一個新的節點
重新配置一臺server4
加入集群,注意現在的managerserver2,要寫server2的ip

[root@server4 ~]# docker swarm join --token SWMTKN-1-5worodwhvojzfl76gmoi3n68encf8ha3gaze302aus6yw7g382-c2d31ke2j0ncdiijo1efgpffu 172.25.1.2:2377

[root@server2 docker]# vim daemon.json {"registry-mirrors": ["https://reg.westos.org"] } [root@server2 docker]# scp daemon.json server4:/etc/docker/ [root@server2 docker]# scp daemon.json server3:/etc/docker/ [root@server2 docker]# scp -r certs.d/ server4:/etc/docker/ [root@server2 docker]# vim /etc/hosts

2.加入本地私有倉庫

[root@server1 harbor]# docker-compose start [root@server1 ~]# docker tag myapp:v1 reg.westos.org/library/myapp:v1 [root@server1 ~]# docker push reg.westos.org/library/myapp:v1 [root@server2 ~]# docker service rm my_cluster 然后把各個節點上已經拉取的鏡像刪除掉 [root@server2 ~]# docker service create --name myweb --replicas 3 -p 80:80 myapp:v1 [root@server2 docker]# docker service scale myweb=6

3. 實現業務滾動更新

[root@server2 ~]# docker service update --image myapp:v2 --update-parallelism 2 --update-delay 5s myweb [root@server4 ~]# systemctl stop docker.service

當把server4down掉的話,業務會自動跳到其他的server上

3.docker stack部署集群

基于 Docker Swarm 之上來完成應用的部署,面向大規模場景下的多服務部署和管理。

1.docker stack與docker-compose的區別:

  • Docker stack不支持“build”指令,它是需要鏡像是預先已經構建好的, 所以docker-compose更適合于開發場景;
  • Docker Compose是一個Python項目,使用Docker API規范來操作容器。
  • Docker Stack功能包含在Docker引擎中,是swarm mode的一部分。
  • Docker stack不支持基于第2版寫的docker-compose.yml ,也就是version版本至少為3。然而Docker Compose對版本為2和3的 文件仍然可以處理;
  • docker stack把docker compose的所有工作都做完了,因此docker stack將占主導地位。

2.docker stack相關命令:

參考官方地址集群部署
在部署之前需要先清除剛才所做的service

3.編寫yml文件

[root@server2 ~]# mkdir compose [root@server2 ~]# cd compose/ [root@server2 compose]# vim docker-compose.yml version: "3.9" services:web:image: myapp:v1networks:- mynetdeploy:replicas: 2update_config:parallelism: 2delay: 10srestart_policy:condition: on-failurevisualizer:image: visualizerports:- "8080:8080"stop_grace_period: 1m30svolumes:- "/var/run/docker.sock:/var/run/docker.sock"deploy:placement:constraints:- "node.role==manager" networks:mynet:

將監控的鏡像也上傳至本地私有倉庫,方便使用,因為yml編寫的時候直接從本地倉庫拉取

[root@server1 ~]# docker tag dockersamples/visualizer reg.westos.org/library/visualizer:latest [root@server1 ~]# docker push reg.westos.org/library/visualizer:latest

4.執行

[root@server2 compose]# docker stack deploy -c docker-compose.yml my_cluster

5.查看效果

[root@server2 compose]# docker service ls


我們在監控頁面查看

4.Portainer可視化

1.部署portainer

鏈接: portainer 目錄 提取碼: zzct

[root@server1 ~]# cd portainer/ [root@server1 portainer]# ls portainer-agent-stack.yml portainer-agent.tar portainer.tar [root@server1 portainer]# docker load -i portainer-agent.tar [root@server1 portainer]# docker load -i portainer.tar 將這些鏡像統一放到我們搭建的本地私有倉庫中 [root@server1 portainer]# docker tag portainer/agent:latest reg.westos.org/library/agent:latest [root@server1 portainer]# docker tag portainer/portainer:latest reg.westos.org/library/portainer:latest [root@server1 portainer]# docker push reg.westos.org/library/agent:latest [root@server1 portainer]# docker push reg.westos.org/library/portainer:latest [root@server1 portainer]# scp portainer-agent-stack.yml server2:~/ [root@server2 ~]# vim portainer-agent-stack.yml ##對鏡像位置進行修改即可

[root@server2 ~]# docker stack deploy -c portainer-agent-stack.yml portainer ##執行



在web 界面查看 172.25.1.2:9000 可以看到登錄界面 首次登錄需要設置賬號,密碼



總結

以上是生活随笔為你收集整理的Docker 三剑客的全部內容,希望文章能夠幫你解決所遇到的問題。

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