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源,docker的安裝到這裡就結束了,下邊說一下在公司內網環境通過**安裝docker需要注意的問題。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
使修改生效,source /etc/profile
配置yum使用**
vim /etc/yum.conf
經過這兩步之後,就可以在內網通過**安裝docker了。
開啟docker遠端管理埠2375,並配置docker hub國內倉庫。
新建docker配置檔案只需要在乙個docker節點上初始化swarm集群, 其他節點加入這個集群就行了。
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模式的leader,執行
docker swarm init --advertise-addr 主機ip
按照提示資訊在其他節點上執行命令加入swarm集群
在leader節點上執行docker node ls
在swarm集群中的任意乙個節點上執行下邊簡單介紹docker swarm的使用,有興趣的可以檢視docker官方文件進行深入了解。
docker network ls
docker network create --driver overlay my-network
docker network ls
,可以看到剛才建立的my-network--network 網路名稱
下邊的命令全部是在swarm的leader節點執行!!
docker service create --replicas 1 --name tomcat --publish 9090:8080 tomcat:latest
這裡建立了乙個名為tomcatdocker service ls
docker service ps tomcat
docker ps
docker logs -f 容器id
tomcat啟動成功後,可以在瀏覽器中訪問tomcat主頁,位址是docker節點的ip(隨便哪乙個節點都可以),埠是9090,是在建立服務時指定的publish。
docker service scale tomcat=2
docker service ls
docker service ps tomcat
swarm會自動在兩個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...