日志
- 2023-04-15:新增Portainer的日常使用建议。
前言
前面我们学习了NPM
、ddns-go
和bitwarden的安装。今天我们要安装一个管理docker应用的docker应用——Portainer。Portainer的界面差不多是这样的:
我觉得它在进行程序调试和查看日志时比较方便;而且它也比较有利于向大家展示docker服务的一些结构。
以后会慢慢地提到它的简单用法。我们先安装它吧。
测试平台
uname -a # Linux VM-12-8-ubuntu 5.4.0-42-generic #46-Ubuntu SMP Fri Jul 10 00:24:02 UTC 2020 x86_64 x86_64 x86_64 GNU/Linux
docker --version # Docker version 20.10.5, build 55c4c88
docker-compose --version # docker-compose version 1.28.6, build 5db8d86f
安装Portainer
Portainer是一个管理Docker程序的后台。建议你在安装好NPM和bitwarden后要马上安装它。
它的安装也很简单:
# 提前拉取镜像
docker pull portainer/portainer-ce
# 开放目标端口,我们这里用9000。你应该改一个别的端口。
sudo ufw allow 9000 comment 'portainer' && sudo ufw reload
# 安装Portainer
docker run -d \
--restart=unless-stopped \
-p 9000:9000 `#改自己喜欢的端口号` \
-v /var/run/docker.sock:/var/run/docker.sock \
--name portainer \
portainer/portainer-ce
NPM设置
不了解Nginx Proxy Manager用法的小伙伴,请看《Docker系列 两大神器NPM和ddns-go的安装》。
通过ddns-go或者域名托管后台解析一个域名example.com
。
NPM反代http://172.17.0.1:9000
。无特殊设置。
访问https://example.com
即可访问。
刚开始会要求你设置帐户和密码。用bitwarden记录即可。
日常使用
目前使用的是
Community Edition2.17.0
版本
Stack
我比较喜欢在Portainer里观察Stack的情况:
Container
可以很方便地查看某个docker容器的日志等:
Image
建议小伙伴将未被使用的image(sha256编号后有一个Unused
标签)删除以节省空间:
有时候,我们可能需要获得某个版本的image。这时,可以获得image的sha265信息:
docker inspect kerwin1202/chatgpt-web
输出结果会包含:
"Id": "sha256:568e3b2dc343b360de7e01a073c2174255c49bb0c3b8457559911df25b80330b",
"RepoTags": [
"kerwin1202/chatgpt-web:latest"
],
"RepoDigests": [
"kerwin1202/[email protected]:7377d2bcfcf1c37e928bb330e98adb481cf8aa0b9230d19cf6c5f5ab2a7d8201"
],
其中这里的@sha256:xxx
可以用于下载特定版本的image:
docker pull kerwin1202/[email protected]:7377d2bcfcf1c37e928bb330e98adb481cf8aa0b9230d19cf6c5f5ab2a7d8201
此时,下载到后台的image通常是没有tag的:
你可以添加tag:
当然,这些用法并不常规,仅建议在某些开发中的不太稳定的项目使用这种策略。大多数情况下,我们都是使用最新版。
小结
基本上是这样,没啥特别的。它的用途以后再慢慢展示吧!
---------------
完结,撒花!如果您点一下广告,可以养活苯苯😍😍😍
提问,为何这里直接用docker命令,不用docker-compose了?因为官方只给了docker命令吗ヾ(≧∇≦*)ゝ还有为什么官方给了两个端口的转发(8000和9443),但这里只用到一个9000?
因为感觉这个应用比较简单,而且也没有特别的目录或文件要挂载(-v的那个是docker的系统文件);而且这个命令是我较早期是写的,那个时候自己还不会用docker-compose,哈哈!所以就这样用了。至于2个端口的问题,你可以试试看,我还没试过ヾ(≧∇≦*)ゝ 自己折腾下呗!我目前的用法好像没啥问题。我平时也只用它看一下,我一般都是用命令行比较多୧(๑•̀⌄•́๑)૭
找到一个关于9000和9043的解释:https://docs.portainer.io/release-notes#breaking-changes-2
还有8000是optional的:https://docs.portainer.io/v/ce-2.11/start/install/server/docker/linux#introduction
我试着把官网的docker命令翻译成了docker-compose,目前可以登录,暂时没有问题。版本是2.13
这个视角不错。对于某些场景,比如代理远程的Portainer时,9443或许是一个更好的选择。如果与Nginx Proxy Manager联用没有重定向问题,其实9443也可以。目前,在我的应用场景中,由于使用Nginx Proxy Manager反代地址http://127.0.0.1,用9000这个http端口足矣。8000端口是开tcp隧道的,一时想不出有什么场景。谢谢大佬的测试!
docker-compose的应用场景就是多容器的编排,单容器应用没必要吧,效果都一样
你觉得哪个方便、哪个好用,就用那个即可。条条大道通罗马。
我以前也只用过docker命令,看了博主的文章之后觉得docker-compose的可读性挺好的。而且用来备份安装方式也是不错的,当然理论上也可以把docker命令给备份了?,但那样的话就得是好几条pull和run,感觉不如docker-compose简洁和易读。