2018/01/24

[Docker] 使用外部Docker Host來執行吧 (synology, ubuntu)

TL;DR

用了一陣子的Docker,
最近才知道原來執行Container的主機可以不是本機。
原來Docker是Server/Client架構。 Orz...

因為我的主機是Windows 10 Home
沒有Hyper-V可以跑Docker Native
用Virtual Box有時候有些奇怪的問題出現
就想把執行Container的工作丟給真正的Linux主機


Synology Docker

由於Synology有Docker套件可以用
就找了如何連接NAS的Docker來用

在這篇文章找到修改的方法
https://github.com/docker/machine/issues/1200
※修改NAS檔案可能造成悲劇,請小心

修改
/var/packages/Docker/etc/dockerd.json

加入 
"hosts": ["unix:///var/run/docker.sock", "tcp://0.0.0.0:2375"],







重啟 NAS 的 Docker
$ /var/packages/Docker/scripts/start-stop-status stop
$ /var/packages/Docker/scripts/start-stop-status start
執行 sudo docker version 看是否正常


這樣NAS的部分就結束了

接下來到本機電腦
Linux 用 export DOCKER_HOST=tcp://ip:2375
Windows 用 set DOCKER_HOST=tcp://ip:2375
也可以用環境變數設定

同樣用docker version確認是否一切安好

Ubuntu

Ubuntu我用Raspberry pi 3測完速度很悲劇就砍了
以下是憑印象,如有出入一定是正常的

安裝好的Docker是無法由外部連接的
新增 /etc/systemd/system/docker.service.d/docker.conf 檔案
(docker.service.d 目錄要自己建立)
https://docs.docker.com/engine/admin/#configure-the-docker-daemon

檔案內容
[Service]
ExecStart=
ExecStart=/usr/bin/dockerd -H tcp://ip:2375

重啟Docker Service
$ service docker restart

確認是否安好
$ docker version