国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 服務器 > Web服務器 > 正文

輕松安裝docker并運行docker swarm模式

2024-09-01 13:49:33
字體:
來源:轉載
供稿:網友

概要

docker 1.12版本最大的改變在于集成了docker swarm,在docker engine下提供了 swarm 模式,這里主要說一下docker swarm。

docker engine本身只提供了容器技術,沒有解決集群環境下的容器編排和通信。docker swarm是一個容器編排管理工具,docker-engine在1.12版本之后集成了docker swarm,不需要再單獨安裝。

docker swarm的功能,舉個例子,有3臺機器都安裝了docker環境,稱為3臺docker節點。那么如何管理這3臺docker節點,并把容器以類似于負載均衡的模式分別部署到這3臺節點上,并讓這些分布在不同節點上的容器之間互相通信呢。這時候需要用到容器編排工具,常用的編排工具有Google開源的kubernetes、apache的mesos、docker公司的swarm。

kubernetes作為Google開源的工具,已經在Google的生產環境運行了多年,功能豐富并且穩定可靠,目前有很多公司都在使用。docker在1.12版本之后內置了swarm模式,把容器編排以核心組件的模式集成到了docker engine中,并借鑒了kubernetes的成功經驗。

安裝docker

以centos7為例,這里附上官網的安裝文檔,docker官網實在太慢了。
使用yum安裝

1.更新yum源,sudo yum update;、。

2.添加docker的yum倉庫

sudo tee /etc/yum.repos.d/docker.repo <<-'EOF'[dockerrepo]name=Docker Repositorybaseurl=https://yum.dockerproject.org/repo/main/centos/7/enabled=1gpgcheck=1gpgkey=https://yum.dockerproject.org/gpgEOF

3.安裝docker-engine,sudo yum install docker-engine

4.啟動docker守護進程,sudo systemctl start docker
docker的安裝到這里就結束了,下邊說一下在公司內網環境通過代理安裝docker需要注意的問題。

1.首先讓機器能通過代理上網

修改/etc/profile,增加export http_proxy=代理用戶名:密碼@代理地址:端口

使修改生效,source /etc/profile

2.配置yum使用代理

vim /etc/yum.conf 增加proxy=http://代理用戶名:密碼@代理地址:端口

經過這兩步之后,就可以在內網通過代理安裝docker了。

配置docker

打開docker遠程管理端口2375,并配置docker hub國內倉庫。

1.新建docker配置文件

vim /etc/sysconfig/docker

增加

DOCKER_OPTS="-H unix:///var/run/docker.sock -H 0.0.0.0:2375 --registry-mirror=國內倉庫地址"

如果需要通過代理訪問還需要增加

HTTP_PROXY=http://代理用戶名:密碼@代理地址:端口

2.啟動docker守護進程時加載配置文件

vim /lib/systemd/system/docker.servic

修改ExecStart配置為

ExecStart=/usr/bin/dockerd $DOCKER_OPTS

在[Service]中增加配置文件路徑的配置

EnvironmentFile=-/etc/sysconfig/docker

把配置文件加載路徑指定到第一步創建的配置文件/etc/sysconfig/docker

3.重啟docker守護進程

sudo systemctl stop docker
sudo systemctl start docker

4.檢查配置是否生效

ps -ef|grep docker

如果配置生效,會在dockerd進程后邊加上剛才配置的參數。

啟動swarm模式

只需要在一個docker節點上初始化swarm集群, 其他節點加入這個集群就行了。

選擇一臺docker節點作為swarm模式的leader,運行

docker swarm init --advertise-addr 主機ip

按照提示信息在其他節點上執行命令加入swarm集群

在leader節點上執行docker node ls 查看節點信息

創建集群網絡

1.在swarm集群中的任意一個節點上運行

docker network ls 查看當前網絡狀況

scope為local的網絡只能作用于本機,下邊創建swarm集群使用的網絡。

2.運行 docker network create --driver overlay my-network

創建一個名為my-network的集群網絡

