前陣子因為幫廠商解個問題,所以嘗試在別的雲端供應商設置新的VPS server,剛好有機會記錄一下配置的過程。

在付款完成後順利拿到主機的IP及密碼,通常這種雲端主機都已經開通ssh連線,也就是直接使用Putty就可以連進主機。我所選擇的作業系統是Debian 10,如果不曉得自己的作業系統版本,也可以使用下面指令查詢:

~$cat /etc/os-releaseCode language: PHP (php)

因為預設是使用root登入,所以還是建立一個平常使用的帳號比較安全。假設我建立一個帳號叫NEWUSER。這邊使用的指令是adduser,比較簡單且會順便在/home資料夾下面創建新使用者自己的母資料夾。

~#adduser NEWUSERCode language: CSS (css)

接著使用下面的指令授與這個新使用者有權限可以sudo

~#usermod -aG sudo NEWUSERCode language: CSS (css)

本來想說可以切換成新使用者並使用sudo來做後續設定,但發現這台主機預設並沒有安裝sudo,只好切回root並且安裝sudo。

那當然,安裝前先更新app的列表

~#apt updateCode language: CSS (css)

接著安裝sudo

~#apt-get install sudoCode language: CSS (css)

然後就切換到我剛剛新建立的使用者NEWUSER

再來安裝nano,我習慣用nano編輯,及vsftpd方便使用ftp傳遞檔案。

~$sudo apt-get install nano
~$sudo apt-get install vsftpdCode language: JavaScript (javascript)

先把原本的config檔備份

~$sudo cp /etc/vsftpd.conf /etc/vsftpd.conf_defaultCode language: PHP (php)

接著修改vsftpd.conf設定檔,因為是測試用,我就沒做太多修改了,大致如下:

anonymous_enable=NO
local_enable=YES
write_enable=YES

設定檔修改完後,啟動vsftpd

~$sudo systemctl start vsftpd
~$sudo systemctl enable vsftpdCode language: PHP (php)

接著安裝docker,這邊我就省略了,因為官方的安裝流程是最清楚的https://docs.docker.com/engine/install/debian/

docker compose也是必備,安裝流程一樣官方最清楚https://docs.docker.com/compose/install/

接下來是關於docker的網路,因為我有幾個container之間可能需要互相溝通,若他們能安裝在同一個bridge網域之下會最方便,我自己的經驗是自己要先建立一個獨立的bridge network

使用以下指令建立一個叫做my_network的bridge網域

~$sudo docker network create -d bridge my_networkCode language: PHP (php)

但這次跑出以下錯誤訊息:

user specified IP address is supported only when connecting to networks with use r configured subnetsCode language: JavaScript (javascript)

先查詢一下目前系統內的bridge有哪些,其實也只有預設的bridge並使用172.17的IP

$sudo docker inspect bridge

----------------------------------------------
        "EnableIPv6": false,
        "IPAM": {
            "Driver": "default",
            "Options": null,
            "Config": [
                {
                    "Subnet": "172.17.0.0/16",
                    "Gateway": "172.17.0.1"
                }
            ]
        },Code language: PHP (php)

所以我創建一個與預設172.17不同的bridge網域。使用修改指令如下,指定subnet=172.18.0.0/16,就可以了成功建好了

~$sudo docker network create -d bridge my_network --subnet=172.18.0.0/16Code language: PHP (php)

暫時大概就是以上這樣,基本上就是創立使用者,安裝vsftpd讓我們接下來能使用ftp工具與主機之間傳遞資料,最後安裝並設定好docker,未來很多服務都會在docker虛擬環境下作業。

當然還有防火牆的配置之類的,那就之後再說吧。