安裝docker並執行docker swarm模式

2021-09-02 16:50:42 字數 3598 閱讀 1438

docker是什麼就不多說了,這裡主要說說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的成功經驗。

以centos7為例,這裡附上官網的安裝文件,docker官網實在太慢了。。。

使用yum安裝

更新yum源,sudo yum update新增docker的yum倉庫

sudo tee /etc/yum.repos.d/docker.repo <<-'eof'

[dockerrepo]name=docker repository

baseurl=

enabled=1

gpgcheck=1

gpgkey=

eof'安裝docker-engine,sudo yum install docker-engine啟動docker守護程序,sudo systemctl start docker

docker的安裝到這裡就結束了,下邊說一下在公司內網環境通過**安裝docker需要注意的問題。

使修改生效,source /etc/profile配置yum使用**

vim /etc/yum.conf

經過這兩步之後,就可以在內網通過**安裝docker了。

開啟docker遠端管理埠2375,並配置docker hub國內倉庫。

新建docker配置檔案

vim /etc/sysconfig/docker

增加docker_opts="-h unix:///var/run/docker.sock -h 0.0.0.0:2375 --registry-mirror=國內倉庫位址"啟動docker守護程序時載入配置檔案

vim /lib/systemd/system/docker.servic

修改execstart配置為

execstart=/usr/bin/dockerd $docker_opts

在[service]中增加配置檔案路徑的配置

environmentfile=-/etc/sysconfig/docker

把配置檔案載入路徑指定到第一步建立的配置檔案/etc/sysconfig/docker

重啟docker守護程序

sudo systemctl stop docker

sudo systemctl start docker檢查配置是否生效

ps -ef|grep docker

如果配置生效,會在dockerd程序後邊加上剛才配置的引數。

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

選擇一台docker節點作為swarm模式的leader,執行

docker swarm init --advertise-addr 主機ip

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

在leader節點上執行docker node ls

在swarm集群中的任意乙個節點上執行

docker network lsdocker network create --driver overlay my-networkdocker network ls,可以看到剛才建立的my-network--network 網路名稱

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

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

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

這裡建立了乙個名為tomcatdocker service lsdocker service ps tomcatdocker psdocker logs -f 容器idtomcat啟動成功後,可以在瀏覽器中訪問tomcat主頁,位址是docker節點的ip(隨便哪乙個節點都可以),埠是9090,是在建立服務時指定的publish。

docker service scale tomcat=2docker service lsdocker service ps tomcatswarm會自動在兩個service中做負載均衡

docker service rm service名稱swarm只會在docker節點之間排程容器,不會排程容器使用的掛載卷volume。在用swarm部署資料庫的容器時,需要注意資料檔案的問題。或者載入了外部配置檔案的容器,也需要注意配置檔案的問題。

一種簡單的解決方式,是讓這些容器每次都被排程到相同的docker節點上。需要在建立service時指定--constraint--constraint 'node.hostname==myhost'這裡只是對docker的安裝配置以及docker swarm的使用做了簡單介紹,想要有更深入的了解,請參照官方文件,官方文件是學習的最好途徑。docker只是微服務架構的開篇,想要實踐微服務,docker必不可少。

後續會陸續推出基於docker部署的微服務架構,使用spring cloud做微服務解決方案,基於docker的mysql和mongodb的部署,基於docker的rabbitmq和activemq訊息中介軟體的部署,以及基於docker部署的kafka、elk日誌收集統計等。

Docker 安裝Redis並執行

docker search redisdocker pull reidsdocker iamges docker images redis命令 含義 d 本地執行 6379 6379 本地埠 docker埠 v指定驅動盤 g redisdata redis的持久化檔案儲存 redis docker的...

Linux安裝Docker 並執行

通過 yum 來安裝 docke 核心支援 在centos6.8是可以支援docker,但是有些特性無法使用,因此至少使用3.8的核心版本,建議是使用3.10版本以上。國內生產環境很多都是使用centos,所以一般使用centos7即可。檢視核心 uname r1.更新yum yum y updat...

docker學習 centos安裝docker

1.更新yum源 yum update2.安裝依賴 3.設定yum源 使用ustc,也可以使用阿里雲的 yum config manager add repo4.安裝docker yum install y docker ce通過docker v檢視,如果檢視到版本號,說明安裝成功 5.設定ustc...