在Ubuntu 20.04 | 18.04上安装Dokku(Docker PaaS)
Dokku是可扩展的开源平台即服务,可在我们选择的单个服务器上运行。如果我们曾经使用过Heroku,请将其视为Heroku的托管版本。我们可以在单个服务器上运行基于Docker的平台即服务。在本教程中,我们将介绍在Ubuntu 20.04 | 18.04 Linux系统上Dokku PaaS的安装。
从本文更新时开始,支持的操作系统为:Ubuntu 16.04/18.04/20.04 x64Debian 9+ x64
在Ubuntu上安装Dokku的准备工作
已安装并更新了Ubuntu 20.04 | 18.04系统Docker引擎至少1GB的系统内存已设置FQDN的服务器可以位于DNS或者/etc/hosts上
有两种在Ubuntu 20.0418.04上安装Dokku的方法:使用引导脚本从Dokku apt仓库安装
我们将考虑在Ubuntu 20.04 | 18.04 Linux服务器上安装Dokku的两种方法。我建议从apt信息库安装Dokku,以便我们可以了解正在发生的事情。
使用hostnamectl命令设置系统主机名:
$sudo hostamectl set-hostname dokku.theitroad.local
确保系统已更新和升级:
sudo apt update sudo apt upgrade -y sudo reboot
方法1:从apt储存库在Ubuntu 20.04 | 18.04上安装Dokku
Dokku软件包可在packagecloud.io.dokkurepository上获得。首先导入存储库GPG密钥以信任软件包:
sudo apt update sudo apt install -y apt-transport-https wget -nv -O - https://packagecloud.io/dokku/dokku/gpgkey | sudo apt-key add
密钥导入输出:
2017-10-08 19:40:09 URL:https://d28dx6y1hfq314.cloudfront.net/505/623/gpg/dokku-dokku-FB2B6AA421CD193F.pub.gpg?t=1602179109_89e21c60fdf77e8ab2181ba23ae0dc910985dfbb [3937/3937] -> "-" [1] OK
使用以下命令添加存储库:
OS_ID="$(lsb_release -cs 2>/dev/null || echo "bionic")" echo "deb https://packagecloud.io/dokku/dokku/ubuntu/${OS_ID} main" | sudo tee /etc/apt/sources.list.d/dokku.list
然后更新系统软件包列表:
sudo apt update
在Ubuntu 20.04 | 18.04上安装Docker Engine
我们可以安装Dokku支持的稳定版本的Docker或者边缘版本。
wget -nv -O - https://get.docker.com/| sudo bash
将用户帐户添加到Docker组:
sudo usermod -aG docker $USER newgrp docker
这是无人参与的安装,请等待其完成,然后确认已安装docker引擎版本:
$docker version Client: Docker Engine - Community Version: 19.03.13 API version: 1.40 Go version: go1.13.15 Git commit: 4484c46d9d Built: Wed Sep 16 17:02:52 2017 OS/Arch: linux/amd64 Experimental: false Server: Docker Engine - Community Engine: Version: 19.03.13 API version: 1.40 (minimum version 1.12) Go version: go1.13.15 Git commit: 4484c46d9d Built: Wed Sep 16 17:01:20 2017 OS/Arch: linux/amd64 Experimental: false containerd: Version: 1.3.7 GitCommit: 8fba4e9a7d01810a393d5d25a3621dc101981175 runc: Version: 1.0.0-rc10 GitCommit: dc9208a3303feef5b3839f4323d9beb36df0a9dd docker-init: Version: 0.18.0 GitCommit: fec3683
在Ubuntu 20.04 | 18.04上安装Dokku
一旦安装了docker,就可以继续在Ubuntu 20.04 | 18.04 LTS系统上安装Dokku。这是通过更新系统软件包并安装dokku
软件包来完成的:
sudo apt update sudo apt install dokku -y
通过apt
安装的依赖项包括:herokuishsshcommandplugn
当询问是否启用Web配置界面时,回答是
安装dokku还将为我们配置nginx并创建用于管理服务的systemd服务单元。安装输出摘要如下所示:
.... Adding user dokku to group adm Starting nginx (via systemctl): nginx.service. -----> Priming bash-completion cache Ensure proper sshcommand path Setting up dokku-installer Enabling dokku-installer Created symlink /etc/systemd/system/multi-user.target.wants/dokku-installer.service → /etc/systemd/system/dokku-installer.service. Created symlink /etc/systemd/system/graphical.target.wants/dokku-installer.service → /etc/systemd/system/dokku-installer.service. Starting dokku-installer Processing triggers for libc-bin (2.31-0ubuntu9.1) ... Processing triggers for ufw (0.36-6) ... Processing triggers for systemd (245.4-4ubuntu3.2) ... Processing triggers for man-db (2.9.1-1) ...
安装dokku依赖项:
sudo dokku plugin:install-dependencies --core
一个名为dokkuis的用户和组也添加到系统中,其主目录为/home/dokku。在将应用程序部署到Dokku时使用此用户帐户。
$id dokku uid=1001(dokku) gid=1002(dokku) groups=1002(dokku),4(adm),998(docker) $ls -la /home/dokku/ total 44 drwxr-xr-x 5 dokku dokku 4096 Oct 8 19:45 . drwxr-xr-x 4 root root 4096 Oct 8 19:43 .. drwxr-xr-x 2 dokku dokku 4096 Oct 8 19:45 .basher -rw-r--r-- 1 dokku dokku 220 Oct 8 19:43 .bash_logout -rw-r--r-- 1 dokku dokku 3771 Oct 8 19:43 .bashrc -rw-r--r-- 1 dokku dokku 0 Oct 8 19:43 .cloud-locale-test.skip drwxr-xr-x 2 dokku dokku 4096 Oct 8 19:43 .dokkurc -rw-r--r-- 1 dokku dokku 29 Oct 8 19:43 HOSTNAME -rw-r--r-- 1 dokku dokku 807 Oct 8 19:43 .profile drwxr-xr-x 2 dokku dokku 4096 Oct 8 19:43 .ssh -rw-r--r-- 1 dokku root 15 Oct 8 19:44 .sshcommand -rw-r--r-- 1 dokku dokku 29 Oct 8 19:43 VHOST
安装后,该服务应默认运行。服务的名称是dokku-installer.service
:
$systemctl status dokku-installer.service ● dokku-installer.service - Dokku web-installer Loaded: loaded (/etc/systemd/system/dokku-installer.service; enabled; vendor preset: enabled) Active: active (running) since Thu 2017-10-08 19:44:41 CEST; 6min ago Main PID: 14789 (python3) Tasks: 1 (limit: 2286) Memory: 8.3M CGroup: /system.slice/dokku-installer.service └─14789 python3 /usr/share/dokku/contrib/dokku-installer.py selfdestruct Oct 08 19:44:41 ubuntu systemd[1]: Started Dokku web-installer. Oct 08 19:44:41 ubuntu sudo[14817]: root : TTY=unknown ; PWD=/; USER=root ; COMMAND=/usr/sbin/ufw status Oct 08 19:44:41 ubuntu sudo[14817]: pam_unix(sudo:session): session opened for user root by (uid=0) Oct 08 19:44:41 ubuntu sudo[14817]: pam_unix(sudo:session): session closed for user root
确认是否已启用该服务以在启动时启动:
$systemctl is-enabled dokku-installer.service enabled
可以使用以下方法检查Dokku版本:
$dokku version dokku version 0.21.4
在Ubuntu 20.04 | 18.04上配置Dokku
安装完成后,请转到服务器IP,然后按照Web安装程序配置Dokku。
确认:将使用SSH公钥访问Dokku应用程序。为Dokku提供FQDN主机名以用于应用程序URL检查使用虚拟主机命名将应用程序以主机名部署在Dokku上
然后单击"完成设置"按钮以完成在Ubuntu 20.04 | 18.04上安装Dokku。
请注意,一旦保存设置,网络管理员将自行终止,我们应该可以运行或者部署到Dokku安装。
在Ubuntu 20.04 | 18.04上升级Dokku
要将Dokku升级到最新的稳定版本,请使用okku-update命令:
sudo dokku ps:stopall sudo apt update sudo apt install -qq -y dokku herokuish sshcommand plugn gliderlabs-sigil sudo sudo apt upgrade
使用上述命令升级Dokku不会影响正在运行的dokku,并且会自动为我们提供许多升级说明。如果要在升级后重建所有应用程序,请使用:
sudo dokku ps:rebuildall
安装Dokku插件
Dokku提供了一些插件来管理其他功能。全部可用onDokku有官方插件。这些插件的安装以root用户或者具有sudo特权的用户帐户在Dokku主机上完成。
请参阅以下示例:
安装PostgreSQL数据存储服务:
sudo dokku plugin:install https://github.com/dokku/dokku-postgres.git
安装MariaDB数据存储插件:
sudo dokku plugin:install https://github.com/dokku/dokku-mariadb.git mariadb
将应用程序部署到Dokku
既然我们已经在Ubuntu 20.04 | 18.04系统上安装了有效的Dokku,则可以开始部署应用程序了。我们可以阅读有关将应用程序部署到Dokku的综合教程。