Docker cli 連線到遠端的 dockerd daemon

docker 是 client/server 的架構 昨天在網路上看到一句話,大意是: docker 是 client / server 的架構, 由一個 docker cli 和 dockerd 的 daemon 組成 才赫然發現 docker 別有洞天吶。 原來每天在敲的 docker 指令都是在操控本機的 docker daemon。 如何連線到遠端的 docker daemon 有了上面那句話,就在想說是不是可以用我 local 的 docker cli 連線到其它機器的 dockerd。 今天馬上用我 virtualbox 中的 coreOS 進行測試一下。 dockerd port listen dockerd default 好像都沒有開啟 tcp port,必須在 dockerd 啟動時加入 -H 參數。 -H tcp://0.0.0.0:2375 如果是用 systemctl 控制 docker 你可以找到 docker.service,在腳本中加入 -H 參數。 以 coreOS 為例, 我的檔案在 /run/systemd/system/docker.service 修改完後,reload 並重啓...

June 4, 2019

Virtualbox 安裝 Coreos

到官網下載 coreOS ISO 檔 Booting CoreOS Container Linux from an ISO 如標題,這份 ISO 僅是開機片而已,並無安裝動作, 如何安裝的部分下面會提到。 VirtualBox 新增機器 選 Linux 64 bit 即可 掛載剛下載的 ISO 檔 開機 官網有說明最小的 RAM 必須要 2G,一開始沒注意我也是只開了 512,下面是記憶體不足時的反應。 512 G - 無限重開 1024 G - boot into emergency shell 2048 G - OK 使用ISO開機之後,並不會把檔案裝進硬碟,在上面進行任何操作,重開機後都會消失。 安裝到硬碟 這個步驟要使用 coreos-install 這個指令來安裝硬碟, 當 ISO boot 的時候,該指令就已經內建在系統裡了。 要特別注意的是你必須寫一個 ignition.json 檔案來作為安裝時的參數, 這個檔案可以用來設定用戶、網路、儲存、服務等。。。 必須在設定檔中給定一個 ssh 公鑰,以利後續登入(如果有登入需求的話) 否則裝好之後是無法使用 ssh login in 的。 先查看硬碟空間在那裡 $ sudo fdisk -l...

May 28, 2019

Fswatch Save My Times

Fswatch 可以用來檢測資料夾與文件的變更 最近在用 vim 練習 golang,真的是 go run 到手累心也累, 就到網路上搜看看有沒有可以監控檔案存檔事件的工具, 於是找到了這款 Mac 可以使用的 Fswatch 安裝 mac 上安裝就直接 brew install fswatch 腳本 因為我只要監控 go file 有沒有異動, 如果有的話幫我 compilar,所以腳本中有限定 .go 檔。 #!/bin/bash BASEDIR=$(dirname "$0") fswatch "$BASEDIR" | while read file do filename=$(basename -- "$file") extension="${filename##*.}" filename="${filename%.*}" if [ "$extension" = "go" ] then echo "=============================================\n\n" time go run ${file} fi done Demo Reference OS X使用fswatch+rsync自动检测文件夹改动并同步

May 23, 2019

IPsec Lan to Lan Vigor-2925 and AWS-ec2

前言 簡單說一下就是,我想讓我所在的網路可以訪問到 AWS subnet 的固定子網 IP, 內網的工作同仁或者內部 Server 不用額外做 vpn 撥號或其他動作。 其實 AWS 上面也有現成的服務可以租用(在 VPC 的設定中) 一個月大概在台幣 1,000 左右 AWS VPN pricing。 但基於我想自己架看看,另外也可以省點錢,就租了一台 EC2 來土炮了。 目標就是使用 Vigor 2925 播出到 IPsec server 保持一個 Lan to Lan 的連線。 公司端: 設備:Vigor 2925 網段:192.168.0.0/24 AWS 端: 網段:172.21.0.0/16 IPsec Server : CentOS7, EIP libreSwan 簡介 libreSwan 是 IPsec 協議的開源實現,基於FreeSwan 專案。 在 Centos7 版本後, 提供ipsec 服務包由libreswan替代了openswan 安裝 libreswan $ yum install epel-release $ yum install libreswan 設定 ipsec ipsec 啟動時會載入 /etc/ipsec....

