在Linux中通过docker安装和配置supervisor进程守护

先在Linux中安装docker,然后在docker中安装appnode,并进行docker网络端口映射。接着登录appnode面板安装supervisor。

supervisor用于守护进程,在进程意外终止后将其重启。

supervisor没有监听内部程序和自动重启的功能。

docker安装

第一步,卸载旧版本docker。

若系统中已安装旧版本docker,则需要卸载旧版本docker以及与旧版本docker相关的依赖项。

命令:yum -y remove docker docker-client docker-client-latest docker-common docker-latest docker-latest-logrotate docker-logrotate docker-engine

第二步,安装gcc依赖。

命令:yum -y install gcc gcc-c++

第三步,使用docker仓库进行安装。

在新主机上首次安装docker Engine-Community之前,需要设置docker仓库。之后,可以从仓库安装和更新docker。

# 设置仓库,安装所需的软件包。

命令:yum install -y yum-utils device-mapper-persistent-data lvm2

# 设置稳定的仓库,使用官方源地址(比较慢)

命令: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-config-manager --add-repo https://mirrors.tuna.tsinghua.edu.cn/docker-ce/linux/centos/docker-ce.repo

第四步,安装docker Engine-Community。

# 更新yum软件包索引

命令:yum makecache

# 安装最新版本的docker Engine-Community和containerd

命令:yum -y install docker-ce docker-ce-cli containerd.io

# 查看docker-ce是否成功安装

命令:yum list docker-ce

 

docker安装完默认未启动,并且已经创建好docker用户组,但该用户组下没有用户。

# 列出存储库中可用的版本并按版本号从高到低进行排序

命令:yum list docker-ce --showduplicates | sort -r

# 通过其完整的软件包名称安装特定版本,如docker-ce-24.0.0。

命令:yum -y install docker-ce-24.0.0 docker-ce-cli-24.0.0 containerd.io

第五步,启动docker。

命令:systemctl enable docker

systemctl start docker

systemctl restart docker

若结果显示“Job for docker.service failed because the control process exited with error code.See "systemctl status docker.service" and "journalctl -xe" for details.”,则运行如下命令:

systemctl daemon-reload

systemctl restart docker.service

第六步,验证docker Engine-Community是否正确安装。

命令:docker version

docker run hello-world

若结果显示“Unable to find image 'hello-world:latest' locally”,则需要按照下面的步骤来解决:

1)创建文件daemon.json文件。

命令:touch /etc/docker/daemon.json

2)配置文件/etc/docker/daemon.json,添加阿里云镜像。

 

{

"registry-mirrors": ["https://ufxq8t1x.mirror.aliyuncs.com"]

}

3)重启docker服务。

命令:systemctl restart docker

systemctl status docker

再次验证:docker run hello-world

若结果显示“Hello from docker!”,则说明docker安装成功。

进行docker网络端口映射

第一步,创建执行网络端口映射容器。

# 设置面板端口号为8888

命令:docker run -dit --restart=always \

--privileged=true \

--cap-add SYS_ADMIN \

-e container=docker \

--network bridge \

-p 8888:8888 \

-p 443:443 \

-p 80:80 \

-p 3306:3306 \

-p 21:21 \

-v /data:/data \

--name appnode \

sbwml/appnode:latest \

/usr/sbin/init

第二步,列出本地所有的镜像。

命令:docker images -a

第三步,列出当前所有正在运行的镜像。

命令:docker images

第四步,从docker中删除镜像。

命令:docker rmi 镜像ID或容器名称

# 从docker中强制删除镜像

命令:docker rmi -f 镜像ID或容器名称

# 通过docker images -p查询到的镜像ID来删除所有镜像

命令:docker rmi -f $(docker images -p)

第五步,列出所有的容器。

命令:docker ps -a

第六步,列出当前所有正在运行的容器。

命令:docker ps

第七步,强制停止容器。

命令:docker kill 容器ID或容器名称

第八步,删除容器。

命令:docker rm 容器ID或容器名称

# 从docker中强制删除容器

命令:docker rm -f 容器ID或容器名称

# 删除多个容器

命令:docker rm -f $(docker ps -a -q)

第九步,访问appnode面板。

登录网址:http://x.x.x.x:8888/login,如果页面成功显示“APPNODE 轻松运维 从此开启”,则说明appnode面板安装成功并且docker网络端口映射成功。

利用原始账号:admin,原始密码:admin,登录appnode面板。

 

登录appnode面板之后,可以点击页面左上角“节点管理”,然后安装受控端,确保受控端在线以及实时监控CPU、内存、存储和网络。

 

登录appnode面板之后,点击左侧“应用列表”中的“软件管家”,然后点击“网站管理”的安装按钮,接着点击“立即安装”。

 

若结果如下图所示,则说明网站管理安装成功。

 

登录appnode面板之后,点击左侧“应用列表”中的“软件管家”,然后在搜索栏输入“Supervisor”可以得到“Supervisor进程托管”,接着点击“Supervisor进程托管”和“Supervisor服务(Go版)”的安装按钮,最后点击“立即安装”。

 

若结果如下图所示,则说明Supervisor进程托管安装成功。

 

Supervisor配置

第一步,进入appnode容器。

命令:docker ps

docker exec -it [容器ID] /bin/bash

第二步,创建Supervisor配置目录。

命令:mkdir /etc/supervisor

mkdir /var/log/supervisor/test

第三步,创建主进程/etc/supervisor/supervisord.conf配置文件。

命令:yum -y install vim

vim /etc/supervisor/supervisord.conf

在supervisord.conf文件中添加下面的代码:

; supervisor config file

[unix_http_server]

file=/var/run/supervisor.sock   ; (the path to the socket file)

chmod=0700                       ; sockef file mode (default 0700)

[supervisord]

logfile=/var/log/supervisor/supervisord.log ; (main log file;default $CWD/supervisord.log)

pidfile=/var/run/supervisord.pid ; (supervisord pidfile;default supervisord.pid)

childlogdir=/var/log/supervisor            ; ('AUTO' child log dir, default $TEMP)

; the below section must remain in the config file for RPC

; (supervisorctl/web interface) to work, additional interfaces may be

; added by defining them in separate rpcinterface: sections

[rpcinterface:supervisor]

supervisor.rpcinterface_factory = supervisor.rpcinterface:make_main_rpcinterface

[supervisorctl]

serverurl=unix:///var/run/supervisor.sock ; use a unix:// URL  for a unix socket

[program:test]

directory=/data/QL_pdf

command=flask run

autostart=true

autorestart=true

killasgroup=true

stopasgroup=true

stdout_logfile=/var/log/supervisor/test/stdout.log

redirect_stderr=true

supervisor启动主进程

第一步,Supervisor面板和环境安装完成之后,点击“打开”按钮就会跳转到“Supervisor进程托管”页面。

 

第二步,在“Supervisor进程托管”页面,点击“服务管理”按钮,然后确保“开机是否启动”“启用服务守护”按钮为开启状态,“当前服务状态”为“运行中”。

卸载docker

# 卸载docker

命令:systemctl stop docker

yum remove docker-ce docker-ce-cli containerd.io

# 删除安装包

命令:yum remove docker-ce

# 删除镜像、容器、配置文件等内容

命令:rm -rf /var/lib/docker

rm -rf /var/lib/containerd

  • 22
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Jerry 二河小鱼

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值