前言
我们在搭建docker项目的时候,通常会有两种形式,
一种是类似这样的命令行模式的(比如zfile):
docker run -d --name=zfile --restart=always \
-p 8080:8080 \
-v /root/data/docker_data/zfile/conf:/root/.zfile \
-v /root/data/docker_data/root/zfile/db:/root/.zfile-new/db \
-v /root/data/docker_data/root/zfile/data:/root/zfile/data \
stilleshan/zfile
还有一种是docker-compose的形式的(比如qBittorrent):
version: "2"
services:
qbittorrent:
image: linuxserver/qbittorrent
container_name: qbittorrent
environment:
- PUID=1000
- PGID=1000
- TZ=Asia/Shanghai # 你的时区
- UMASK_SET=022
- WEBUI_PORT=8081 # 将此处修改成你欲使用的 WEB 管理平台端口
volumes:
- /root/data/docker_data/qBittorrent/config:/config # 绝对路径请修改为自己的config文件夹
- /root/data/docker_data/qBittorrent/downloads:/downloads # 绝对路径请修改为自己的downloads文件夹
ports:
# 要使用的映射下载端口与内部下载端口,可保持默认,安装完成后在管理页面仍然可以改成其他端口。
- 6881:6881
- 6881:6881/udp
# 此处WEB UI 目标端口与内部端口务必保证相同,见问题1
- 8081:8081
restart: unless-stopped
很明显,相比前一种方式,后一种docker-compose
的方法更简单一些,所有配置文件都在docker-compose.yml
里头,我们只需要在这个文件夹下,运行docker-compose up -d
就可以了,搬家换服务器的时候,也把这份配置文件带上,可以很轻松地完成服务器迁移工作。
那么,有没有办法,把前面的那种类似命令行的模式,改成docker-compose的模式呢?其实,仔细观察,就会发现,他们是一个东西,我们没有深入研究docker compose
,也能猜到,docker-compose
的文件,其实就是把命令行的那串东西,通过一定的规则,转换
而来的。
你对照着,其实也能大概写出一个雏形。
而今天,我们要分享的,就是利用工具,快速完成这个转换
的动作!
1. 演示
项目站点:https://www.composerize.com/
GitHub地址:https://github.com/magicmark/composerize
好了,其实这已经是今天视频的核心内容了,如果你不像自己麻烦搭建,后面的可以不用看了。
如果你担心这个网站哪天没了,或者是他的服务器崩了,导致服务不可用,那么我们来看看自己怎么搭建一个这样的服务。
2. 自建
2.1 搭建环境
- 服务器:
腾讯香港轻量应用服务器24元/月VPS一台,本期搭建用的是Vultr的服务器,按小时计费,可随时销毁(建议大家也最好是选非大陆的服务器)(腾讯轻量购买链接)Hetzner注册免费得25欧试用金有效期一个月 - 系统:Debian 10(DD脚本 非必需DD用原来的系统也OK)
域名一枚,并做好解析到服务器上(域名购买、域名解析 视频教程)- 安装好Docker、Docker-compose(相关脚本)
【非必需】提前安装好宝塔面板海外版本aapanel,并安装好Nginx(安装地址)【非必需本教程采用】安装好Nginx Proxy Manager(相关教程)
2.2 搭建视频
YouTube:https://youtu.be/hH-ezOV4lY0
哔哩哔哩【高清版本可以点击去吐槽到B站观看】:
其实很简单。
首先我们要安装一个NPM(注意,这里的NPM是真的NPM,不是指Nginx Proxy Manager)
npm
是Node.js
默认的、用JavaScript
编写的软件包管理系统。 维基百科
然后用NPM来安装。
apt update -y
sudo apt install npm -y
npm install composerize -g # -g 表示全局安装
使用方法:
composerize docker run -d --name tinypin -p 3030:3000 -v "$(pwd)/data:/data" --restart=unless-stopped slynn1324/tinypin
3. 注意事项
遇到部分复杂的命令,可能会转换不成功,例如:
docker run -d --name=Whiteboard -p 8080:8080 --memory=2g --cpus=1 --restart=always --net=vlan100 --ip=192.168.100.17 rofl256/whiteboard
转换结果如下:
version: '3.3'
services:
whiteboard:
container_name: Whiteboard
ports:
- '8080:8080'
restart: always
network_mode: vlan100
image: rofl256/whiteboard
可以发现,丢失了很多东西 = =
项目还在维护中,希望能越来越好。
4. 最后
祝大家用得开心,有问题可以去GitHub提Issues,也可以在评论区互相交流探讨。
同时,有能力给项目做贡献的同学,也欢迎积极加入到项目中来,贡献自己的一份力量!
5. 鸣谢
捐赠列表:
时间 | 小伙伴ID | 平台 | 金额 | 小伙伴留言 |
---|---|---|---|---|
2022-05-01 | B*r | 微信 | 20 RMB | 大佬,我可以加你吗! (这位没有留联系方式,很尴尬) |
2022-05-03 | **成 | 支付宝 | 30 RMB | 感谢up主提供rss服务 |
2022-02-07 | old_drive | B站 | 4.03贝壳 | 充电 |
2022-03-10 | 环球公司朱总 | B站 | 4.03贝壳 | 充电 |
2022-03-20 | 深刻小黄瓜 | B站 | 4.03贝壳 | 充电 |
2022-03-27 | 眼里全是珍惜 | B站 | 3.36贝壳 | 充电 |
2022-04-26 | ryanwang-ya | B站 | 59.14贝壳 | 充电 |
2022-05-03 | vivianglia | B站 | 0.68贝壳 | 充电 |
2022-05-09 | **铭 | 支付宝 | 66 RMB | 感谢您为中国教育做出的贡献 哈哈哈 |
2022-05-17 | **兰 | 支付宝 | 15 RMB | B站 |
2022-05-19 | 尼禄ばら | B站 | 3.36贝壳 | 充电 |
2022-05-20 | 新星Starman | B站 | 4.47贝壳 | 充电 |
非常感谢上面的小伙伴给咕咕充电!
YouTube的小伙伴可以发现现在视频下方有个感谢
功能,也可以给咕咕充电了!
购买并发送
之后,你的评论在评论区就会显示彩色 = =
大家的鼓励是咕咕持续分享的动力!
6. 参考资料
https://github.com/magicmark/composerize
---------------
如何觉得文章内容不错,欢迎点击一下广告,支持一下咕咕😍😍😍
原创文章,作者:Roy,如若转载,请注明出处:https://iwanlab.com/composerize-docker-cli/