May 17, 2019

關於 Docker volume create

前言 某次我在看某個服務的安裝文件時,發現了 docker volume create 這個指令。 原本我都是使用 -v 對應到我 host 機器的目錄 ex : -v $(pwd)/nginx-cache:/var/cache/nginx 後來很好奇 docker volume create 的用途還有存放路徑。 於是就小小的研究了一下。 docker volume create 一般的 Linux 在執行 docker volume create … 之後, 可以在 /var/lib/docker/volumes 看到 docker 幫你建立 volume 名稱的資料夾。 docker volume create In Mac 可是當你使用 Mac 執行過 docker volume create … 之後, 並無法在 Mac 電腦中找到 /var/lib/docker/volumes 這個目錄。 在 Mac 電腦 是無法直接訪問 /var/lib/docker/volumes 這個目錄, 必須先 screen 到 docker 目錄下的 tty, 進到 tty 之後就可以在 /var/lib/docker/volums 看到 create 的目錄名稱了。...

May 10, 2019

Gitlab-ce 版本升級與容器化

升級目標 gitlab-ce:8.14.4 升級到 gitlab-ce:11.3.4 Omnibus 轉移到 Docker 容器(Dockerized) 步驟流程 一、備份 Omnibus 上的資料 二、準備 docker 環境 三、啟動新環境(使用 gitlab-ce:8.14.4-ce.0 版本的 Image)與還原 四、版本逐步升級 一、備份 Omnibus 上的資料 $ gitlab-rake gitlab:backup:create 二、準備 docker 環境 Install docker, docker-compose 檔案存放的根目錄我設定在 /srv/gitlab,因此先在母體主機建立三個資料夾後續給 docker 掛載。 /srv/gitlab/config /srv/gitlab/logs /srv/gitlab/data 三、啟動新環境(使用 gitlab-ce:8.14.4-ce.0 版本的 Image)與匯入 複製 omnibus 機器下的主機金鑰組到新環境 From omnibus (/etc/ssh/ssh_host_*) copy to /srv/gitlab/config/ 撰寫 docker-compose.yaml 如下 hostname 與 external_url 替換成自己的參數 web: image: 'gitlab/gitlab-ce:8.14.4-ce.0' container_name: gitlab restart: always hostname: 'git.example.com' environment: TZ: Asia/Taipei GITLAB_OMNIBUS_CONFIG: | external_url 'http://git....

November 1, 2018

opensourcepos 安裝

php pos 商用版 開源版本 opensourcepos OpenSource POS其實就是舊版本的源碼釋出,基本上版本落差有點大,合不合用就只能試試才知道了 環境準備: 安裝lamp php require php-gd php-bcmath php-intl php-sockets php-mcrypt php-curl installed and enabled. 下載程式: # cd /var/www # git clone https://github.com/jekkos/opensourcepos.git # mv opensourcepos pos # cd /var/www/pos 看你要使用哪個版本 使用git指令切過去 # git checkout tags/3.0.2 -b b_3.0.2 設置權限: # chown -R apache:apache /var/www/pos 匯入資料:(db資訊依照自己的資訊填入) # mysql pos /var/www/pos/database/database.sql 設定檔: # cd /var/www/pos/application/config # cp database.php.tmpl database.php # vi database.php $db['default']['hostname'] = 'localhost'; $db['default']['username'] = 'db_user'; $db['default']['password'] = 'db_pass'; $db['default']['database'] = 'pos'; apache設定 vi /etc/httpd/conf....

May 15, 2017