怎么在docker中運行dockerswarm模式-創(chuàng)新互聯(lián)

這篇文章將為大家詳細講解有關(guān)怎么在docker中運行docker swarm模式,文章內(nèi)容質(zhì)量較高,因此小編分享給大家做個參考,希望大家閱讀完這篇文章后對相關(guān)知識有一定的了解。

創(chuàng)新互聯(lián)專業(yè)IDC數(shù)據(jù)服務(wù)器托管提供商,專業(yè)提供成都服務(wù)器托管,服務(wù)器租用,內(nèi)蒙古服務(wù)器托管,內(nèi)蒙古服務(wù)器托管,成都多線服務(wù)器托管等服務(wù)器托管服務(wù)。

安裝docker


使用yum安裝

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

2.添加docker的yum倉庫

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

4.啟動docker守護進程,sudo systemctl start docker
docker的安裝到這里就結(jié)束了,下邊說一下在公司內(nèi)網(wǎng)環(huán)境通過代理安裝docker需要注意的問題。

1.首先讓機器能通過代理上網(wǎng)

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

使修改生效,source /etc/profile

2.配置yum使用代理

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

經(jīng)過這兩步之后,就可以在內(nèi)網(wǎng)通過代理安裝docker了。

配置docker

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

1.新建docker配置文件

vim /etc/sysconfig/docker

增加

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

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

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

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

vim /lib/systemd/system/docker.servic

修改ExecStart配置為

ExecStart=/usr/bin/dockerd $DOCKER_OPTS

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

EnvironmentFile=-/etc/sysconfig/docker

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

3.重啟docker守護進程

sudo systemctl stop docker
sudo systemctl start docker

4.檢查配置是否生效

ps -ef|grep docker

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

啟動swarm模式

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

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

docker swarm init --advertise-addr 主機ip

按照提示信息在其他節(jié)點上執(zhí)行命令加入swarm集群

在leader節(jié)點上執(zhí)行docker node ls 查看節(jié)點信息

創(chuàng)建集群網(wǎng)絡(luò)

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

docker network ls 查看當前網(wǎng)絡(luò)狀況

scope為local的網(wǎng)絡(luò)只能作用于本機,下邊創(chuàng)建swarm集群使用的網(wǎng)絡(luò)。

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

創(chuàng)建一個名為my-network的集群網(wǎng)絡(luò)

再次運行 docker network ls,可以看到剛才創(chuàng)建的my-network ,scope為swarm,這個網(wǎng)絡(luò)可以用于swarm模式,并讓多個節(jié)點上的容器可以互通。

在swarm中創(chuàng)建service時可以通過 --network 網(wǎng)絡(luò)名稱 指定使用的網(wǎng)絡(luò)。多個service如果使用同一個scope為swarm的network,可以通過service的名稱互相通信。

docker swarm簡單使用

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

下邊的命令全部是在swarm的leader節(jié)點運行??!

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

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

這里的--replicas 1指定了service的副本數(shù)。

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

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

運行 docker service ps tomcat 可以看到tomcat服務(wù)運行在哪個swarm節(jié)點,以及當前運行的狀態(tài)。

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

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

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

上邊已經(jīng)成功運行了一個tomcat服務(wù),這里對這個服務(wù)進行擴展部署。

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

運行 docker service ls 可以看到tomcat服務(wù)的replicas變成了1/2,第二個實例啟動成功之后會變?yōu)?/2。

運行 docker service ps tomcat 查看兩個tomcat服務(wù)實例運行在哪個docker節(jié)點,以及運行狀態(tài)。

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

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

swarm模式下需要注意的問題

swarm只會在docker節(jié)點之間調(diào)度容器,不會調(diào)度容器使用的掛載卷volume。在用swarm部署數(shù)據(jù)庫的容器時,需要注意數(shù)據(jù)文件的問題?;蛘呒虞d了外部配置文件的容器,也需要注意配置文件的問題。
一種簡單的解決方式,是讓這些容器每次都被調(diào)度到相同的docker節(jié)點上。需要在創(chuàng)建service時指定--constraint 參數(shù),比如 --constraint 'node.hostname==myhost' ,這樣創(chuàng)建的service只會被調(diào)度到主機名為myhost的docker節(jié)點。


關(guān)于怎么在docker中運行docker swarm模式就分享到這里了,希望以上內(nèi)容可以對大家有一定的幫助,可以學(xué)到更多知識。如果覺得文章不錯,可以把它分享出去讓更多的人看到。


原文鏈接:/tupian/20230522/lhztt

當前名稱:怎么在docker中運行dockerswarm模式-創(chuàng)新互聯(lián)
分享網(wǎng)址:http://muchs.cn/article30/dpeipo.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供品牌網(wǎng)站設(shè)計、軟件開發(fā)、靜態(tài)網(wǎng)站、做網(wǎng)站網(wǎng)頁設(shè)計公司、服務(wù)器托管

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

微信小程序開發(fā)