预准备
我使用的是腾讯云的轻量服务器,在购买时就选择了预置
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解析记录,如下图,配置好后即可通过域名正常访问