解決docker在raspberry pi上出現 cgroups: memory cgroup not supported on this system 之錯誤

目前 raspberry pi 2017-11-29-raspbian-stretch 跟 docker 17.11.0會出現 cgroups: memory cgroup not supported on this system 之錯誤
所以暫時解決的辦法是將docker降到17.09.0

sudo apt-get remove -y docker-ce
sudo apt install -y docker-ce=17.09.0~ce-0~raspbian
sudo apt-mark hold docker-ce

等之後問題解決了就可以用下列指令解鎖,並升級

sudo apt-mark unhold docker-ce
sudo apt-get upgrade -y

參考網址: https://goo.gl/DeGr3S

遷移gitlab

我自建的gitlab是跑在synology上,不過因為效能太差了
因此決定將gitlab移植到vm上.

之前測試了讓vm掛載synology網芳的gitlab data的資料夾,
但是都會發生權限的問題.

因此目前打算讓gitlab data的資料夾也放在vm的本機端.
再透過定期備份的方式,來保全資料.
以下是我移機的紀錄

備份

docker exec -it gitlab gitlab-rake gitlab:backup:create

還原-前置工作
建立資料夾

mkdir -p $PWD/files/data/backups
mkdir -p $PWD/files/conf
mkdir -p $PWD/files/log/

複製備份資料

cp $OLD_GITLAB_PATH/backups/1510018625_2017_11_07_10.1.0_gitlab_backup.tar $PWD/files/data/backups

執行新的gitlab

docker run -d \
  --name=gitlab \
  --publish 443:443 \
  --publish 80:80 \
  --restart always \
  -v $PWD/files/conf:/etc/gitlab \
  -v $PWD/files/log:/var/log/gitlab \
  -v $PWD/files/data:/var/opt/gitlab \
  gitlab/gitlab-ce:10.1.0-ce.0

等待兩三分鐘後,確定可以進入gitlab web ui介面後
開始進入還原工作

還原
進入container

docker exec -it gitlab bash

停止服務

gitlab-ctl stop unicorn
gitlab-ctl stop sidekiq

設定權限

chmod 777 /var/opt/gitlab/backups/1510018625_2017_11_07_10.1.0_gitlab_backup.tar

還原

gitlab-rake gitlab:backup:restore BACKUP=1510018625_2017_11_07_10.1.0

重啟服務

gitlab-ctl restart

check

gitlab-rake gitlab:check SANITIZE=true

ubuntu安裝docker ce

首先先安裝一些必要元件

sudo apt-get install \
  apt-transport-https \
  ca-certificates \
  curl \
  software-properties-common

接著把docker官方的GPG key加入

curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -

並加入安裝來源(適用amd64機器)

sudo add-apt-repository \
  "deb [arch=amd64] https://download.docker.com/linux/ubuntu \
  $(lsb_release -cs) \
  stable"

然後用下列指令進行安裝Docker ce

sudo apt-get update && sudo apt-get install docker-ce -y

最後把目前使用者加入docker群組

sudo gpasswd -a $USER docker

用docker架設gitlab server

首先需準備好ssl憑證,這部分可參考Let’s Encrypt

建立conf,data,log,ssl等資料夾於$PWD/files之下.

mkdir -p $PWD/files/conf
mkdir -p $PWD/files/log
mkdir -p $PWD/files/data
mkdir -p $PWD/files/ssl

並把fullchain.pem以及private.pem放在$PWD/files/ssl資料夾下,

接著用下列語法,就可以用docker架設gitlab server了

docker run -d \
  --name=gitlab \
  --hostname git.slanla.com \
  --env GITLAB_OMNIBUS_CONFIG="external_url 'https://git.slanla.com' ; nginx['redirect_http_to_https'] = true" ; gitlab_rails['backup_keep_time'] = 604800 ; \
  --publish 443:443 \
  --publish 80:80 \
  --restart always \
  -v $PWD/files/ssl/fullchain.pem:/etc/gitlab/ssl/git.slanla.com.crt \
  -v $PWD/files/ssl/privkey.pem:/etc/gitlab/ssl/git.slanla.com.key \
  -v $PWD/files/conf:/etc/gitlab \
  -v $PWD/files/log:/var/log/gitlab \
  -v $PWD/files//data:/var/opt/gitlab \
  gitlab/gitlab-ce:10.1.0-ce.0

其中

  --hostname git.slanla.com \
  --env GITLAB_OMNIBUS_CONFIG="external_url 'https://git.slanla.com';nginx['redirect_http_to_https'] = true" \
  --publish 443:443 \
  -v $PWD/files/ssl/fullchain.pem:/etc/gitlab/ssl/git.slanla.com.crt \
  -v $PWD/files/ssl/privkey.pem:/etc/gitlab/ssl/git.slanla.com.key \

是與https相關,若不需要則可移除.

修改docker空間大小

首先查看一下目前空間大小

/Applications/Docker.app/Contents/MacOS/qemu-img info ~/Library/Containers/com.docker.docker/Data/com.docker.driver.amd64-linux/Docker.qcow2

接著調整大小

/Applications/Docker.app/Contents/MacOS/qemu-img resize ~/Library/Containers/com.docker.docker/Data/com.docker.driver.amd64-linux/Docker.qcow2 +20G

調整後,需重新啟動docker

refer:
https://rui.sh/fix-docker-for-mac-no-space-left-on-device-error.html
http://www.jianshu.com/p/2b756f9c10c1

X11 GUI application on OSX with docker

首先需要安裝socat以及xquartz

brew install socat
brew cask install xquartz

並建議重開機!

另外最好開啟opengl for x11的功能(refer)

defaults write org.macosforge.xquartz.X11 enable_iglx -bool true

接著開啟XQuartz

open -a XQuartz &

然後就可以不理會XQUartz的視窗

然後在Terminal下達執行X11代理程式

socat TCP-LISTEN:6000,reuseaddr,fork UNIX-CLIENT:\"$DISPLAY\" &

最後就可以在Terminal中啟動docker

docker run -ti --rm \
    -e DISPLAY=192.168.1.1:0 \
    --volume="$HOME/.Xauthority:/root/.Xauthority:rw" \
    -v /tmp/.X11-unix:/tmp/.X11-unix \
    firefox firefox

其中192.168.1.1為MacOS的IP

繼續閱讀

以docker部署wordpress

首先用下列指令建立一個名稱為wordpress_db的mysql container.

docker run -d \
  --restart=always \
  --name wordpress_db \
  -e MYSQL_ROOT_PASSWORD=xxxxxxxxx \
  mysql:latest

其中xxxxxxxxx是資料庫root的密碼.

接著建立一個名稱為wordpress_web的wordpress container,並將剛剛建立的wordpress_db連結成mysql.

docker run -d \
  --rworestart=always \
  --name wordpress_web \
  -e VIRTUAL_HOST=slanla.com \
  --link wordpress_db:mysql \
  -p 23456:80 \
  wordpress

其中23456為對外聯繫的port. 繼續閱讀