Portainer is a simple UI management for docker. It’s easy to use and all your resources will show you friendly. It’s very light especially using a VPS which has only 512MB RAM.
In this tutorial, we will make a LNMP server over the docker container by Portainer.
What Will I Learn?
You will learn how to setup portainer
You will learn how to create a custom network with the docker
You will learn how to create a container
Requirements
Ubuntu 16.04 (64-bit)
Base bash knowledge
Base docker knowledge
Built a normal LNMP environment before
Difficulty
Intermediate
Tutorial Contents
Setup Portainer
1.Create a volume to save the portainer data. You also can bind a folder.
-p 9000:9000 means making a port map. Portainer needs port 9000 opening.
-v /var/run/docker.sock:/var/run/docker.sock This parameter is important if you want portainer to manage your local docker.
3.Visit http://localhost:9000 in your browser and input your username and password to create the administrator user.
4.In next step select the Local option and press Connect button to finish setup.
5.When you see the main page, the installation is over.
Create a new network
The container link is out of date now. The portainer doesn’t support the container link any more. So we need to create a new bridge network and bind static IPs to every container we create. Then each container can communicate with each other through the static IPs.
1.Get in the Networks page and click the Add network button.
2.Input the required information like the snapshot and then click the Create the network button.
Add MariaDB container
In this tutorial, we use the App Template to create the MariaDB container.
1.Create a folder to storage the MariaDB database file
1
$ sudo mkdir -p /data/mariadb
2.Enter the App Template page and select the MariaDB option.
3.Input required information with snapshot (When you clicked the Deploy the container button, you need waiting a while. Because docker is pulling the portainer image.)
4.Because the App Template doesn’t set the static IP, we need set it with editing the container configurations manually. Open the container detail page:
5.Click the Duplicate/Edit button
6.Find the Advanced container settings section, select the Network tab, input a static IP into the IPv4 address, click Deploy the container.
7.Portainer will mention you whether if to replace the original container. Click Replace.
8.If we want to connect to the database on the host, we can run this command
set nocompatible " be iMproved, required filetype off " required
" set the runtime path to include Vundle and initialize set rtp+=~/.vim/bundle/Vundle.vim call vundle#begin() " alternatively, pass a path where Vundle should install plugins "call vundle#begin('~/some/path/here')
" let Vundle manage Vundle, required Plugin 'VundleVim/Vundle.vim'
" Add your plugins to this place 在这里添加你的插件
" 在这行前添加你的插件 call vundle#end() " required filetype plugin indent on " required " To ignore plugin indent changes, instead use: "filetype plugin on " " 以下是常用命令 " :PluginList - lists configured plugins " :PluginInstall - installs plugins; append `!` to update or just :PluginUpdate " :PluginSearch foo - searches for foo; append `!` to refresh local cache " :PluginClean - confirms removal of unused plugins; append `!` to auto-approve removal " " see :h vundle for more details or wiki for FAQ " 在该行后添加自己的配置信息
colorscheme peachpuff set guifont=Monaco:h10 " 字体 && 字号 set expandtab " 设置tab键换空格 set tabstop=4 " 设置tab键的宽度 set shiftwidth=4 " 换行时行间交错使用4个空格 set autoindent " 自动对齐 set backspace=2 " 设置退格键可用 set cindent shiftwidth=4 " 自动缩进4空格 set smartindent " 智能自动缩进 set ai! " 设置自动缩进 set nu! " 显示行号 set showmatch " 显示括号配对情况 "set mouse=a " 启用鼠标 set ruler " 右下角显示光标位置的状态行 set incsearch " 查找book时,当输入/b时会自动找到 set hlsearch " 开启高亮显示结果 set incsearch " 开启实时搜索功能 set nowrapscan " 搜索到文件两端时不重新搜索 set nocompatible " 关闭兼容模式 set vb t_vb= " 关闭提示音 "set cursorline " 突出显示当前行 hi CursorLine cterm=NONE ctermbg=darkred ctermfg=white hi CursorColumn cterm=NONE ctermbg=darkred ctermfg=white set hidden " 允许在有未保存的修改时切换缓冲区 syntax enable " 打开语法高亮 syntax on " 开启文件类型侦测 filetype indent on " 针对不同的文件类型采用不同的缩进格式 filetype plugin on " 针对不同的文件类型加载对应的插件 filetype plugin indent on " 启用自动补全 set writebackup " 设置无备份文件 set nobackup set autochdir " 设定文件浏览器目录为当前目录 set nowrap " 设置不自动换行 set foldmethod=syntax " 选择代码折叠类型 set foldlevel=100 " 禁止自动折叠 set laststatus=2 " 开启状态栏信息 set cmdheight=2 " 命令行的高度,默认为1,这里设为2 " 设置编码 set fenc=utf-8 set encoding=utf-8 set fileencodings=utf-8,gbk,cp936,latin-1 " 解决consle输出乱码 language messages zh_CN.utf-8
==> Validating source files with sha256sums... frps.service ... FAILED frpc.service ... FAILED frps@.service ... FAILED frpc@.service ... FAILED ==> ERROR: One or more files did not pass the validity check! :: failed to verify frp integrity
firewalls: main: pattern: ^/ form_login: provider: fos_userbundle csrf_token_generator: security.csrf.token_manager # if you are using Symfony < 2.8, use the following config instead: # csrf_provider: form.csrf_provider