只需单击几下即可启动LAMP和其他数百种Web应用程序

图片 在上一篇文章中,我谈到了SSHeller如何帮助您快速轻松地部署OpenVPN服务器。 在1.1.0版中,添加了另一个插件Docker
我想立即警告您,如果您在控制台下把手放开,并且通过命令行控制Docker似乎方便直观,您无需进一步阅读,也不需要在注释中写任何内容,我已经知道您不需要SSHeller。


谁需要它? 首先,Web应用程序开发人员以及需要快速轻松地升级某种服务的每个人,无论是网站,博客还是即兴文件共享服务。


如何运作


我们需要具有几乎所有现代Linux发行版的服务器。 但是,与OpenVPN不同,对于Docker,我建议使用Debian 9Ubuntu 18.04 。 使用FedoraCentos情况要差一些,因为您需要安装更多的软件包,另外配置自动运行,并且使用存储有所不同。


最重要的是,它应该是物理机或虚拟机,而不是容器(LXC,OpenVZ将不起作用)。 而且您需要SSH访问。 在上一期出版物中,有关于如何在DigitalOcean中注册和启动服务器的详细说明,最后,对Linode的详细说明略少一些。 这两种服务都提供简单的机器,每月5美元,并在通过推荐链接进行注册时提供奖金。 首先,这已经足够了。


获得服务器的IP,用户名和密码后,即可安装SSHeller。 您可以从GitHub上的发行版下载它,其中有适用于macOS,Windows和Linux的版本。 启动后,添加我们的服务器,连接到它并转到Docker插件。



如果尚未在服务器上安装Docker,则可以通过单击“ Install按钮来执行此操作。
在不到一分钟的时间内,安装完成,将打开一个报告,您可以 读取并关闭,在主窗口中将有一个容器,卷和新容器的启动形式的列表。



主要功能


集装箱下水


在工作区的最底部是新容器的启动块。 它显示:


  • 从上面的列表中选择的卷将连接到容器(如果支持)
  • 再次在容器中为应用程序设置的密码(如果支持)
  • 容器图像选择
  • 和图像标签选择

您可以选择任何正式的Docker映像以及一些其他映像。 他们的列表设置在文件https://github.com/delfer/ssheller/blob/master/plugins/docker-profiles.json中 ,发布时为:


  • jwilder / nginx-proxy-自动配置的Nginx通过域名而不是端口访问容器
  • panubo / vsftpd -FTP服务器
  • coderaiser / cloudcmd-用于访问文件的WEB界面
  • webdevops / php-apache-dev-构建Apache + PHP +开发模块(显示错误)
  • webdevops / php-apache-为“销售”构建Apache + PHP +模块(不显示错误)
  • webdevops / php-nginx-dev-构建Nginx + PHP +开发模块(显示错误)
  • webdevops / php-nginx-为“销售”构建Nginx + PHP +模块(不显示错误)

除了docker-profiles.jsonparameters部分)中列出的内容外,大多数容器都会忽略Password字段的内容:


  • panubo / vsftpd-管理员身份进行FTP连接的密码
  • coderaiser / cloudcmd-管理员身份登录的密码
  • mysql / mariadb / postgres / influxdb-管理员身份连接到数据库的密码
  • rabbitmq / couchdb / orientdb-管理员身份连接的密码

