基于Docker swarm 集群搭建SSR 学习
一、搭建Docker集群
1、安裝Docker
使用 yum 安裝
①、執(zhí)行以下命令安裝依賴包:
$ sudo yum install -y yum-utils
device-mapper-persistent-data
lvm2
②、添加docker的yum源
$ sudoyum-config-manager
–add-repo
https://mirrors.ustc.edu.cn/docker-ce/linux/centos/docker-ce.repo
官方源
$ sudo yum-config-manager \
--add-repo \https://download.docker.com/linux/centos/docker-ce.repo阿里云鏡像源
yum-config-manager\
–add-repo
http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
③、更新 yum 軟件源緩存,并安裝 docker-ce。
$ sudo yum makecache fast
$ sudo yum install docker-ce
另外一種:使用腳本自動安裝
在測試或開發(fā)環(huán)境中 Docker 官方為了簡化安裝流程,提供了一套便捷的安裝腳本,CentOS 系統(tǒng)上可以使用這套腳本安裝:
$ curl -fsSL get.docker.com -o get-docker.sh
$ sudo sh get-docker.sh --mirror Aliyun
執(zhí)行這個命令后,腳本就會自動的將一切準備工作做好,并且把 Docker CE 的 Edge 版本安裝在系統(tǒng)中。
查詢已經(jīng)安裝的Docker包
$ yum list installed | grep docker
2、啟動 Docker CE
$ sudo systemctl enable docker 開機自啟
$ sudo systemctl start docker
建立 docker 用戶組
默認情況下,docker 命令會使用 Unix socket 與 Docker 引擎通訊。而只有 root 用戶和 docker 組的用戶才可以訪問 Docker 引擎的 Unix socket。出于安全考慮,一般 Linux 系統(tǒng)上不會直接使用 root 用戶。因此,更好地做法是將需要使用 docker 的用戶加入 docker 用戶組。
建立 docker 組:(如果不是用的root用戶安裝執(zhí)行,則需要將用戶加入到Docker用戶組)
$ sudo groupadd docker
將當前用戶加入 docker 組:
$ sudo usermod -aG docker $USER
退出當前終端并重新登錄,進行如下測試
查看Docker版本:
docker version
測試 Docker 是否安裝正確
$ docker run hello-world
docker run是啟動單個服務,如果是docker倉庫有的鏡像,則會直接下載鏡像
docker pull 鏡像名稱 該命令為下載鏡像
添加內(nèi)核參數(shù)
如果在 CentOS 使用 Docker CE 看到下面的這些警告信息:
WARNING: bridge-nf-call-iptables is disabled
WARNING: bridge-nf-call-ip6tables is disabled
請?zhí)砑觾?nèi)核配置參數(shù)以啟用這些功能。
$ sudo tee -a /etc/sysctl.conf <<-EOF
net.bridge.bridge-nf-call-ip6tables = 1
net.bridge.bridge-nf-call-iptables = 1
EOF
然后重新加載 sysctl.conf 即可
$ sudo sysctl -p
3、刪除Docker
刪除Yum中的Docker軟件包
$ sudo yum remove docker-ce.x86_64 或 yum remove docker-ce
1
刪除Docker相關的所有鏡像、容器、自定義配置等一系列文件
$ sudo rm -rf /var/lib/docker
4、搭建集群
創(chuàng)建管理節(jié)點 ip地址為管理節(jié)點
docker swarm init --advertise-addr 192.168.10.17
將Worker節(jié)點加入swarm集群
docker swarm join --token SWMTKN-1-3cm5nxo0r2qc1kvfbfi2u2uc8je7sck5gh6371a08rj1jmeg47-5u7fascyt2vcuo1dcufskaw0v 192.168.10.101:2377
注:如果當時創(chuàng)建swarm時沒有記下命令的輸出,可以通過在manager節(jié)點上運行docker swarm join-token worker命令來獲取如何加入swarm的命令
管理Swarm集群:
$ docker swarm leave
Node left the swarm.
在刪除Docker集群節(jié)點后,集群中該節(jié)點仍然存在,但是狀態(tài)顯示為Down,
需要在Swarm的Manager節(jié)點執(zhí)行以下命令, 刪除已經(jīng)移除的節(jié)點
需要執(zhí)行以下命令刪除從節(jié)點
docker node rm --force apxpcykqs1yql3mtreohzrff8
apxpcykqs1yql3mtreohzrff8為節(jié)點ID ,通過命令docker node ls可以查看集群情況
主節(jié)點離開集群
docker swarm leave --force #必須使用參數(shù)–force,強制離開集群,否則會報錯
docker node ls #列出Swarm集群中的所有的節(jié)點。
docker node ls -q #只列出所有的節(jié)點的ID
docker node inspect <ID/HOSTNAME> #展示詳細節(jié)點的信息
docker node inspect <ID/HOSTNAME> --pretty #展示詳細節(jié)點的信息
docker node rm <ID/HOASTNAME> #從Swarm集群中移除node
docker node promote <ID/HOSTNAME> #把節(jié)點升級為manager節(jié)點
docker node demote <ID/HOSTNAME> #把節(jié)點降級為node節(jié)點
刪除服務
docker service rm ykh567kc9maj
ykh567kc9maj 是服務的ID
用docker service ls查看
二、部署SSR服務
1、安裝Docker Compose
curl -L “https://github.com/docker/compose/releases/download/1.23.1/docker-compose-(uname?s)?(uname -s)-(uname?s)?(uname -m)” -o /usr/local/bin/docker-compose
chmod +x /usr/local/bin/docker-compose
2、部署SSR-Docker
下載SSR的配置文件 yum -y install git 安裝git
git clone https://github.com/winterssy/SSR-Docker.git ~/SSR-Docker
要注意配置文件路徑,如果弄錯服務會無法啟動
在集群上部署SSR服務:
docker stack deploy -c ./docker-compose.yml sssr
查看服務
docker service ps sssr_ssr
docker service ls
docker stack deploy 部署新的堆棧或更新現(xiàn)有堆棧
docker stack ls 列出現(xiàn)有堆棧
docker stack ps 列出堆棧中的任務
docker stack rm 刪除堆棧
docker stack services 列出堆棧中的服務
如果是修改 yml 文件和 應用服務的 配置文件,重新執(zhí)行命令
docker stack deploy -c ./docker-compose.yml sssr 就可以更新服務了
常用命令:
列出鏡像
docker image ls
刪除鏡像
docker image rm 鏡像ID
docker ps
進入容器
docker exec –it 容器id bash
或者
docker exec -it 容器id /bin/sh
查看容器進程:
docker top 容器id
查看docker所啟動的服務:
docker ps
查看容器:
docker ps -qa
[root@docker-master-ssr SSR-Docker]# docker ps -qa
ea6474e61004
ea8680e1964a
0ae3907cc23e
6eefa3a6bc2b
查看容器日志:
docker logs 6eefa3a6bc2b
可以查看容器啟動時報錯的日志
docker exec提示錯誤oci runtime error: exec failed: container_linux.go
sudo docker exec -it 569f05d5f4fc /bin/bash
提示錯誤
rpc error: code = 13 desc = invalid header field value “oci runtime error:
\ exec failed: container_linux.go:247:
\ starting container process caused “exec: \”/bin/bash\”:
\ stat /bin/bash: no such file or directory"\n"
嘗試
sudo docker exec -it 569f05d5f4fc /bin/sh
or
sudo docker exec -it 569f05d5f4fc bash
總結
以上是生活随笔為你收集整理的基于Docker swarm 集群搭建SSR 学习的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 通信教程 | 串口丢数据常见的原因
- 下一篇: R-CNN算法学习(步骤二:特征提取)