您好,登錄后才能下訂單哦!
這篇文章將為大家詳細講解有關怎么在docker中運行docker swarm模式,文章內容質量較高,因此小編分享給大家做個參考,希望大家閱讀完這篇文章后對相關知識有一定的了解。
安裝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的安裝到這里就結束了,下邊說一下在公司內網環境通過代理安裝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中運行docker swarm模式就分享到這里了,希望以上內容可以對大家有一定的幫助,可以學到更多知識。如果覺得文章不錯,可以把它分享出去讓更多的人看到。
原文鏈接:https://my.oschina.net/lhztt/blog/789502
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。