本站志在,为折腾某个项目的朋友,提供详细、可行、本人实践过的、保持更新的流程说明,不一定最优,但确保能走通流程,真正在生活和工作中用得上。
有些文章也会加上曾经用过的项目,这些都不会再关注和更新
本页还在补充内容
下面的是为新手准备的,以实用为主要目的,以快速走通一个项目为目标,尽可能了解最少的内容,因此并不全面,但相信在玩 Linux 的过程中,也会自然接触到相关的。
大佬和有经验的可以关闭窗口了,也欢迎指点不足。
Linux 相关的文章
第一次接触Linux:抱歉还没写文章
同一代码块中的命令,大部分都属于【右上角一键复制】-【终端粘贴执行】这种,不管行多行少。这样不必手动划选,方便。不过这不意味着所有代码块无脑粘贴执行就可以,需要自定义的会有说明,可选自定义的不说明。
所有的前提是,站长只用过 Debian 系发行版,包括 Ubuntu 和 Armbian。
vim
如果不会也不想用 vim,将本文所有 vim 改成会用的编辑器即可(其实我用 vim 的原因是不会用 nano)。
学习的话,会 3 点就能用,假设要编辑的文件名是 file.yml :
- 打开并编辑文件:
vim file.yml
。可以使用方向键移动光标,但不能输入内容 - 进入编辑模式,英文小写输入法下,按一下
i
,这时就可以用删除键删除,也能输入字母了,可是怎么保存退出? - 按键盘左上角的 ‘ESC’ 退出编辑模式,如果不想保存刚才的操作,或者弄乱了,在英文大写输入法下,按
ZQ
这两个字母,就能不保存退出 - 如果要保存,按
ZZ
怎么复制,键盘上 Shift + insert 。
Docker 相关
本站文章中关于使用 Docker 安装的项目大多数都是下面的流程。安装结构分三部分:
第一部分: 定义变量 myserve,它会是项目根目录的名称,还有开放防火墙端口。如果你没有自己的使用习惯,这个代码块【一键复制执行】即可
myserve="smokeping" # 项目名称,可选自定义,本站都使用相应开源项目原本的名称,没必要改
# 8899,就是开放的端口,跟下一步的 .yml 文件中定义的需要一致,不冲突的话没必要改
sudo ufw allow 8899/tcp comment $myserve && sudo ufw reload
# 项目根目录在当前用户家目录下的 myserve 下面,
mkdir -p ~/myserve/$myserve && cd ~/myserve/$myserve
# 以这个为例
# 若用户是 root,那么项目根目录是 /root/myserve/smokeping
# 若是普通用户,名为 putong,那么项目根目录是 /home/putong/myserve/smokeping
第二部分,创建 docker-compose.yml 文件。这个代码块,也是【一键复制执行】即可创建 .yml 文件,不过很多时候还需要根据注释自定义一点字符,一般要改的是 environment、volumes、ports 三个下面的内容。 .yml 文件对格式很严格,只能使用空格缩进。
cat > docker-compose.yml << EOF
version: "2.1"
services:
smokeping:
image: lscr.io/linuxserver/smokeping:latest
container_name: smokeping
restart: unless-stopped
environment:
- PUID=1000 # 配置运行容器的用户,可以是用户名,也可以是 UID,如果不懂,填 root。 第一个普通用户的 UID 默认是 1000
- PGID=1000 # 类似上面,只不过是用户组
- TZ=Asia/Shanghai # 时区,在大陆的就填这个
# 这里是环境变量,不同项目可以自定义的环境变量也不同,可能没有,也可能一堆,根据实际注释改就行
volumes:
- ./config:/config # 映射目录的,一般本站这部分没必要动,本文以少为好,所以不多说
- ./data:/data
ports:
- 8899:80 # 映射端口的,如果端口没被其他程序占用,没必要改,改得话,改左边的8899,右边绝对不能改
EOF
- version,services 自然不必说,不用改。smokeping 随意,没必要改
- image,后面是镜像的地址,没必要改
- container_name,容器名,没必要改
- restart,重启设置,没必要改
- environment、volumes、ports 看代码块里的说明。
第三部分:这部分命令,必须在项目根目录下执行,也就是 docker-compose.yml 所在目录,把几个常用的写下。
拉取容器镜像
docker compose pull
启动容器(这时可以通过 http://ip_addr_or_domain:8899
访问网页,8899 取决于上面配置的)
docker compose up -d
停止容器
docker compose down
查看容器日志($myserve
改成容器名(container_name),这个例子是 smokeping)
docker logs $myserve
第四部分:有些项目还需要配置一些文件,这部分位置一般在第三部分和第二部分中间,根据实际说明操作。
systemd 相关
使用 systemd
守护进程,它能实现程序的后台运行、开机自启、崩溃重启等。Docker 也是它管理的,或者说, Debian 系的进程都是它管理的。
使用它,只需要创建一份配置文件放在 /etc/systemd/system
,如下,创建 prometheus.service
文件,文件名随意:
sudo vim /etc/systemd/system/prometheus.service
将配置的内容复制进去,这个根据说明,可能需要改 User、Group、ExecStart
[Unit]
Description=Prometheus
Wants=network-online.target
After=network-online.target
[Service]
User=prometheus
Group=prometheus
Type=simple
Restart=on-failure
RestartSec=5s
ExecStart=/usr/local/bin/prometheus \
--config.file /etc/prometheus/prometheus.yml # 省略了一些内容
[Install]
WantedBy=multi-user.target
说明:
ExecStart
:就是在终端手动运行程序的命令,只不过要用绝对路径。
配置文件创建好后,先重新加载 systemctl
生效。
sudo systemctl daemon-reload
注意,以下命令最后以配置文件名称结尾,这里是 prometheus,实际使用时要修改的,任何目录下都可以运行
这条既设置了开机自启,也使得程序立即启动运行
sudo systemctl enable --now prometheus
如果先不想开机自启,使用这个启动程序
sudo systemctl start prometheus
如果想取消开机自启,使用这个启动程序
sudo systemctl disable prometheus
还想立马停止程序运行:
sudo systemctl stop prometheus
重启
sudo systemctl restart prometheus
查看状态,按一下 q 退出
sudo systemctl status prometheus
常用的就上面几个,就几个单词有变化,很好理解
显示所有的 systemctl 日志,这个是多个服务混合的,一般在刚启动完成一个 service 的时候进行查看比较方便
journalctl -f
单独看一个
journalctl -u 服务名
寻求帮助之前
推荐先问 ChatGPT 等大语言模型,它们懂得比我多。
邮箱: com2fly@163.com
原文链接: https://yanh.tech/2023/07/preamble/
版权声明:本博客所有文章除特別声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来源 承飞之咎 (yanh.tech) 。
如果你认为我的文章有帮助,欢迎使用 RSS 订阅,也欢迎留言指正。