再次運行 docker network ls,可以看到剛才創建的my-network ,scope為swarm,這個網絡可以用于swarm模式,并讓多個節點上的容器可以互通。

在swarm中創建service時可以通過 --network 網絡名稱 指定使用的網絡。多個service如果使用同一個scope為swarm的network,可以通過service的名稱互相通信。

docker swarm簡單使用

下邊簡單介紹docker swarm的使用,有興趣的可以查看docker官方文檔進行深入了解。

下邊的命令全部是在swarm的leader節點運行!!

docker service create --replicas 1 --name tomcat --publish 9090:8080 tomcat:latest

這里創建了一個名為tomcat 的service,swarm把容器封裝為service,類似于kubernates中的pod,一個service是一個可供swarm調度的容器組合。

這里的--replicas 1指定了service的副本數。

--publish 9090:8080把容器中的8080端口發布到宿主機的9090端口

運行 docker service ls 查看當前的服務列表,可以看到有一個名為tomcat的服務。

運行 docker service ps tomcat 可以看到tomcat服務運行在哪個swarm節點,以及當前運行的狀態。

切換到tomcat服務運行的節點,運行 docker ps 可以看到容器的ID,以及端口映射的情況。

運行 docker logs -f 容器ID 查看tomcat運行日志。

tomcat啟動成功后,可以在瀏覽器中訪問tomcat主頁,地址是docker節點的ip(隨便哪一個節點都可以),端口是9090,是在創建服務時指定的publish。

上邊已經成功運行了一個tomcat服務,這里對這個服務進行擴展部署。

運行 docker service scale tomcat=2 把tomcat服務擴展為兩個實例。

運行 docker service ls 可以看到tomcat服務的replicas變成了1/2,第二個實例啟動成功之后會變為2/2。

運行 docker service ps tomcat 查看兩個tomcat服務實例運行在哪個docker節點,以及運行狀態。

swarm會自動在兩個service中做負載均衡

swarm還有一些其他的命令,比如 docker service rm service名稱 刪除指定service,以及灰度發布等,具體使用請參照官方文檔,這里不再細說。

swarm模式下需要注意的問題

swarm只會在docker節點之間調度容器,不會調度容器使用的掛載卷volume。在用swarm部署數據庫的容器時,需要注意數據文件的問題。或者加載了外部配置文件的容器,也需要注意配置文件的問題。
一種簡單的解決方式,是讓這些容器每次都被調度到相同的docker節點上。需要在創建service時指定--constraint 參數,比如 --constraint 'node.hostname==myhost' ,這樣創建的service只會被調度到主機名為myhost的docker節點。
另一種解決方式,使用docker volume插件,比如flocker。flocker可以在容器調度的時候,連同volume一起調度,這里不再細說,可以參照flocker的官網文檔。

最后

這里只是對docker的安裝配置以及docker swarm的使用做了簡單介紹,想要有更深入的了解,請參照官方文檔,官方文檔是學習的最好途徑。docker只是微服務架構的開篇,想要實踐微服務,docker必不可少。

后續會陸續推出基于docker部署的微服務架構,使用spring cloud做微服務解決方案,基于docker的mysql和mongodb的部署,基于docker的rabbitmq和activemq消息中間件的部署,以及基于docker部署的kafka、elk日志收集統計等。

以上所述是小編給大家介紹的輕松安裝docker并運行docker swarm模式,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復大家的。在此也非常感謝大家對VEVB武林網網站的支持!


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 高青县| 万山特区| 华蓥市| 宁远县| 云龙县| 兴宁市| 五大连池市| 辽宁省| 昆山市| 丰台区| 枝江市| 林周县| 江西省| 大余县| 紫云| 长岛县| 阳信县| 五常市| 桐庐县| 龙游县| 江川县| 工布江达县| 茂名市| 鄱阳县| 新晃| 白朗县| 承德市| 建始县| 凤城市| 肇庆市| 渑池县| 长顺县| 平舆县| 齐齐哈尔市| 衡东县| 稷山县| 灌阳县| 尉氏县| 中山市| 精河县| 阿城市|