重要功能:


  • 选择图像后,标签会自动加载。 可用搜索
  • 该容器将在其作者指定的端口上可用。 如果端口繁忙,则将选择第一个空闲端口。
  • 如果DNS中有相应的条目,则该容器将在<容器名称>。<服务器域>上可用。
  • 如果卷是由镜像的作者指定的,或者是在docker-profiles.json中指定的,则将为该容器创建卷(部分

有用的提示:


  • 首先需要启动jwilder / nginx-proxy ,以便占用端口80
  • panubo / vsftpd需要最后运行,因为它启动时会更改文件夹的权限,以便对其具有完全访问权限
  • 最好使用带有latest-alpine标签或latest-alpine标签的图像-它们的工作方式与普通图像相同,但是由于重量减轻,加载速度更快
  • 如果您需要MySQL-更好地使用MariaDB ,除非您当然不能确定MariaDB不适合您
  • 如果您使用PHP运行某些程序,则可能不需要fpm ,但需要使用apache

附加信息
单击RUN按钮后,一旦启动容器,将出现一个报告窗口,其中将显示已完成的docker run 她会讲很多有趣的事情,说明所有事情的实际安排方式。


域名访问


如果您使用Web界面运行多个容器,例如Wordpress和NextCloud,并且不想通过指定IP和端口而是通过域名来访问它们,则需要满足两个简单条件:


  1. 成为第一个运行jwilder / nginx-proxy的人
  2. 有通配符DNS记录


即 例如,如果您拥有example.com域,则需要向其中添加*类型A记录并指定服务器IP。 在这种情况下,正在运行的worpdress容器将在http://wordpress.example.com上可用


而且,如果没有域-没问题,则可以使用nip.io服务-无需注册或添加条目。 例如,如果您的服务器的IP为172.104.129.183 ,并且正在运行 jwilder / nginx-proxynextcloud ,则后者将在http://nextcloud.172.104.129.183.nip.io上可用。


一卷运行两个容器


例如,经常发生一个容器发布文件( nginx ),第二个容器下载( panubo / vsftpd )的情况。 或者需要第二个来查看/下载第一个的内容。


例如, Jenkins在启动后要求输入文件中记录的密码。



  1. 启动詹金斯
  2. jenkins_var_jenkins_home其音量jenkins_var_jenkins_home
  3. 指定访问密码
  4. 启动代码提升器/ cloudcmd
  5. 开门 http:// coderaiser-cloudcmd 。<domain>,输入步骤 3中的admin登录名和密码
  6. 我们看一下詹金斯的密码



容器互动


另外,您可能需要从一个容器连接到另一个容器。 例如,在安装过程中, wordpress会要求您指定用于连接数据库的参数:服务器地址( host )和端口。


localhost不适用于容器之间的交互。


通常,您需要指定服务器的外部IP地址和显示的端口
容器列表中箭头( -> )之前。 为简单起见,添加了此功能而不是服务器IP地址,仅指定单词host


除了MySQL,PostgreSQL,MongoDB,Redis,memcached,Tomcat,InfluxDB,CouchDB等也可以派上用场。


使用范例


文件共享


  1. 运行Nginx:高山
  2. 输入Web界面的管理员密码
  3. 选择nginx_usr_share_nginx_html
  4. 启动Coderaiser / cloudcmd:Latest-alpine

现在,您可以转到http:// <服务器地址>:8000下载授权文件,并且可以通过http:// <服务器地址>获得直接链接。 您只需要指定文件的完整路径。


WordPress的


  1. 我们发明并输入数据库密码
  2. Mariadb 推出
  3. 运行wordpress:apache
  4. 我们转到地址http:// <服务器地址> ,开始安装并指定用于连接到DBMS的参数:
    • 数据库名称: db
    • 用户名: admin
    • 密码-第1段中输入的密码
    • 数据库服务器: host
    • 表前缀-任何

台灯


  1. 我们发明并输入数据库密码
  2. Mariadb 推出
  3. 运行webdevops / php-apache-dev:alpine
  4. 选择卷webdevops-php-apache-dev_app
  5. 我们发明并输入FTP服务器的密码
  6. 运行panubo / vsftpd

现在,您可以将.php文件上传到ftp:// <服务器地址>并通过转到地址http:// <服务器地址>来运行它们


聚苯乙烯


并非所有容器都在应用程序中可用,并且某些可用容器在没有其他设置的情况下无法工作-在GitHub上编辑文件并发送您的请求请求。 如果您不知道如何打开问题 。 这将帮助您开发项目。


README文件中提供了其他支持项目的方法以及许多有用的信息。

Source: https://habr.com/ru/post/zh-CN413743/


All Articles