基于Docker swarm 集群搭建SSR 学习
一、搭建Docker集群
1、安裝Docker
使用 yum 安裝
①、執行以下命令安裝依賴包:
$ 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
另外一種:使用腳本自動安裝
在測試或開發環境中 Docker 官方為了簡化安裝流程,提供了一套便捷的安裝腳本,CentOS 系統上可以使用這套腳本安裝:
$ curl -fsSL get.docker.com -o get-docker.sh
$ sudo sh get-docker.sh --mirror Aliyun
執行這個命令后,腳本就會自動的將一切準備工作做好,并且把 Docker CE 的 Edge 版本安裝在系統中。
查詢已經安裝的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 系統上不會直接使用 root 用戶。因此,更好地做法是將需要使用 docker 的用戶加入 docker 用戶組。
建立 docker 組:(如果不是用的root用戶安裝執行,則需要將用戶加入到Docker用戶組)
$ sudo groupadd docker
將當前用戶加入 docker 組:
$ sudo usermod -aG docker $USER
退出當前終端并重新登錄,進行如下測試
查看Docker版本:
docker version
測試 Docker 是否安裝正確
$ docker run hello-world
docker run是啟動單個服務,如果是docker倉庫有的鏡像,則會直接下載鏡像
docker pull 鏡像名稱 該命令為下載鏡像
添加內核參數
如果在 CentOS 使用 Docker CE 看到下面的這些警告信息:
WARNING: bridge-nf-call-iptables is disabled
WARNING: bridge-nf-call-ip6tables is disabled
請添加內核配置參數以啟用這些功能。
$ 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、搭建集群
創建管理節點 ip地址為管理節點
docker swarm init --advertise-addr 192.168.10.17
將Worker節點加入swarm集群
docker swarm join --token SWMTKN-1-3cm5nxo0r2qc1kvfbfi2u2uc8je7sck5gh6371a08rj1jmeg47-5u7fascyt2vcuo1dcufskaw0v 192.168.10.101:2377
注:如果當時創建swarm時沒有記下命令的輸出,可以通過在manager節點上運行docker swarm join-token worker命令來獲取如何加入swarm的命令
管理Swarm集群:
$ docker swarm leave
Node left the swarm.
在刪除Docker集群節點后,集群中該節點仍然存在,但是狀態顯示為Down,
需要在Swarm的Manager節點執行以下命令, 刪除已經移除的節點
需要執行以下命令刪除從節點
docker node rm --force apxpcykqs1yql3mtreohzrff8
apxpcykqs1yql3mtreohzrff8為節點ID ,通過命令docker node ls可以查看集群情況
主節點離開集群
docker swarm leave --force #必須使用參數–force,強制離開集群,否則會報錯
docker node ls #列出Swarm集群中的所有的節點。
docker node ls -q #只列出所有的節點的ID
docker node inspect <ID/HOSTNAME> #展示詳細節點的信息
docker node inspect <ID/HOSTNAME> --pretty #展示詳細節點的信息
docker node rm <ID/HOASTNAME> #從Swarm集群中移除node
docker node promote <ID/HOSTNAME> #把節點升級為manager節點
docker node demote <ID/HOSTNAME> #把節點降級為node節點
刪除服務
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 部署新的堆?;蚋卢F有堆棧
docker stack ls 列出現有堆棧
docker stack ps 列出堆棧中的任務
docker stack rm 刪除堆棧
docker stack services 列出堆棧中的服務
如果是修改 yml 文件和 應用服務的 配置文件,重新執行命令
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 学习的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 通信教程 | 串口丢数据常见的原因
- 下一篇: R-CNN算法学习(步骤二:特征提取)