一区二区三区在线-一区二区三区亚洲视频-一区二区三区亚洲-一区二区三区午夜-一区二区三区四区在线视频-一区二区三区四区在线免费观看

服務(wù)器之家:專注于服務(wù)器技術(shù)及軟件下載分享
分類導(dǎo)航

云服務(wù)器|WEB服務(wù)器|FTP服務(wù)器|郵件服務(wù)器|虛擬主機(jī)|服務(wù)器安全|DNS服務(wù)器|服務(wù)器知識|Nginx|IIS|Tomcat|

服務(wù)器之家 - 服務(wù)器技術(shù) - 服務(wù)器知識 - Docker的安裝方法及運(yùn)行Docker Swarm模式的使用

Docker的安裝方法及運(yùn)行Docker Swarm模式的使用

2020-12-24 17:04月冷X心寒 服務(wù)器知識

本文給大家簡單介紹docker的安裝以及1.12版本的swarm模式的使用,包括docker的安裝和配置,對docker swarm簡單使用感興趣的朋友一起看看吧

Docker簡介

Docker 是一個開源的應(yīng)用容器引擎,讓開發(fā)者可以打包他們的應(yīng)用以及依賴包到一個可移植的容器中,然后發(fā)布到任何流行的 Linux 機(jī)器上,也可以實現(xiàn)虛擬化。容器是完全使用沙箱機(jī)制,相互之間不會有任何接口。

概要

docker就給簡單介紹這么多,這里主要說說docker swarm。

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

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

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

安裝docker

以centos7為例,這里附上官網(wǎng)的安裝文檔,docker官網(wǎng)實在太慢了。。。

使用yum安裝

更新yum源,sudo yum update

添加docker的yum倉庫

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

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

啟動docker守護(hù)進(jìn)程,sudo systemctl start docker

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

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

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

使修改生效,source /etc/profile

配置yum使用代理

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

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

配置docker

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

新建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://代理用戶名:密碼@代理地址:端口

啟動docker守護(hù)進(jìn)程時加載配置文件

vim /lib/systemd/system/docker.servic

修改ExecStart配置為

ExecStart=/usr/bin/dockerd $DOCKER_OPTS

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

EnvironmentFile=-/etc/sysconfig/docker

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

重啟docker守護(hù)進(jìn)程

sudo systemctl stop docker
sudo systemctl start docker

檢查配置是否生效

ps -ef|grep docker

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

啟動swarm模式

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

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

docker swarm init --advertise-addr 主機(jī)ip

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

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

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

在swarm集群中的任意一個節(jié)點上運(yùn)行

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

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

運(yùn)行 docker network create --driver overlay my-network

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

再次運(yùn)行 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官方文檔進(jìn)行深入了解。

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

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ā)布到宿主機(jī)的9090端口

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

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

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

運(yùn)行 docker logs -f 容器ID 查看tomcat運(yùn)行日志。

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

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

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

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

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

swarm會自動在兩個service中做負(fù)載均衡

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

swarm模式下需要注意的問題

swarm只會在docker節(jié)點之間調(diào)度容器,不會調(diào)度容器使用的掛載卷volume。在用swarm部署數(shù)據(jù)庫的容器時,需要注意數(shù)據(jù)文件的問題。或者加載了外部配置文件的容器,也需要注意配置文件的問題。

一種簡單的解決方式,是讓這些容器每次都被調(diào)度到相同的docker節(jié)點上。需要在創(chuàng)建service時指定--constraint 參數(shù),比如 --constraint 'node.hostname==myhost' ,這樣創(chuàng)建的service只會被調(diào)度到主機(jī)名為myhost的docker節(jié)點。

另一種解決方式,使用docker volume插件,比如flocker。flocker可以在容器調(diào)度的時候,連同volume一起調(diào)度,這里不再細(xì)說,可以參照flocker的官網(wǎng)文檔。

最后

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

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

原文鏈接:https://my.oschina.net/u/2298167/blog/789502

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 思思91精品国产综合在线 | 美女的让男人桶爽免费看 | 国产久热香蕉在线观看 | 女人爽到喷水的视频免费 | 日本xnxnxnxnxn护士 | 成人国产精品一级毛片视频 | 男人午夜免费视频 | 波多野结衣之高校教师 | naruto堂同人本子汉化gg | 国产精品一在线观看 | 国产欧美日韩免费一区二区 | 福利一区三区 | 天天爱天天做天天爽天天躁 | 揉搓喷水h| 亚洲国产欧美另类va在线观看 | se婷婷| chinese男gay| 国产精品一区二区不卡的视频 | 日韩毛片大全免费高清 | 2022国产在线观看 | 午夜想想爱午夜剧场 | 奇米影视中文字幕 | 青青草99久久精品国产综合 | 国产精品亚洲午夜不卡 | 国产精品久线观看视频 | 亚洲 色 欧美 爱 视频 日韩 | 久久综合久综合久久鬼色 | 久久www免费人成高清 | 女人又色又爽又黄 | 国产亚洲综合久久 | 欧美一级特黄特色大片 | 九九久久国产 | 欧美亚洲欧美 | 国产成人精品日本亚洲网站 | 男女男精品视频免费观看 | 国产成人啪精品午夜在线观看 | 短篇最污的乱淫伦小说全集 | 亚洲国产精品成人综合久久久 | 99在线资源| 护士柔佳 | yellow片在线观看 |