预准备
我使用的是腾讯云的轻量服务器,在购买时就选择了预置
docker,买好后首先重置登录密码,然后直接使用vscode的SSH Remote插件,来远程登录服务器docker compose 安装
找到docker官网文档
因为我的是
centos系统,所以使用以下命令安装sudo yum install docker-compose-plugin
portainer安装
Docker Portainer 是一款容器管理工具,它是基于 web 的 Docker 容器管理工具。使用 Portainer,用户可以轻松地管理和部署 Docker 容器和应用程序。Portainer 提供了易于使用的用户界面,支持创建和管理 Docker 容器、镜像、网络和卷,它也支持对 Docker 群集进行管理,支持本地和远程 Docker 管理。不需要掌握 Docker 命令行,也可以轻松了解和使用 Docker 的各种基本功能。docker run -d -p 8000:8000 -p 9000:9000 --name portainer \ --restart=always \ -v /var/run/docker.sock:/var/run/docker.sock \ -v /root/docker_data/portainer/data:/data \ portainer/portainer-ce:latest
使用上面命令安装,同时因为我们暴露了
9000端口,因此我们需要在服务器安全组放开该端口,让9000允许访问然后访问服务器
IP + 9000 端口即可因为我是先运行命令启动服务再放开的
9000端口,启动服务时会因为端口未开放而导致异常,打开上面地址访问时会报错,按照下面命令重启一下服务即可sudo docker restart portainer
Nginx Proxy Manager 安装
Nginx Proxy Manager 是使用 Nginx 和 Docker 实现的一个代理服务器管理面板,可用于管理多个网站或应用程序的反向代理和 SSL/TLS 证书。通过 Nginx Proxy Manager,用户可以轻松地创建、配置、监控和管理代理服务器,从而实现更加安全、高效、可靠的应用程序部署官网提供了以下命令供安装
version: '3.8' services: app: image: 'jc21/nginx-proxy-manager:latest' restart: unless-stopped ports: # These ports are in format <host-port>:<container-port> - '80:80' # Public HTTP Port - '443:443' # Public HTTPS Port - '81:81' # Admin Web Port # Add any other Stream port you want to expose # - '21:21' # FTP # Uncomment the next line if you uncomment anything in the section # environment: # Uncomment this if you want to change the location of # the SQLite DB file within the container # DB_SQLITE_FILE: "/data/database.sqlite" # Uncomment this if IPv6 is not enabled on your host # DISABLE_IPV6: 'true' volumes: - ./data:/data - ./letsencrypt:/etc/letsencrypt
但是我们也可以直接使用上面已创建的
portainer面板来安装,将上面命令,转换成如下两张截图所示的参数配置直接点击创建我们就可以看到已经有一个
npm的container 服务在运行了使用面板创建的容器想对比于命令创建,我们有一个美观的
UI界面,可以轻松查看container信息、查看logs以及进入容器,如下图,非常方便,当然通过命令创建的可以结合vscode的docker插件使用转发配置
上一步
npm安装好后,我们就可以通过IP + 81端口访问了,注意同样需要在服务器安全组放开81端口访问权限,界面如下上面我们访问
portainer是通过ip + 9000端口,我们其实可以给这个应用分配个单独的二级域名来提供服务,我们可以新建如下配置同时勾选上,强制
ssl, 并选择自动生成证书配置好后尝试使用域名访问 https://portainer.codefe.top/ 但是报错了,这时候我们可以通过
portainer登录到容器内查看失败日志,如下看原因是因为没查找到域名
dns解析记录导致创建SSL证书失败, 因为上面配置了proxy detail还不够,还需要在腾讯云管理台再次配置DNS解析记录,如下图,配置好后即可通过域名正常访问